diff options
Diffstat (limited to 'src/core/socket.h')
| -rw-r--r-- | src/core/socket.h | 55 |
1 files changed, 5 insertions, 50 deletions
diff --git a/src/core/socket.h b/src/core/socket.h index 9b7ac1f9..9fa6c0fa 100644 --- a/src/core/socket.h +++ b/src/core/socket.h @@ -11,54 +11,6 @@ #ifndef CORE_SOCKET_H #define CORE_SOCKET_H -// NB: This structure is supplied here for use by the CORE. Use of this library -// OUSIDE of the core is STRICTLY VERBOTEN. NO DIRECT ACCESS BY PROTOCOLS OR -// TRANSPORTS. -struct nni_socket { - nni_list_node s_node; - nni_mtx s_mx; - nni_cv s_cv; - nni_cv s_close_cv; - - uint32_t s_id; - uint32_t s_flags; - unsigned s_refcnt; // protected by global lock - void * s_data; // Protocol private - - nni_msgq *s_uwq; // Upper write queue - nni_msgq *s_urq; // Upper read queue - - nni_proto_id s_self_id; - nni_proto_id s_peer_id; - - nni_proto_pipe_ops s_pipe_ops; - nni_proto_sock_ops s_sock_ops; - - // XXX: options - nni_duration s_linger; // linger time - nni_duration s_sndtimeo; // send timeout - nni_duration s_rcvtimeo; // receive timeout - nni_duration s_reconn; // reconnect time - nni_duration s_reconnmax; // max reconnect time - size_t s_rcvmaxsz; // maximum receive size - - nni_list s_eps; // active endpoints - nni_list s_pipes; // active pipes - - int s_ep_pend; // EP dial/listen in progress - int s_closing; // Socket is closing - int s_closed; // Socket closed, protected by global lock - int s_besteffort; // Best effort mode delivery - int s_senderr; // Protocol state machine use - int s_recverr; // Protocol state machine use - - nni_event s_recv_ev; // Event for readability - nni_event s_send_ev; // Event for sendability - - nni_notifyfd s_send_fd; - nni_notifyfd s_recv_fd; -}; - extern int nni_sock_sys_init(void); extern void nni_sock_sys_fini(void); @@ -72,8 +24,8 @@ extern uint16_t nni_sock_proto(nni_sock *); extern uint16_t nni_sock_peer(nni_sock *); extern int nni_sock_setopt(nni_sock *, int, const void *, size_t); extern int nni_sock_getopt(nni_sock *, int, void *, size_t *); -extern int nni_sock_recvmsg(nni_sock *, nni_msg **, nni_time); -extern int nni_sock_sendmsg(nni_sock *, nni_msg *, nni_time); +extern int nni_sock_recvmsg(nni_sock *, nni_msg **, int); +extern int nni_sock_sendmsg(nni_sock *, nni_msg *, int); extern uint32_t nni_sock_id(nni_sock *); extern void nni_sock_lock(nni_sock *); @@ -115,4 +67,7 @@ extern nni_msgq *nni_sock_recvq(nni_sock *); extern size_t nni_sock_rcvmaxsz(nni_sock *); extern void nni_sock_reconntimes(nni_sock *, nni_duration *, nni_duration *); +// nni_sock_flags returns the socket flags, used to indicate whether read +// and or write are appropriate for the protocol. +extern uint32_t nni_sock_flags(nni_sock *); #endif // CORE_SOCKET_H |
