aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2017-01-02 12:36:16 -0800
committerGarrett D'Amore <garrett@damore.org>2017-01-02 12:36:16 -0800
commit063b7b4724697883206213d905707d5151ef130c (patch)
treee5e4ae57348a7aa8b2a2bbe0ed491a8531313a4b
parentd42198bbc36e525e50bb32f5efeda63875c5b24f (diff)
downloadnng-063b7b4724697883206213d905707d5151ef130c.tar.gz
nng-063b7b4724697883206213d905707d5151ef130c.tar.bz2
nng-063b7b4724697883206213d905707d5151ef130c.zip
Transport renaming phase 1.
-rw-r--r--src/core/defs.h7
-rw-r--r--src/core/endpt.c9
-rw-r--r--src/core/init.c8
-rw-r--r--src/core/pipe.c22
-rw-r--r--src/core/pipe.h5
-rw-r--r--src/core/socket.c11
-rw-r--r--src/core/transport.c37
-rw-r--r--src/core/transport.h8
-rw-r--r--src/transport/inproc/inproc.c2
9 files changed, 55 insertions, 54 deletions
diff --git a/src/core/defs.h b/src/core/defs.h
index 7c9090d0..d0d0df7b 100644
--- a/src/core/defs.h
+++ b/src/core/defs.h
@@ -25,12 +25,15 @@ typedef struct nng_msg nni_msg;
// REMOVE THESE
typedef struct nng_endpt nni_endpt;
-
-// These are our own names.
typedef struct nni_transport nni_transport;
typedef struct nni_endpt_ops nni_endpt_ops;
typedef struct nni_pipe_ops nni_pipe_ops;
+// These are our own names.
+typedef struct nni_tran nni_tran;
+typedef struct nni_tran_ep nni_tran_ep;
+typedef struct nni_tran_pipe nni_tran_pipe;
+
typedef struct nni_protocol nni_protocol;
typedef int nni_signal; // Turnstile/wakeup channel.
diff --git a/src/core/endpt.c b/src/core/endpt.c
index 0ff31380..63013652 100644
--- a/src/core/endpt.c
+++ b/src/core/endpt.c
@@ -18,11 +18,11 @@
int
nni_endpt_create(nni_endpt **epp, nni_sock *sock, const char *addr)
{
- nni_transport *tran;
+ nni_tran *tran;
nni_endpt *ep;
int rv;
- if ((tran = nni_transport_find(addr)) == NULL) {
+ if ((tran = nni_tran_find(addr)) == NULL) {
return (NNG_ENOTSUP);
}
if (strlen(addr) >= NNG_MAXADDRLEN) {
@@ -104,7 +104,7 @@ nni_endpt_connect(nni_endpt *ep, nni_pipe **pp)
if ((rv = nni_pipe_create(&pipe, ep)) != 0) {
return (rv);
}
- rv = ep->ep_ops.ep_connect(ep->ep_data, &pipe->p_trandata);
+ rv = ep->ep_ops.ep_connect(ep->ep_data, &pipe->p_tran_data);
if (rv != 0) {
nni_pipe_close(pipe);
return (rv);
@@ -240,7 +240,8 @@ nni_endpt_accept(nni_endpt *ep, nni_pipe **pp)
if ((rv = nni_pipe_create(&pipe, ep)) != 0) {
return (rv);
}
- if ((rv = ep->ep_ops.ep_accept(ep->ep_data, &pipe->p_trandata)) != 0) {
+ rv = ep->ep_ops.ep_accept(ep->ep_data, &pipe->p_tran_data);
+ if (rv != 0) {
nni_pipe_close(pipe);
return (rv);
}
diff --git a/src/core/init.c b/src/core/init.c
index 500a0b54..3ae10a21 100644
--- a/src/core/init.c
+++ b/src/core/init.c
@@ -12,9 +12,9 @@
#include <stdio.h>
static int
-init_helper(void)
+nni_init_helper(void)
{
- nni_transport_init();
+ nni_tran_init();
return (0);
}
@@ -22,13 +22,13 @@ init_helper(void)
int
nni_init(void)
{
- return (nni_plat_init(init_helper));
+ return (nni_plat_init(nni_init_helper));
}
void
nni_fini(void)
{
- nni_transport_fini();
+ nni_tran_fini();
nni_plat_fini();
}
diff --git a/src/core/pipe.c b/src/core/pipe.c
index 8cf83179..d673f7c4 100644
--- a/src/core/pipe.c
+++ b/src/core/pipe.c
@@ -25,14 +25,14 @@ nni_pipe_id(nni_pipe *p)
int
nni_pipe_send(nni_pipe *p, nng_msg *msg)
{
- return (p->p_ops.p_send(p->p_trandata, msg));
+ return (p->p_tran_ops.p_send(p->p_tran_data, msg));
}
int
nni_pipe_recv(nni_pipe *p, nng_msg **msgp)
{
- return (p->p_ops.p_recv(p->p_trandata, msgp));
+ return (p->p_tran_ops.p_recv(p->p_tran_data, msgp));
}
@@ -44,8 +44,8 @@ nni_pipe_close(nni_pipe *p)
{
nni_sock *sock = p->p_sock;
- if (p->p_trandata != NULL) {
- p->p_ops.p_close(p->p_trandata);
+ if (p->p_tran_data != NULL) {
+ p->p_tran_ops.p_close(p->p_tran_data);
}
nni_mtx_lock(&sock->s_mx);
@@ -63,7 +63,7 @@ nni_pipe_close(nni_pipe *p)
uint16_t
nni_pipe_peer(nni_pipe *p)
{
- return (p->p_ops.p_peer(p->p_trandata));
+ return (p->p_tran_ops.p_peer(p->p_tran_data));
}
@@ -73,8 +73,8 @@ nni_pipe_destroy(nni_pipe *p)
nni_thr_fini(&p->p_send_thr);
nni_thr_fini(&p->p_recv_thr);
- if (p->p_trandata != NULL) {
- p->p_ops.p_destroy(p->p_trandata);
+ if (p->p_tran_data != NULL) {
+ p->p_tran_ops.p_destroy(p->p_tran_data);
}
if (p->p_pdata != NULL) {
nni_free(p->p_pdata, p->p_psize);
@@ -95,8 +95,8 @@ nni_pipe_create(nni_pipe **pp, nni_endpt *ep)
return (NNG_ENOMEM);
}
p->p_sock = sock;
- p->p_ops = *ep->ep_ops.ep_pipe_ops;
- p->p_trandata = NULL;
+ p->p_tran_ops = *ep->ep_ops.ep_pipe_ops;
+ p->p_tran_data = NULL;
p->p_active = 0;
p->p_psize = proto->proto_pipe_size;
NNI_LIST_NODE_INIT(&p->p_node);
@@ -132,10 +132,10 @@ int
nni_pipe_getopt(nni_pipe *p, int opt, void *val, size_t *szp)
{
/* This should only be called with the mutex held... */
- if (p->p_ops.p_getopt == NULL) {
+ if (p->p_tran_ops.p_getopt == NULL) {
return (NNG_ENOTSUP);
}
- return (p->p_ops.p_getopt(p->p_trandata, opt, val, szp));
+ return (p->p_tran_ops.p_getopt(p->p_tran_data, opt, val, szp));
}
diff --git a/src/core/pipe.h b/src/core/pipe.h
index 193fd6c2..70dd01b1 100644
--- a/src/core/pipe.h
+++ b/src/core/pipe.h
@@ -14,12 +14,13 @@
// OUSIDE of the core is STRICTLY VERBOTEN. NO DIRECT ACCESS BY PROTOCOLS OR
// TRANSPORTS.
+#include "core/defs.h"
#include "core/transport.h"
struct nng_pipe {
uint32_t p_id;
- struct nni_pipe_ops p_ops;
- void * p_trandata;
+ struct nni_pipe_ops p_tran_ops;
+ void * p_tran_data;
void * p_pdata; // protocol specific data
size_t p_psize; // size of protocol data
nni_list_node p_node;
diff --git a/src/core/socket.c b/src/core/socket.c
index 77e68733..07955d0a 100644
--- a/src/core/socket.c
+++ b/src/core/socket.c
@@ -52,11 +52,6 @@ nni_reaper(void *arg)
}
nni_mtx_unlock(&sock->s_mx);
- // This should already have been done.
- if (pipe->p_trandata != NULL) {
- pipe->p_ops.p_close(pipe->p_trandata);
- }
-
// Remove the pipe from the protocol. Protocols may
// keep lists of pipes for managing their topologies.
// Note that if a protocol has rejected the pipe, it
@@ -215,9 +210,9 @@ nni_sock_close(nni_sock *sock)
// Go through and schedule close on all pipes.
while ((pipe = nni_list_first(&sock->s_pipes)) != NULL) {
- nni_list_remove(&sock->s_pipes, pipe);
- pipe->p_reap = 1;
- nni_list_append(&sock->s_reaps, pipe);
+ nni_mtx_unlock(&sock->s_mx);
+ nni_pipe_close(pipe);
+ nni_mtx_lock(&sock->s_mx);
}
nni_cv_wake(&sock->s_cv);
diff --git a/src/core/transport.c b/src/core/transport.c
index 2e8dee7a..b6ebe3c2 100644
--- a/src/core/transport.c
+++ b/src/core/transport.c
@@ -13,29 +13,30 @@
// For now the list of transports is hard-wired. Adding new transports
// to the system dynamically is something that might be considered later.
-extern nni_transport nni_inproc_transport;
+extern nni_tran nni_inproc_tran;
-static nni_transport *transports[] = {
- &nni_inproc_transport,
+static nni_tran *transports[] = {
+ &nni_inproc_tran,
NULL
};
-nni_transport *
-nni_transport_find(const char *addr)
+nni_tran *
+nni_tran_find(const char *addr)
{
// address is of the form "<scheme>://blah..."
const char *end;
int len;
int i;
- nni_transport *ops;
+ nni_tran *tran;
if ((end = strstr(addr, "://")) == NULL) {
return (NULL);
}
len = (int) (end - addr);
- for (i = 0; (ops = transports[i]) != NULL; i++) {
- if (strncmp(addr, ops->tran_scheme, len) == 0) {
- return (ops);
+ for (i = 0; (tran = transports[i]) != NULL; i++) {
+ if ((strncmp(addr, tran->tran_scheme, len) == 0) &&
+ (tran->tran_scheme[len] == '\0')) {
+ return (tran);
}
}
return (NULL);
@@ -45,26 +46,26 @@ nni_transport_find(const char *addr)
// nni_transport_init initializes the entire transport subsystem, including
// each individual transport.
void
-nni_transport_init(void)
+nni_tran_init(void)
{
int i;
- nni_transport *ops;
+ nni_tran *tran;
- for (i = 0; (ops = transports[i]) != NULL; i++) {
- ops->tran_init();
+ for (i = 0; (tran = transports[i]) != NULL; i++) {
+ tran->tran_init();
}
}
void
-nni_transport_fini(void)
+nni_tran_fini(void)
{
int i;
- nni_transport *ops;
+ nni_tran *tran;
- for (i = 0; (ops = transports[i]) != NULL; i++) {
- if (ops->tran_fini != NULL) {
- ops->tran_fini();
+ for (i = 0; (tran = transports[i]) != NULL; i++) {
+ if (tran->tran_fini != NULL) {
+ tran->tran_fini();
}
}
}
diff --git a/src/core/transport.h b/src/core/transport.h
index c0bade07..c738929c 100644
--- a/src/core/transport.h
+++ b/src/core/transport.h
@@ -13,7 +13,7 @@
// Transport implementation details. Transports must implement the
// interfaces in this file.
-struct nni_transport {
+struct nni_tran {
// tran_scheme is the transport scheme, such as "tcp" or "inproc".
const char * tran_scheme;
@@ -119,8 +119,8 @@ struct nni_pipe_ops {
// These APIs are used by the framework internally, and not for use by
// transport implementations.
-extern nni_transport *nni_transport_find(const char *);
-extern void nni_transport_init(void);
-extern void nni_transport_fini(void);
+extern nni_tran *nni_tran_find(const char *);
+extern void nni_tran_init(void);
+extern void nni_tran_fini(void);
#endif // CORE_TRANSPORT_H
diff --git a/src/transport/inproc/inproc.c b/src/transport/inproc/inproc.c
index 688518b3..fe45e78e 100644
--- a/src/transport/inproc/inproc.c
+++ b/src/transport/inproc/inproc.c
@@ -414,7 +414,7 @@ static struct nni_endpt_ops nni_inproc_ep_ops = {
// This is the inproc transport linkage, and should be the only global
// symbol in this entire file.
-struct nni_transport nni_inproc_transport = {
+struct nni_tran nni_inproc_tran = {
.tran_scheme = "inproc",
.tran_ep_ops = &nni_inproc_ep_ops,
.tran_init = nni_inproc_init,