aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvidon2004-10-19 19:53:44 +0000
committervidon2004-10-19 19:53:44 +0000
commit0b19d4955de31fc1b50ac59fd963f944d591224e (patch)
tree44b1cf5c2c88efcbe14c63f8d18c181a6a2124b5
parent1baf794d8b91b88c100a7abef8aa530f56cf5074 (diff)
downloadivycpy-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.i64
1 files changed, 50 insertions, 14 deletions
diff --git a/ivycpy.i b/ivycpy.i
index 670505b..171503a 100644
--- a/ivycpy.i
+++ b/ivycpy.i
@@ -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);