diff options
author | IOhannes m zmölnig <zmoelnig@users.sourceforge.net> | 2010-04-07 14:45:28 +0000 |
---|---|---|
committer | IOhannes m zmölnig <zmoelnig@users.sourceforge.net> | 2010-04-07 14:45:28 +0000 |
commit | 4902493c79875a2e39468b31f384fe333cb81e2b (patch) | |
tree | ca0c19fb4c5e55b89003df9562d4a92b4d78f36a /tcpclient.c | |
parent | 4fa185a5450d9ec1516aa159f4e9dbc1c77a0839 (diff) |
iemnet__streamout() takes an argument telling us whether to serialize or not
(non-serialization might be useful for proxies)
svn path=/trunk/externals/iem/iemnet/; revision=13393
Diffstat (limited to 'tcpclient.c')
-rw-r--r-- | tcpclient.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/tcpclient.c b/tcpclient.c index ebc0119..7a37c53 100644 --- a/tcpclient.c +++ b/tcpclient.c @@ -46,6 +46,7 @@ typedef struct _tcpclient t_iemnet_sender *x_sender; t_iemnet_receiver*x_receiver; + int x_serialize; int x_fd; // the socket char *x_hostname; // address we want to connect to as text @@ -221,13 +222,18 @@ static void tcpclient_receive_callback(void*y, t_iemnet_chunk*c) { if(c) { iemnet__addrout(x->x_statusout, x->x_addrout, x->x_addr, x->x_port); x->x_floatlist=iemnet__chunk2list(c, x->x_floatlist); // get's destroyed in the dtor - iemnet__streamout(x->x_msgout, x->x_floatlist->argc, x->x_floatlist->argv); + iemnet__streamout(x->x_msgout, x->x_floatlist->argc, x->x_floatlist->argv, x->x_serialize); } else { // disconnected tcpclient_disconnect(x); } } +static void tcpclient_serialize(t_tcpclient *x, t_floatarg doit) { + x->x_serialize=doit; +} + + /* constructor/destructor */ static void *tcpclient_new(void) @@ -240,6 +246,8 @@ static void *tcpclient_new(void) x->x_connectout = outlet_new(&x->x_obj, gensym("float")); /* connection state */ x->x_statusout = outlet_new(&x->x_obj, 0);/* last outlet for everything else */ + x->x_serialize=1; + x->x_fd = -1; x->x_addr = 0L; @@ -277,6 +285,9 @@ IEMNET_EXTERN void tcpclient_setup(void) class_addmethod(tcpclient_class, (t_method)tcpclient_connect, gensym("connect") , A_SYMBOL, A_FLOAT, 0); class_addmethod(tcpclient_class, (t_method)tcpclient_disconnect, gensym("disconnect"), 0); + + class_addmethod(tcpclient_class, (t_method)tcpclient_serialize, gensym("serialize"), A_FLOAT, 0); + class_addmethod(tcpclient_class, (t_method)tcpclient_send, gensym("send"), A_GIMME, 0); class_addlist(tcpclient_class, (t_method)tcpclient_send); |