aboutsummaryrefslogtreecommitdiff
path: root/iemnet.h
diff options
context:
space:
mode:
authorIOhannes m zmölnig <zmoelnig@users.sourceforge.net>2010-03-23 17:49:32 +0000
committerIOhannes m zmölnig <zmoelnig@users.sourceforge.net>2010-03-23 17:49:32 +0000
commitc171430ffc61d77ace607d17e7daffb58de096e6 (patch)
treef9b60800b2f033dfe1562fc90f1e9b5bd56b2cfe /iemnet.h
parent7dc935cf2938b1e47b60716654a5879737b5d437 (diff)
factored out code into "shared";
it's still rather unstable... svn path=/trunk/externals/iem/iemnet/; revision=13244
Diffstat (limited to 'iemnet.h')
-rw-r--r--iemnet.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/iemnet.h b/iemnet.h
new file mode 100644
index 0000000..33b2113
--- /dev/null
+++ b/iemnet.h
@@ -0,0 +1,42 @@
+#include "m_pd.h"
+
+#include <sys/socket.h>
+
+typedef struct _iemnet_chunk {
+ unsigned char* data;
+ size_t size;
+} t_iemnet_chunk;
+
+void iemnet__chunk_destroy(t_iemnet_chunk*);
+t_iemnet_chunk*iemnet__chunk_create_empty(int);
+t_iemnet_chunk*iemnet__chunk_create_list(int, t_atom*);
+t_iemnet_chunk*iemnet__chunk_create_chunk(t_iemnet_chunk*);
+
+t_atom*iemnet__chunk2list(t_iemnet_chunk*);
+
+/* sender */
+#define t_iemnet_sender struct _iemnet_sender
+EXTERN_STRUCT _iemnet_sender;
+
+t_iemnet_sender*iemnet__sender_create(int sock);
+void iemnet__sender_destroy(t_iemnet_sender*);
+
+int iemnet__sender_send(t_iemnet_sender*, t_iemnet_chunk*);
+
+int iemnet__sender_getlasterror(t_iemnet_sender*);
+int iemnet__sender_getsockopt(t_iemnet_sender*, int level, int optname, void *optval, socklen_t*optlen);
+int iemnet__sender_setsockopt(t_iemnet_sender*, int level, int optname, const void*optval, socklen_t optlen);
+
+
+/* receiver */
+#define t_iemnet_receiver struct _iemnet_receiver
+EXTERN_STRUCT _iemnet_receiver;
+
+typedef void (*t_iemnet_receivecallback)(void*x, int, t_iemnet_chunk*);
+
+/**
+ * create a receiver object: whenever something is received on the socket,
+ * the callback is called with the payload
+ */
+t_iemnet_receiver*iemnet__receiver_create(int sock, void*owner, t_iemnet_receivecallback callback);
+void iemnet__receiver_destroy(t_iemnet_receiver*);