#include <stdio.h>
|
#include <stdlib.h>
|
#include <string.h>
|
#include <time.h>
|
#include <unistd.h>
|
|
#include <nng/nng.h>
|
|
|
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);
|