aboutsummaryrefslogtreecommitdiff
path: root/src/core/sockimpl.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/sockimpl.h')
-rw-r--r--src/core/sockimpl.h107
1 files changed, 51 insertions, 56 deletions
diff --git a/src/core/sockimpl.h b/src/core/sockimpl.h
index 732e2285..804fa00c 100644
--- a/src/core/sockimpl.h
+++ b/src/core/sockimpl.h
@@ -15,25 +15,6 @@
// and pipes. This must not be exposed to other subsystems -- these internals
// are subject to change at any time.
-typedef struct nni_dialer_stats {
- nni_stat_item s_root;
- nni_stat_item s_id;
- nni_stat_item s_sock;
- nni_stat_item s_url;
- nni_stat_item s_npipes;
- nni_stat_item s_connok;
- nni_stat_item s_refused;
- nni_stat_item s_discon;
- nni_stat_item s_canceled;
- nni_stat_item s_othererr;
- nni_stat_item s_etimedout;
- nni_stat_item s_eproto; // protocol error
- nni_stat_item s_eauth;
- nni_stat_item s_enomem;
- nni_stat_item s_reject;
- char s_scope[24]; // scope name for stats
-} nni_dialer_stats;
-
struct nni_dialer {
nni_tran_dialer_ops d_ops; // transport ops
nni_tran * d_tran; // transport pointer
@@ -42,8 +23,8 @@ struct nni_dialer {
nni_list_node d_node; // per socket list
nni_sock * d_sock;
nni_url * d_url;
- nni_pipe * d_pipe; // active pipe (for redialer)
- int d_refcnt;
+ nni_pipe * d_pipe; // active pipe (for re-dialer)
+ int d_ref;
bool d_closed; // full shutdown
bool d_closing;
nni_atomic_flag d_started;
@@ -57,26 +38,25 @@ struct nni_dialer {
nni_duration d_inirtime; // initial time for reconnect
nni_time d_conntime; // time of last good connect
nni_reap_item d_reap;
- nni_dialer_stats d_stats;
-};
-typedef struct nni_listener_stats {
- nni_stat_item s_root;
- nni_stat_item s_id;
- nni_stat_item s_sock;
- nni_stat_item s_url;
- nni_stat_item s_npipes;
- nni_stat_item s_accept;
- nni_stat_item s_discon; // aborted remotely
- nni_stat_item s_canceled;
- nni_stat_item s_othererr;
- nni_stat_item s_etimedout;
- nni_stat_item s_eproto; // protocol error
- nni_stat_item s_eauth;
- nni_stat_item s_enomem;
- nni_stat_item s_reject;
- char s_scope[24]; // scope name for stats
-} nni_listener_stats;
+#ifdef NNG_ENABLE_STATS
+ nni_stat_item st_root;
+ nni_stat_item st_id;
+ nni_stat_item st_sock;
+ nni_stat_item st_url;
+ nni_stat_item st_pipes;
+ nni_stat_item st_connect;
+ nni_stat_item st_refused;
+ nni_stat_item st_disconnect; // aborted remotely
+ nni_stat_item st_canceled;
+ nni_stat_item st_other;
+ nni_stat_item st_timeout;
+ nni_stat_item st_proto; // protocol error
+ nni_stat_item st_auth;
+ nni_stat_item st_oom;
+ nni_stat_item st_reject;
+#endif
+};
struct nni_listener {
nni_tran_listener_ops l_ops; // transport ops
@@ -86,7 +66,7 @@ struct nni_listener {
nni_list_node l_node; // per socket list
nni_sock * l_sock;
nni_url * l_url;
- int l_refcnt;
+ int l_ref;
bool l_closed; // full shutdown
bool l_closing; // close started (shutdown)
nni_atomic_flag l_started;
@@ -94,20 +74,24 @@ struct nni_listener {
nni_aio l_acc_aio;
nni_aio l_tmo_aio;
nni_reap_item l_reap;
- nni_listener_stats l_stats;
-};
-typedef struct nni_pipe_stats {
- nni_stat_item s_root;
- nni_stat_item s_id;
- nni_stat_item s_ep_id;
- nni_stat_item s_sock_id;
- nni_stat_item s_rxmsgs;
- nni_stat_item s_txmsgs;
- nni_stat_item s_rxbytes;
- nni_stat_item s_txbytes;
- char s_scope[16]; // scope name for stats ("pipe" is short)
-} nni_pipe_stats;
+#ifdef NNG_ENABLE_STATS
+ nni_stat_item st_root;
+ nni_stat_item st_id;
+ nni_stat_item st_sock;
+ nni_stat_item st_url;
+ nni_stat_item st_pipes;
+ nni_stat_item st_accept;
+ nni_stat_item st_disconnect; // aborted remotely
+ nni_stat_item st_canceled;
+ nni_stat_item st_other;
+ nni_stat_item st_timeout;
+ nni_stat_item st_proto; // protocol error
+ nni_stat_item st_auth;
+ nni_stat_item st_oom;
+ nni_stat_item st_reject;
+#endif
+};
struct nni_pipe {
uint32_t p_id;
@@ -124,11 +108,22 @@ struct nni_pipe {
bool p_closed;
nni_atomic_flag p_stop;
bool p_cbs;
- int p_refcnt;
+ int p_ref;
nni_mtx p_mtx;
nni_cv p_cv;
nni_reap_item p_reap;
- nni_pipe_stats p_stats;
+
+#ifdef NNG_ENABLE_STATS
+ nni_stat_item st_root;
+ nni_stat_item st_id;
+ nni_stat_item st_ep_id;
+ nni_stat_item st_sock_id;
+ nni_stat_item st_rx_msgs;
+ nni_stat_item st_tx_msgs;
+ nni_stat_item st_rx_bytes;
+ nni_stat_item st_tx_bytes;
+
+#endif
};
extern int nni_sock_add_dialer(nni_sock *, nni_dialer *);