#include #include #include #include #include #include enum bipc_mod_t { PULL_PUSH = 1, REQ_REP = 2, PAIR = 3, PUB_SUB = 4, SURVEY = 5, BUS = 6 }; enum bipc_err { BIPC_ETIMEDOUT = 5 }; #define BIPC_OPT_SOCKNAME "socket-name" #define BIPC_OPT_RAW "raw" #define BIPC_OPT_PROTO "protocol" #define BIPC_OPT_PROTONAME "protocol-name" #define BIPC_OPT_PEER "peer" #define BIPC_OPT_PEERNAME "peer-name" #define BIPC_OPT_RECVBUF "recv-buffer" #define BIPC_OPT_SENDBUF "send-buffer" #define BIPC_OPT_RECVFD "recv-fd" #define BIPC_OPT_SENDFD "send-fd" #define BIPC_OPT_RECVTIMEO "recv-timeout" #define BIPC_OPT_SENDTIMEO "send-timeout" #define BIPC_OPT_LOCADDR "local-address" #define BIPC_OPT_REMADDR "remote-address" #define BIPC_OPT_URL "url" #define BIPC_OPT_MAXTTL "ttl-max" #define BIPC_OPT_RECVMAXSZ "recv-size-max" #define BIPC_OPT_RECONNMINT "reconnect-time-min" #define BIPC_OPT_RECONNMAXT "reconnect-time-max" typedef nng_socket bipc_socket_t; int bipc_listen(bipc_socket_t *sock, const char *url, bipc_mod_t mod); int bipc_connect(bipc_socket_t *sock, const char *url, bipc_mod_t mod); int bipc_send(bipc_socket_t *sock, const void *data, size_t size); int bipc_recv(bipc_socket_t *sock, void *data, size_t *sizep); int bipc_setopt(bipc_socket_t *s, const char *opt, const void *val, size_t valsz); void bipc_free(void *ptr, size_t size); int bipc_close(bipc_socket_t *s); const char * bipc_strerror(int error);