From c171430ffc61d77ace607d17e7daffb58de096e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Tue, 23 Mar 2010 17:49:32 +0000 Subject: factored out code into "shared"; it's still rather unstable... svn path=/trunk/externals/iem/iemnet/; revision=13244 --- iemnet.h | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 iemnet.h (limited to 'iemnet.h') 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 + +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*); -- cgit v1.2.1