nng 0.1.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +52 -0
- data/LICENSE +22 -0
- data/README.md +308 -0
- data/ext/rbnng/device.c +43 -0
- data/ext/rbnng/exceptions.c +116 -207
- data/ext/rbnng/extconf.rb +6 -19
- data/ext/rbnng/message.c +183 -0
- data/ext/rbnng/pipe.c +81 -0
- data/ext/rbnng/rbnng.c +15 -29
- data/ext/rbnng/rbnng.h +59 -26
- data/ext/rbnng/socket.c +661 -91
- data/ext/rbnng/stats.c +106 -0
- data/ext/rbnng/tls.c +127 -0
- data/lib/nng/socket/base.rb +131 -0
- data/lib/nng/socket/bus0.rb +10 -0
- data/lib/nng/socket/pair0.rb +10 -0
- data/lib/nng/socket/pair1.rb +10 -0
- data/lib/nng/socket/pub0.rb +9 -0
- data/lib/nng/socket/pull0.rb +9 -0
- data/lib/nng/socket/push0.rb +9 -0
- data/lib/nng/socket/readable.rb +17 -0
- data/lib/nng/socket/rep0.rb +10 -0
- data/lib/nng/socket/req0.rb +10 -0
- data/lib/nng/socket/respondent0.rb +10 -0
- data/lib/nng/socket/sub0.rb +9 -0
- data/lib/nng/socket/surveyor0.rb +10 -0
- data/lib/nng/socket/writable.rb +17 -0
- data/lib/nng/tls.rb +25 -0
- data/lib/nng/version.rb +3 -1
- data/lib/nng.rb +24 -1
- metadata +44 -31
- data/ext/rbnng/bus0.c +0 -43
- data/ext/rbnng/exceptions.h +0 -12
- data/ext/rbnng/msg.c +0 -61
- data/ext/rbnng/msg.h +0 -22
- data/ext/rbnng/pair.c +0 -65
- data/ext/rbnng/pub0.c +0 -36
- data/ext/rbnng/pull0.c +0 -36
- data/ext/rbnng/push0.c +0 -36
- data/ext/rbnng/rep0.c +0 -150
- data/ext/rbnng/req0.c +0 -38
- data/ext/rbnng/respondent0.c +0 -40
- data/ext/rbnng/socket.h +0 -36
- data/ext/rbnng/sub0.c +0 -41
- data/ext/rbnng/surveyor0.c +0 -40
data/ext/rbnng/rbnng.h
CHANGED
|
@@ -1,33 +1,66 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2021 Adib Saad
|
|
3
|
-
*
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
1
|
#ifndef RBNNG_H
|
|
7
2
|
#define RBNNG_H
|
|
8
3
|
|
|
9
|
-
#include
|
|
4
|
+
#include <nng/nng.h>
|
|
10
5
|
#include <ruby.h>
|
|
6
|
+
#include <ruby/thread.h>
|
|
7
|
+
|
|
8
|
+
/* ── Exceptions ─────────────────────────────────────────────────── */
|
|
9
|
+
|
|
10
|
+
void rbnng_exceptions_init(VALUE nng_module);
|
|
11
|
+
void raise_nng_error(int rv);
|
|
12
|
+
|
|
13
|
+
/* ── Message ────────────────────────────────────────────────────── */
|
|
14
|
+
|
|
15
|
+
typedef struct {
|
|
16
|
+
nng_msg *msg; /* NULL when consumed */
|
|
17
|
+
} rbnng_msg_t;
|
|
18
|
+
|
|
19
|
+
extern const rb_data_type_t rbnng_msg_type;
|
|
20
|
+
extern VALUE cMessage;
|
|
21
|
+
|
|
22
|
+
VALUE rbnng_msg_wrap(nng_msg *msg);
|
|
23
|
+
void rbnng_msg_init(VALUE nng_module);
|
|
24
|
+
|
|
25
|
+
/* ── Socket ─────────────────────────────────────────────────────── */
|
|
26
|
+
|
|
27
|
+
typedef struct {
|
|
28
|
+
nng_socket socket;
|
|
29
|
+
int initialized;
|
|
30
|
+
int notify_fds[2]; /* [read, write] for pipe event notification; -1 = inactive */
|
|
31
|
+
} rbnng_socket_t;
|
|
32
|
+
|
|
33
|
+
extern const rb_data_type_t rbnng_socket_type;
|
|
34
|
+
|
|
35
|
+
void rbnng_socket_init(VALUE nng_module);
|
|
36
|
+
|
|
37
|
+
/* ── Device ─────────────────────────────────────────────────────── */
|
|
38
|
+
|
|
39
|
+
void rbnng_device_init(VALUE nng_module);
|
|
40
|
+
|
|
41
|
+
/* ── Pipe ──────────────────────────────────────────────────────── */
|
|
42
|
+
|
|
43
|
+
typedef struct {
|
|
44
|
+
nng_pipe pipe;
|
|
45
|
+
} rbnng_pipe_t;
|
|
46
|
+
|
|
47
|
+
extern const rb_data_type_t rbnng_pipe_type;
|
|
48
|
+
|
|
49
|
+
VALUE rbnng_pipe_wrap(nng_pipe pipe);
|
|
50
|
+
void rbnng_pipe_init(VALUE nng_module);
|
|
51
|
+
|
|
52
|
+
/* ── Stats ─────────────────────────────────────────────────────── */
|
|
53
|
+
|
|
54
|
+
void rbnng_stats_init(VALUE nng_module);
|
|
55
|
+
|
|
56
|
+
/* ── TLS helpers (called from socket.c) ────────────────────────── */
|
|
57
|
+
|
|
58
|
+
void rbnng_tls_listen(nng_socket sock, const char *url,
|
|
59
|
+
VALUE cert_pem, VALUE key_pem, VALUE ca_pem,
|
|
60
|
+
int verify, VALUE server_name);
|
|
11
61
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
rbnng_req0_Init(VALUE nng_module);
|
|
16
|
-
extern void
|
|
17
|
-
rbnng_pair_Init(VALUE nng_module);
|
|
18
|
-
extern void
|
|
19
|
-
rbnng_pub0_Init(VALUE nng_module);
|
|
20
|
-
extern void
|
|
21
|
-
rbnng_sub0_Init(VALUE nng_module);
|
|
22
|
-
extern void
|
|
23
|
-
rbnng_bus0_Init(VALUE nng_module);
|
|
24
|
-
extern void
|
|
25
|
-
rbnng_surveyor0_Init(VALUE nng_module);
|
|
26
|
-
extern void
|
|
27
|
-
rbnng_respondent0_Init(VALUE nng_module);
|
|
28
|
-
extern void
|
|
29
|
-
rbnng_push0_Init(VALUE nng_module);
|
|
30
|
-
extern void
|
|
31
|
-
rbnng_pull0_Init(VALUE nng_module);
|
|
62
|
+
void rbnng_tls_dial(nng_socket sock, const char *url,
|
|
63
|
+
VALUE cert_pem, VALUE key_pem, VALUE ca_pem,
|
|
64
|
+
int verify, VALUE server_name);
|
|
32
65
|
|
|
33
66
|
#endif
|