#include "Testclass.hpp" #include // Boost #include using boost::format; using namespace std; /** * ipc_server_add - when we connect to the ipc daemon * @data - * @type - * @event - the Ecore_Ipc_Event_Server_Add that triggered us */ int ipc_server_add( void *data, int type, void *event ) { Ecore_Ipc_Event_Server_Add * e; e = ( Ecore_Ipc_Event_Server_Add * ) event; cout << format( "Server add \n" ); return 1; } /** * ipc_server_del - when we disconnect from the ipc daemon * @data - * @type - * @event - the Ecore_Ipc_Event_Server_Del that triggered us */ int ipc_server_del( void *data, int type, void *event ) { Ecore_Ipc_Event_Server_Del * e; e = ( Ecore_Ipc_Event_Server_Del * ) event; cout << format( "Server del \n" ); return 1; } /** * ipc_server_data - * @data - * @type - * @event - the Ecore_Ipc_Event_Server_Data that triggered us */ int ipc_server_data( void *data, int type, void *event ) { Ecore_Ipc_Event_Server_Data * e; e = ( Ecore_Ipc_Event_Server_Data * ) event; cout << format( "Server sent [%i] [%i] (%i) \"%s\\n" ) % e->major % e->minor % e->size % e->data; return 1; } Testclass::Testclass() : server( NULL ) {} Testclass::~Testclass() { if ( server != NULL ) { // ecore_ipc_server_del( server ); } } bool Testclass::Init() { if ( ecore_ipc_init() < 1 ) { return 0; } // Create a IPC Server server = ecore_ipc_server_add( ECORE_IPC_LOCAL_USER, "Testclass IPC Server", 0, NULL ); if ( server == NULL ) { cout << "Creating new IPC server failed\n"; return 0; } // Here is my Problem, i didn't get a valid Pointer to one of my Memberfunctions // My Tries looks like these: // ecore_event_handler_add( ECORE_IPC_EVENT_SERVER_DEL, boost::bind( boost::type(), &Testclass::ipc_server_add ), NULL ); // ecore_event_handler_add( ECORE_IPC_EVENT_SERVER_DEL, boost::bind( boost::type(), &Testclass::ipc_server_add, _1, _2, _3 ), NULL ); ecore_event_handler_add( ECORE_IPC_EVENT_SERVER_ADD, ipc_server_add, NULL ); ecore_event_handler_add( ECORE_IPC_EVENT_SERVER_DEL, ipc_server_del, NULL ); ecore_event_handler_add( ECORE_IPC_EVENT_SERVER_DATA, ipc_server_data, NULL ); char buf[ 512 ]; char *msg = "Hello World"; int major = 10; snprintf( buf, 512, "%s", msg ); ecore_ipc_server_send( server, major, 6, 0, 0, 0, buf, strlen( buf ) + 1 ); memset( buf, 0, sizeof( buf ) ); return 1; }