not longer needed
This commit is contained in:
parent
687588c5c1
commit
f091b42263
3 changed files with 2 additions and 127 deletions
|
@ -1,49 +0,0 @@
|
||||||
#ifndef ECORE_DISPATCHER_H
|
|
||||||
#define ECORE_DISPATCHER_H
|
|
||||||
|
|
||||||
#include <Ecore.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <stdbool.h>
|
|
||||||
|
|
||||||
#ifdef _WIN32
|
|
||||||
|
|
||||||
# include <winsock2.h>
|
|
||||||
|
|
||||||
# define e_write(fd, buffer, count) \
|
|
||||||
send((fd), (char *)(buffer), count, 0)
|
|
||||||
|
|
||||||
# define e_read(fd, buffer, count) \
|
|
||||||
recv((fd), (char *)(buffer), count, 0)
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
# include <unistd.h>
|
|
||||||
# include <fcntl.h>
|
|
||||||
|
|
||||||
# define e_write(fd, buffer, count) \
|
|
||||||
write((fd), (buffer), count)
|
|
||||||
|
|
||||||
# define e_read(fd, buffer, count) \
|
|
||||||
read((fd), (buffer), count)
|
|
||||||
|
|
||||||
#endif /* _WIN32 */
|
|
||||||
|
|
||||||
struct _Ecore_Dispatcher
|
|
||||||
{
|
|
||||||
int m_fd_read;
|
|
||||||
int m_fd_write;
|
|
||||||
size_t m_count;
|
|
||||||
void (*m_update_func) (void*/*, size_t*/);
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef struct _Ecore_Dispatcher Ecore_Dispatcher;
|
|
||||||
|
|
||||||
void ecore_dispatcher_init (Ecore_Dispatcher *dp, void (update) (void*/*, size_t*/));
|
|
||||||
void ecore_dispatcher_signal (Ecore_Dispatcher *dp, void *data, size_t count);
|
|
||||||
void ecore_dispatcher_close (Ecore_Dispatcher *dp);
|
|
||||||
|
|
||||||
#endif // ECORE_DISPATCHER_H
|
|
||||||
|
|
|
@ -1,76 +0,0 @@
|
||||||
#include "../include/dbus-c++/Ecore_Dispatcher.h"
|
|
||||||
|
|
||||||
#include <assert.h>
|
|
||||||
#include <linux/limits.h> // TODO: port and protect for other systems
|
|
||||||
|
|
||||||
// TODO: add deinit method to close handler
|
|
||||||
|
|
||||||
#define BUFFER_GLOBAL_SIZE PIPE_BUF // defined in linux/limits.h
|
|
||||||
|
|
||||||
int ecore_dispatcher_async_handler (void *data, Ecore_Fd_Handler *fdh)
|
|
||||||
{
|
|
||||||
int fd;
|
|
||||||
Ecore_Dispatcher *dp_local = (Ecore_Dispatcher*) data;
|
|
||||||
char buf[dp_local->m_count];
|
|
||||||
|
|
||||||
fd = ecore_main_fd_handler_fd_get(fdh);
|
|
||||||
|
|
||||||
int recBytes = 0;
|
|
||||||
|
|
||||||
recBytes = e_read (fd, buf, dp_local->m_count);
|
|
||||||
|
|
||||||
if (recBytes <= 0)
|
|
||||||
{
|
|
||||||
fprintf (stderr, "Error while reading pipe!\n");
|
|
||||||
exit (1);
|
|
||||||
}
|
|
||||||
|
|
||||||
assert (recBytes == (signed) dp_local->m_count);
|
|
||||||
|
|
||||||
dp_local->m_update_func (buf/*, recBytes*/);
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ecore_dispatcher_init (Ecore_Dispatcher *dp, void (update) (void*/*, size_t*/))
|
|
||||||
{
|
|
||||||
int fd[2];
|
|
||||||
Ecore_Fd_Handler *fd_handler;
|
|
||||||
|
|
||||||
dp->m_update_func = update;
|
|
||||||
|
|
||||||
/* Create the file descriptors */
|
|
||||||
if (pipe(fd) == 0)
|
|
||||||
{
|
|
||||||
dp->m_fd_read = fd[0];
|
|
||||||
dp->m_fd_write = fd[1];
|
|
||||||
|
|
||||||
fcntl(dp->m_fd_read, F_SETFL, O_NONBLOCK);
|
|
||||||
fd_handler = ecore_main_fd_handler_add (dp->m_fd_read,
|
|
||||||
ECORE_FD_READ,
|
|
||||||
ecore_dispatcher_async_handler,
|
|
||||||
dp,
|
|
||||||
NULL, NULL);
|
|
||||||
|
|
||||||
ecore_main_fd_handler_active_set(fd_handler, ECORE_FD_READ);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
fprintf (stderr, "pipe() failed\n");
|
|
||||||
exit (1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void ecore_dispatcher_close (Ecore_Dispatcher *dp)
|
|
||||||
{
|
|
||||||
close (dp->m_fd_read);
|
|
||||||
close (dp->m_fd_write);
|
|
||||||
}
|
|
||||||
|
|
||||||
void ecore_dispatcher_signal (Ecore_Dispatcher *dp, void *data, size_t count)
|
|
||||||
{
|
|
||||||
dp->m_count = count;
|
|
||||||
|
|
||||||
e_write (dp->m_fd_write, data, count);
|
|
||||||
}
|
|
||||||
|
|
|
@ -12,8 +12,8 @@ GLIB_CPP = glib-integration.cpp
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if ENABLE_ECORE
|
if ENABLE_ECORE
|
||||||
ECORE_H = $(HEADER_DIR)/ecore-integration.h $(HEADER_DIR)/Ecore_Dispatcher.h
|
ECORE_H = $(HEADER_DIR)/ecore-integration.h
|
||||||
ECORE_CPP = ecore-integration.cpp Ecore_Dispatcher.cpp
|
ECORE_CPP = ecore-integration.cpp
|
||||||
endif
|
endif
|
||||||
|
|
||||||
CONFIG_H = $(top_builddir)/include/dbus-c++/dbus-c++-config.h
|
CONFIG_H = $(top_builddir)/include/dbus-c++/dbus-c++-config.h
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue