diff options
Diffstat (limited to 'src/nng.h')
| -rw-r--r-- | src/nng.h | 136 |
1 files changed, 60 insertions, 76 deletions
@@ -86,16 +86,16 @@ NNG_DECL uint16_t nng_protocol(nng_socket); NNG_DECL uint16_t nng_peer(nng_socket); // nng_setopt sets an option for a specific socket. -NNG_DECL int nng_setopt(nng_socket, int, const void *, size_t); -NNG_DECL int nng_setopt_int(nng_socket, int, int); -NNG_DECL int nng_setopt_usec(nng_socket, int, uint64_t); -NNG_DECL int nng_setopt_size(nng_socket, int, size_t); +NNG_DECL int nng_setopt(nng_socket, const char *, const void *, size_t); +NNG_DECL int nng_setopt_int(nng_socket, const char *, int); +NNG_DECL int nng_setopt_usec(nng_socket, const char *, uint64_t); +NNG_DECL int nng_setopt_size(nng_socket, const char *, size_t); // nng_socket_getopt obtains the option for a socket. -NNG_DECL int nng_getopt(nng_socket, int, void *, size_t *); -NNG_DECL int nng_getopt_int(nng_socket, int, int *); -NNG_DECL int nng_getopt_usec(nng_socket, int, uint64_t *); -NNG_DECL int nng_getopt_size(nng_socket, int, size_t *); +NNG_DECL int nng_getopt(nng_socket, const char *, void *, size_t *); +NNG_DECL int nng_getopt_int(nng_socket, const char *, int *); +NNG_DECL int nng_getopt_usec(nng_socket, const char *, uint64_t *); +NNG_DECL int nng_getopt_size(nng_socket, const char *, size_t *); // nng_notify_func is a user function that is executed upon certain // events. See below. @@ -199,35 +199,36 @@ NNG_DECL int nng_listener_close(nng_listener); // nng_dialer_setopt sets an option for a specific dialer. Note // dialer options may not be altered on a running dialer. -NNG_DECL int nng_dialer_setopt(nng_dialer, int, const void *, size_t); -NNG_DECL int nng_dialer_setopt_int(nng_dialer, int, int); -NNG_DECL int nng_dialer_setopt_usec(nng_dialer, int, uint64_t); -NNG_DECL int nng_dialer_setopt_size(nng_dialer, int, size_t); +NNG_DECL int nng_dialer_setopt(nng_dialer, const char *, const void *, size_t); +NNG_DECL int nng_dialer_setopt_int(nng_dialer, const char *, int); +NNG_DECL int nng_dialer_setopt_usec(nng_dialer, const char *, uint64_t); +NNG_DECL int nng_dialer_setopt_size(nng_dialer, const char *, size_t); // nng_dialer_getopt obtains the option for a dialer. This will // fail for options that a particular dialer is not interested in, // even if they were set on the socket. -NNG_DECL int nng_dialer_getopt(nng_dialer, int, void *, size_t *); -NNG_DECL int nng_dialer_getopt_int(nng_dialer, int, int *); -NNG_DECL int nng_dialer_getopt_usec(nng_dialer, int, uint64_t *); -NNG_DECL int nng_dialer_getopt_size(nng_dialer, int, size_t *); +NNG_DECL int nng_dialer_getopt(nng_dialer, const char *, void *, size_t *); +NNG_DECL int nng_dialer_getopt_int(nng_dialer, const char *, int *); +NNG_DECL int nng_dialer_getopt_usec(nng_dialer, const char *, uint64_t *); +NNG_DECL int nng_dialer_getopt_size(nng_dialer, const char *, size_t *); // nng_listener_setopt sets an option for a dialer. This value is // not stored in the socket. Subsequent setopts on the socket may // override these value however. Note listener options may not be altered // on a running listener. -NNG_DECL int nng_listener_setopt(nng_dialer, int, const void *, size_t); -NNG_DECL int nng_listener_setopt_int(nng_dialer, int, int); -NNG_DECL int nng_listener_setopt_usec(nng_dialer, int, uint64_t); -NNG_DECL int nng_listener_setopt_size(nng_dialer, int, size_t); +NNG_DECL int nng_listener_setopt( + nng_listener, const char *, const void *, size_t); +NNG_DECL int nng_listener_setopt_int(nng_listener, const char *, int); +NNG_DECL int nng_listener_setopt_usec(nng_listener, const char *, uint64_t); +NNG_DECL int nng_listener_setopt_size(nng_listener, const char *, size_t); // nng_listener_getopt obtains the option for a listener. This will // fail for options that a particular listener is not interested in, // even if they were set on the socket. -NNG_DECL int nng_listener_getopt(nng_listener, int, void *, size_t *); -NNG_DECL int nng_listener_getopt_int(nng_listener, int, int *); -NNG_DECL int nng_listener_getopt_usec(nng_listener, int, uint64_t *); -NNG_DECL int nng_listener_getopt_size(nng_listener, int, size_t *); +NNG_DECL int nng_listener_getopt(nng_listener, const char *, void *, size_t *); +NNG_DECL int nng_listener_getopt_int(nng_listener, const char *, int *); +NNG_DECL int nng_listener_getopt_usec(nng_listener, const char *, uint64_t *); +NNG_DECL int nng_listener_getopt_size(nng_listener, const char *, size_t *); // nng_strerror returns a human readable string associated with the error // code supplied. @@ -320,7 +321,7 @@ NNG_DECL const char *nng_option_name(int); // we do permit an application to close a pipe. This can be useful, for // example during a connection notification, to disconnect a pipe that // is associated with an invalid or untrusted remote peer. -NNG_DECL int nng_pipe_getopt(nng_pipe, int, void *, size_t *); +NNG_DECL int nng_pipe_getopt(nng_pipe, const char *, void *, size_t *); NNG_DECL int nng_pipe_close(nng_pipe); // Flags. @@ -395,60 +396,41 @@ NNG_DECL int nng_respondent0_open(nng_socket *); #define nng_surveyor_open nng_surveyor0_open #define nng_respondent_open nng_respondent0_open -// Options. We encode option numbers as follows: -// -// <level> - 0: socket, 1: transport -// <type> - zero (socket), or transport (8 bits) -// <code> - specific value (16 bits) -#define NNG_OPT_SOCKET(c) (c) -#define NNG_OPT_TRANSPORT_OPT(t, c) (0x10000 | ((t) << 16) | (c)) +// Options. +#define NNG_OPT_RAW "raw" +#define NNG_OPT_LINGER "linger" +#define NNG_OPT_RECVBUF "recv-buffer" +#define NNG_OPT_SENDBUF "send-buffer" +#define NNG_OPT_RECVFD "recv-fd" +#define NNG_OPT_SENDFD "send-fd" +#define NNG_OPT_RECVTIMEO "recv-timeout" +#define NNG_OPT_SENDTIMEO "send-timeout" +#define NNG_OPT_LOCADDR "local-address" +#define NNG_OPT_REMADDR "remote-address" +#define NNG_OPT_URL "url" +#define NNG_OPT_MAXTTL "ttl-max" +#define NNG_OPT_PROTOCOL "protocol" +#define NNG_OPT_TRANSPORT "transport" +#define NNG_OPT_RECVMAXSZ "recv-size-max" +#define NNG_OPT_RECONNMINT "reconnect-time-min" +#define NNG_OPT_RECONNMAXT "reconnect-time-max" + +#define NNG_OPT_SUB_SUBSCRIBE "sub:subscribe" +#define NNG_OPT_SUB_UNSUBSCRIBE "sub:unsubscribe" + +#define NNG_OPT_REQ_RESENDTIME "req:resend-time" + +#define NNG_OPT_SURVEYOR_SURVEYTIME "surveyor:survey-time" NNG_DECL const char *nng_opt_raw; -NNG_DECL const char *nng_opt_linger; -NNG_DECL const char *nng_opt_recvbuf; -NNG_DECL const char *nng_opt_sendbuf; -NNG_DECL const char *nng_opt_recvtimeo; -NNG_DECL const char *nng_opt_sendtimeo; NNG_DECL const char *nng_opt_recvmaxsz; -NNG_DECL const char *nng_opt_reconnmint; -NNG_DECL const char *nng_opt_reconnmaxt; NNG_DECL const char *nng_opt_maxttl; NNG_DECL const char *nng_opt_protocol; NNG_DECL const char *nng_opt_transport; -NNG_DECL const char *nng_opt_recvfd; -NNG_DECL const char *nng_opt_sendfd; NNG_DECL const char *nng_opt_locaddr; NNG_DECL const char *nng_opt_remaddr; -NNG_DECL const char *nng_opt_url; -NNG_DECL const char *nng_opt_req_resendtime; -NNG_DECL const char *nng_opt_sub_subscribe; -NNG_DECL const char *nng_opt_sub_unsubscribe; NNG_DECL const char *nng_opt_surveyor_surveytime; -NNG_DECL int nng_optid_raw; -NNG_DECL int nng_optid_linger; -NNG_DECL int nng_optid_recvbuf; -NNG_DECL int nng_optid_sendbuf; -NNG_DECL int nng_optid_recvtimeo; -NNG_DECL int nng_optid_sendtimeo; -NNG_DECL int nng_optid_recvmaxsz; -NNG_DECL int nng_optid_reconnmint; -NNG_DECL int nng_optid_reconnmaxt; -NNG_DECL int nng_optid_maxttl; -NNG_DECL int nng_optid_protocol; -NNG_DECL int nng_optid_transport; -NNG_DECL int nng_optid_recvfd; -NNG_DECL int nng_optid_sendfd; -NNG_DECL int nng_optid_locaddr; -NNG_DECL int nng_optid_remaddr; -NNG_DECL int nng_optid_url; - -// These protocol specific options may not be valid until a socket of -// the given protocol is opened! -NNG_DECL int nng_optid_req_resendtime; -NNG_DECL int nng_optid_sub_subscribe; -NNG_DECL int nng_optid_sub_unsubscribe; -NNG_DECL int nng_optid_surveyor_surveytime; // XXX: TBD: priorities, socket names, ipv4only // Statistics. These are for informational purposes only, and subject @@ -598,8 +580,9 @@ enum nng_errno_enum { NNG_ENOFILES = 21, NNG_ENOSPC = 22, NNG_EEXIST = 23, - NNG_EINTERNAL = 24, - NNG_ETRANSPORT = 25, + NNG_EREADONLY = 24, + NNG_EWRITEONLY = 25, + NNG_EINTERNAL = 1000, NNG_ESYSERR = 0x10000000, NNG_ETRANERR = 0x20000000, }; @@ -648,11 +631,12 @@ typedef struct nng_sockaddr_zt nng_sockaddr_zt; typedef struct nng_sockaddr { union { - uint16_t s_family; - nng_sockaddr_path s_path; - nng_sockaddr_in6 s_in6; - nng_sockaddr_in s_in; - nng_sockaddr_zt s_zt; + uint16_t s_family; + nng_sockaddr_path s_path; + nng_sockaddr_inproc s_inproc; + nng_sockaddr_in6 s_in6; + nng_sockaddr_in s_in; + nng_sockaddr_zt s_zt; } s_un; } nng_sockaddr; |
