wangzhengquan
2020-06-16 27a32410481fc10e789315b3a1dab88a33020270
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#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);