diff options
author | vidon | 2004-10-19 19:53:44 +0000 |
---|---|---|
committer | vidon | 2004-10-19 19:53:44 +0000 |
commit | 0b19d4955de31fc1b50ac59fd963f944d591224e (patch) | |
tree | 44b1cf5c2c88efcbe14c63f8d18c181a6a2124b5 | |
parent | 1baf794d8b91b88c100a7abef8aa530f56cf5074 (diff) | |
download | ivycpy-0b19d4955de31fc1b50ac59fd963f944d591224e.zip ivycpy-0b19d4955de31fc1b50ac59fd963f944d591224e.tar.gz ivycpy-0b19d4955de31fc1b50ac59fd963f944d591224e.tar.bz2 ivycpy-0b19d4955de31fc1b50ac59fd963f944d591224e.tar.xz |
Les callbacks IvyApplicationCallback et IvyDieCallback renvoient une chaine identifiant le pointeur IvyClientPtr de l'interface ivy-c
-rw-r--r-- | ivycpy.i | 64 |
1 files changed, 50 insertions, 14 deletions
@@ -38,7 +38,15 @@ /* #define DEFAULT_BUS 2010 */ /* typedef : debut */ -typedef struct _clnt_lst *IvyClientPtr; +typedef struct { + IvyClientPtr next; + Client client; /* la socket client */ + MsgSndPtr msg_send; /* liste des requetes recues */ + char *app_name; /* nom de l'application */ + unsigned short app_port; /* port de l'application */ +} * IvyClientPtr; + + typedef enum { IvyApplicationConnected, IvyApplicationDisconnected } IvyApplicationEvent; @@ -254,7 +262,7 @@ pytkIvyApplicationCallback(IvyClientPtr app, void *user_data, { PyObject *func, *arglist; PyObject *result; - + PyObject *resultobj; #ifdef __DEBUG__ printf("-pytkIvyApplicationCallback\n"); #endif @@ -269,7 +277,13 @@ pytkIvyApplicationCallback(IvyClientPtr app, void *user_data, /* user_data->func ; */ /* la signature python doit etre proc(n) elle ne retourne rien */ - arglist = Py_BuildValue("(i)", (int) event); + + resultobj = SWIG_NewPointerObj((void *) app, SWIGTYPE_IvyClientPtr, 0); + result = Py_BuildValue("i", (int) event); + arglist = PyTuple_New(2); + PyTuple_SetItem(arglist,0,resultobj); + PyTuple_SetItem(arglist,1,result); + result = PyEval_CallObject(func,arglist); printf("-pytkIvyApplicationCallback Fin\n"); Py_DECREF(arglist); @@ -281,6 +295,8 @@ pyIvyApplicationCallback(IvyClientPtr app, void *user_data, { PyObject *func, *arglist; PyObject *result; + PyObject *resultobj; + static void *descr = 0; #ifdef __DEBUG__ printf("-pyIvyApplicationCallback\n"); @@ -294,8 +310,14 @@ pyIvyApplicationCallback(IvyClientPtr app, void *user_data, }; /* user_data->func ; */ /* la signature python doit etre proc(n) elle ne retourne rien */ + descr = SWIG_TypeQuery("IvyClientPtr"); + resultobj = SWIG_NewPointerObj((void *) app, descr, 0); + /* resultobj=SWIG_Python_NewPackedObj((void *) app, sizeof(IvyClientPtr),descr);*/ + result = Py_BuildValue("i", (int) event); + arglist = PyTuple_New(2); + PyTuple_SetItem(arglist,0,resultobj); + PyTuple_SetItem(arglist,1,result); - arglist = Py_BuildValue("(i)", (int) event); result = PyEval_CallObject(func,arglist); Py_DECREF(arglist); } @@ -304,6 +326,7 @@ pytkIvyDieCallback(IvyClientPtr app, void *user_data, int id) { PyObject *func, *arglist; PyObject *result; + PyObject *resultobj; #ifdef __DEBUG__ printf("-pytkIvyApplicationCallback\n"); @@ -320,7 +343,14 @@ pytkIvyDieCallback(IvyClientPtr app, void *user_data, int id) /* user_data->func ; */ /* la signature python doit etre proc(n) elle ne retourne rien */ - arglist = Py_BuildValue("(i)", id); + resultobj = SWIG_NewPointerObj((void *) app, SWIGTYPE_IvyClientPtr, 0); + result = Py_BuildValue("i", (int) id); + arglist = PyTuple_New(2); + PyTuple_SetItem(arglist,0,resultobj); + PyTuple_SetItem(arglist,1,result); + + +/* arglist = Py_BuildValue("(i)", id); */ result = PyEval_CallObject(func,arglist); Py_DECREF(arglist); } @@ -329,6 +359,7 @@ pyIvyDieCallback(IvyClientPtr app, void *user_data, int id) { PyObject *func, *arglist; PyObject *result; + PyObject *resultobj; #ifdef __DEBUG__ printf("-pyIvyApplicationCallback\n"); @@ -342,8 +373,13 @@ pyIvyDieCallback(IvyClientPtr app, void *user_data, int id) }; /* user_data->func ; */ /* la signature python doit etre proc(n) elle ne retourne rien */ + resultobj = SWIG_NewPointerObj((void *) app, SWIGTYPE_IvyClientPtr, 0); + result = Py_BuildValue("i", (int) id); + arglist = PyTuple_New(2); + PyTuple_SetItem(arglist,0,resultobj); + PyTuple_SetItem(arglist,1,result); - arglist = Py_BuildValue("(i)", id ); +/* arglist = Py_BuildValue("(i)", id ); */ result = PyEval_CallObject(func,arglist); Py_DECREF(arglist); } @@ -936,14 +972,14 @@ pyIvyInit( void pyIvyInit( - const char *AppName, /* nom de l'application */ - const char *ready, /* ready Message peut etre NULL */ - int loopmode, - PyObject *PyFuncOnCx, /* callback appele sur connection deconnection - d'une appli */ - /* void *data, user data passe au callback */ - PyObject *PyFuncOnDie); /* last change callback before die */ - /* void *die_data ); user data */ + const char *AppName, /* nom de l'application */ + const char *ready, /* ready Message peut etre NULL */ + int loopmode, + PyObject *PyFuncOnCx, /* callback appele sur connection deconnection + d'une appli */ + /*void *data, user data passe au callback */ + PyObject *PyFuncOnDie); /* last change callback before die */ +/*void *die_data ); user data */ int pyIvyBindMsg (PyObject *PyFunc, const char *msg); |