diff options
author | IOhannes m zmölnig <zmoelnig@users.sourceforge.net> | 2010-03-23 17:49:32 +0000 |
---|---|---|
committer | IOhannes m zmölnig <zmoelnig@users.sourceforge.net> | 2010-03-23 17:49:32 +0000 |
commit | c171430ffc61d77ace607d17e7daffb58de096e6 (patch) | |
tree | f9b60800b2f033dfe1562fc90f1e9b5bd56b2cfe /iemnet.h | |
parent | 7dc935cf2938b1e47b60716654a5879737b5d437 (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.h | 42 |
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*); |