Crate nng_sys

Crate nng_sys 

Source
Expand description

§Examples

use nng_sys::*;
use std::{ffi::CString, os::raw::c_char, ptr::null_mut};

fn example() {
    unsafe {
        let url = CString::new("inproc://nng_sys/tests/example").unwrap();
        let url = url.as_bytes_with_nul().as_ptr() as *const c_char;

        // Reply socket
        let mut rep_socket = nng_socket::default();
        nng_rep0_open(&mut rep_socket);
        nng_listen(rep_socket, url, null_mut(), 0);

        // Request socket
        let mut req_socket = nng_socket::default();
        nng_req0_open(&mut req_socket);
        nng_dial(req_socket, url, null_mut(), 0);

        // Send message
        let mut req_msg: *mut nng_msg = null_mut();
        nng_msg_alloc(&mut req_msg, 0);
        // Add a value to the body of the message
        let val = 0x12345678;
        nng_msg_append_u32(req_msg, val);
        nng_sendmsg(req_socket, req_msg, 0);

        // Receive it
        let mut recv_msg: *mut nng_msg = null_mut();
        nng_recvmsg(rep_socket, &mut recv_msg, 0);
        // Remove our value from the body of the received message
        let mut recv_val: u32 = 0;
        nng_msg_trim_u32(recv_msg, &mut recv_val);
        assert_eq!(val, recv_val);
        // Can't do this because nng uses network order (big-endian)
        //assert_eq!(val, *(nng_msg_body(recv_msg) as *const u32));

        nng_close(req_socket);
        nng_close(rep_socket);
    }
}

Structs§

EnumFromIntError
The error type returned when unable to convert an integer to an enum value.
nng_aio
nng_ctx_s
nng_cv
nng_dialer_s
nng_iov
nng_listener_s
nng_msg
nng_mtx
nng_pipe_s
nng_sockaddr_abstract
nng_sockaddr_in
nng_sockaddr_in6
nng_sockaddr_inproc
nng_sockaddr_path
nng_sockaddr_storage
nng_sockaddr_zt
nng_socket_s
nng_stat
nng_stream
nng_stream_dialer
nng_stream_listener
nng_thread
nng_udp
nng_url

Enums§

_bindgen_ty_1
nng_log_facility
nng_log_level
nng_sockaddr_family
nng_stat_type_enum
nng_unit_enum
nng_zt_status

Constants§

NNG_BUS0_PEER
NNG_BUS0_PEER_NAME
NNG_BUS0_SELF
NNG_BUS0_SELF_NAME
NNG_DURATION_DEFAULT
NNG_DURATION_INFINITE
NNG_DURATION_ZERO
NNG_EADDRINUSE
NNG_EADDRINVAL
NNG_EAGAIN
NNG_EAMBIGUOUS
NNG_EBADTYPE
NNG_EBUSY
NNG_ECANCELED
NNG_ECLOSED
NNG_ECONNABORTED
NNG_ECONNREFUSED
NNG_ECONNRESET
NNG_ECONNSHUT
NNG_ECRYPTO
NNG_EEXIST
NNG_EINTERNAL
NNG_EINTR
NNG_EINVAL
NNG_EMSGSIZE
NNG_ENOARG
NNG_ENOENT
NNG_ENOFILES
NNG_ENOMEM
NNG_ENOSPC
NNG_ENOTSUP
NNG_EPEERAUTH
NNG_EPERM
NNG_EPROTO
NNG_EREADONLY
NNG_ESTATE
NNG_ESYSERR
NNG_ETIMEDOUT
NNG_ETRANERR
NNG_EUNREACHABLE
NNG_EWRITEONLY
NNG_FLAG_ALLOC
NNG_FLAG_NONBLOCK
NNG_INIT_MAX_EXPIRE_THREADS
NNG_INIT_MAX_POLLER_THREADS
NNG_INIT_MAX_TASK_THREADS
NNG_INIT_NUM_EXPIRE_THREADS
NNG_INIT_NUM_POLLER_THREADS
NNG_INIT_NUM_RESOLVER_THREADS
NNG_INIT_NUM_TASK_THREADS
NNG_INIT_PARAMETER_NONE
NNG_MAJOR_VERSION
NNG_MAXADDRLEN
NNG_MAXADDRSTRLEN
NNG_MINOR_VERSION
NNG_OPT_IPC_PEER_GID
NNG_OPT_IPC_PEER_PID
NNG_OPT_IPC_PEER_UID
NNG_OPT_IPC_PEER_ZONEID
NNG_OPT_IPC_PERMISSIONS
NNG_OPT_IPC_SECURITY_DESCRIPTOR
NNG_OPT_LOCADDR
NNG_OPT_MAXTTL
NNG_OPT_PAIR1_POLY
NNG_OPT_PEER
NNG_OPT_PEERNAME
NNG_OPT_PEER_GID
NNG_OPT_PEER_PID
NNG_OPT_PEER_UID
NNG_OPT_PEER_ZONEID
NNG_OPT_PROTO
NNG_OPT_PROTONAME
NNG_OPT_RAW
NNG_OPT_RECONNMAXT
NNG_OPT_RECONNMINT
NNG_OPT_RECVBUF
NNG_OPT_RECVFD
NNG_OPT_RECVMAXSZ
NNG_OPT_RECVTIMEO
NNG_OPT_REMADDR
NNG_OPT_REQ_RESENDTICK
NNG_OPT_REQ_RESENDTIME
NNG_OPT_SENDBUF
NNG_OPT_SENDFD
NNG_OPT_SENDTIMEO
NNG_OPT_SOCKET_FD
NNG_OPT_SOCKNAME
NNG_OPT_SUB_PREFNEW
NNG_OPT_SUB_SUBSCRIBE
NNG_OPT_SUB_UNSUBSCRIBE
NNG_OPT_SURVEYOR_SURVEYTIME
NNG_OPT_TCP_BOUND_PORT
NNG_OPT_TCP_KEEPALIVE
NNG_OPT_TCP_NODELAY
NNG_OPT_TLS_AUTH_MODE
NNG_OPT_TLS_CA_FILE
NNG_OPT_TLS_CERT_KEY_FILE
NNG_OPT_TLS_CONFIG
NNG_OPT_TLS_PEER_ALT_NAMES
NNG_OPT_TLS_PEER_CN
NNG_OPT_TLS_SERVER_NAME
NNG_OPT_TLS_VERIFIED
NNG_OPT_URL
NNG_OPT_WSS_REQUEST_HEADERS
NNG_OPT_WSS_RESPONSE_HEADERS
NNG_OPT_WS_PROTOCOL
NNG_OPT_WS_RECVMAXFRAME
NNG_OPT_WS_RECV_TEXT
NNG_OPT_WS_REQUEST_HEADER
NNG_OPT_WS_REQUEST_HEADERS
NNG_OPT_WS_REQUEST_URI
NNG_OPT_WS_RESPONSE_HEADER
NNG_OPT_WS_RESPONSE_HEADERS
NNG_OPT_WS_SENDMAXFRAME
NNG_OPT_WS_SEND_TEXT
NNG_OPT_ZT_ADD_LOCAL_ADDR
NNG_OPT_ZT_CLEAR_LOCAL_ADDRS
NNG_OPT_ZT_CONN_TIME
NNG_OPT_ZT_CONN_TRIES
NNG_OPT_ZT_DEORBIT
NNG_OPT_ZT_HOME
NNG_OPT_ZT_MTU
NNG_OPT_ZT_NETWORK_NAME
NNG_OPT_ZT_NETWORK_STATUS
NNG_OPT_ZT_NODE
NNG_OPT_ZT_NWID
NNG_OPT_ZT_ORBIT
NNG_OPT_ZT_PING_TIME
NNG_OPT_ZT_PING_TRIES
NNG_PAIR1_PEER
NNG_PAIR1_PEER_NAME
NNG_PAIR1_SELF
NNG_PAIR1_SELF_NAME
NNG_PATCH_VERSION
NNG_PIPE_EV_ADD_POST
NNG_PIPE_EV_ADD_PRE
NNG_PIPE_EV_REM_POST
NNG_RELEASE_SUFFIX
NNG_REP0_PEER
NNG_REP0_PEER_NAME
NNG_REP0_SELF
NNG_REP0_SELF_NAME
NNG_REQ0_PEER
NNG_REQ0_PEER_NAME
NNG_REQ0_SELF
NNG_REQ0_SELF_NAME
NNG_RESPONDENT0_PEER
NNG_RESPONDENT0_PEER_NAME
NNG_RESPONDENT0_SELF
NNG_RESPONDENT0_SELF_NAME
NNG_SURVEYOR0_PEER
NNG_SURVEYOR0_PEER_NAME
NNG_SURVEYOR0_SELF
NNG_SURVEYOR0_SELF_NAME

Functions§

nng_aio_abort
nng_aio_alloc
nng_aio_begin
nng_aio_busy
nng_aio_cancel
nng_aio_count
nng_aio_defer
nng_aio_finish
nng_aio_free
nng_aio_get_input
nng_aio_get_msg
nng_aio_get_output
nng_aio_reap
nng_aio_result
nng_aio_set_expire
nng_aio_set_input
nng_aio_set_iov
nng_aio_set_msg
nng_aio_set_output
nng_aio_set_timeout
nng_aio_stop
nng_aio_wait
nng_alloc
nng_bus0_open
nng_bus0_open_raw
nng_clock
nng_close
nng_closeall
nng_ctx_close
nng_ctx_get
nng_ctx_get_addr
nng_ctx_get_bool
nng_ctx_get_int
nng_ctx_get_ms
nng_ctx_get_ptr
nng_ctx_get_size
nng_ctx_get_string
nng_ctx_get_uint64
nng_ctx_getopt
nng_ctx_getopt_bool
nng_ctx_getopt_int
nng_ctx_getopt_ms
nng_ctx_getopt_size
nng_ctx_id
nng_ctx_open
nng_ctx_recv
nng_ctx_recvmsg
nng_ctx_send
nng_ctx_sendmsg
nng_ctx_set
nng_ctx_set_addr
nng_ctx_set_bool
nng_ctx_set_int
nng_ctx_set_ms
nng_ctx_set_ptr
nng_ctx_set_size
nng_ctx_set_string
nng_ctx_set_uint64
nng_ctx_setopt
nng_ctx_setopt_bool
nng_ctx_setopt_int
nng_ctx_setopt_ms
nng_ctx_setopt_size
nng_cv_alloc
nng_cv_free
nng_cv_until
nng_cv_wait
nng_cv_wake
nng_cv_wake1
nng_device
nng_device_aio
nng_dial
nng_dialer_close
nng_dialer_create
nng_dialer_get
nng_dialer_get_addr
nng_dialer_get_bool
nng_dialer_get_int
nng_dialer_get_ms
nng_dialer_get_ptr
nng_dialer_get_size
nng_dialer_get_string
nng_dialer_get_uint64
nng_dialer_get_url
nng_dialer_getopt
nng_dialer_getopt_bool
nng_dialer_getopt_int
nng_dialer_getopt_ms
nng_dialer_getopt_ptr
nng_dialer_getopt_size
nng_dialer_getopt_sockaddr
nng_dialer_getopt_string
nng_dialer_getopt_uint64
nng_dialer_id
nng_dialer_set
nng_dialer_set_addr
nng_dialer_set_bool
nng_dialer_set_int
nng_dialer_set_ms
nng_dialer_set_ptr
nng_dialer_set_size
nng_dialer_set_string
nng_dialer_set_uint64
nng_dialer_setopt
nng_dialer_setopt_bool
nng_dialer_setopt_int
nng_dialer_setopt_ms
nng_dialer_setopt_ptr
nng_dialer_setopt_size
nng_dialer_setopt_string
nng_dialer_setopt_uint64
nng_dialer_start
nng_fini
nng_free
nng_getopt
nng_getopt_bool
nng_getopt_int
nng_getopt_ms
nng_getopt_ptr
nng_getopt_size
nng_getopt_string
nng_getopt_uint64
nng_init_set_parameter
nng_inproc_register
nng_ipc_register
nng_listen
nng_listener_close
nng_listener_create
nng_listener_get
nng_listener_get_addr
nng_listener_get_bool
nng_listener_get_int
nng_listener_get_ms
nng_listener_get_ptr
nng_listener_get_size
nng_listener_get_string
nng_listener_get_uint64
nng_listener_get_url
nng_listener_getopt
nng_listener_getopt_bool
nng_listener_getopt_int
nng_listener_getopt_ms
nng_listener_getopt_ptr
nng_listener_getopt_size
nng_listener_getopt_sockaddr
nng_listener_getopt_string
nng_listener_getopt_uint64
nng_listener_id
nng_listener_set
nng_listener_set_addr
nng_listener_set_bool
nng_listener_set_int
nng_listener_set_ms
nng_listener_set_ptr
nng_listener_set_size
nng_listener_set_string
nng_listener_set_uint64
nng_listener_setopt
nng_listener_setopt_bool
nng_listener_setopt_int
nng_listener_setopt_ms
nng_listener_setopt_ptr
nng_listener_setopt_size
nng_listener_setopt_string
nng_listener_setopt_uint64
nng_listener_start
nng_log_auth
nng_log_debug
nng_log_err
nng_log_get_level
nng_log_info
nng_log_notice
nng_log_set_facility
nng_log_set_level
nng_log_set_logger
nng_log_warn
nng_msg_alloc
nng_msg_append
nng_msg_append_u16
nng_msg_append_u32
nng_msg_append_u64
nng_msg_body
nng_msg_capacity
nng_msg_chop
nng_msg_chop_u16
nng_msg_chop_u32
nng_msg_chop_u64
nng_msg_clear
nng_msg_dup
nng_msg_free
nng_msg_get_pipe
nng_msg_getopt
nng_msg_header
nng_msg_header_append
nng_msg_header_append_u16
nng_msg_header_append_u32
nng_msg_header_append_u64
nng_msg_header_chop
nng_msg_header_chop_u16
nng_msg_header_chop_u32
nng_msg_header_chop_u64
nng_msg_header_clear
nng_msg_header_insert
nng_msg_header_insert_u16
nng_msg_header_insert_u32
nng_msg_header_insert_u64
nng_msg_header_len
nng_msg_header_trim
nng_msg_header_trim_u16
nng_msg_header_trim_u32
nng_msg_header_trim_u64
nng_msg_insert
nng_msg_insert_u16
nng_msg_insert_u32
nng_msg_insert_u64
nng_msg_len
nng_msg_realloc
nng_msg_reserve
nng_msg_set_pipe
nng_msg_trim
nng_msg_trim_u16
nng_msg_trim_u32
nng_msg_trim_u64
nng_msleep
nng_mtx_alloc
nng_mtx_free
nng_mtx_lock
nng_mtx_unlock
nng_null_logger
nng_pair0_open
nng_pair0_open_raw
nng_pair1_open
nng_pair1_open_poly
nng_pair1_open_raw
nng_pipe_close
nng_pipe_dialer
nng_pipe_get
nng_pipe_get_addr
nng_pipe_get_bool
nng_pipe_get_int
nng_pipe_get_ms
nng_pipe_get_ptr
nng_pipe_get_size
nng_pipe_get_string
nng_pipe_get_uint64
nng_pipe_getopt
nng_pipe_getopt_bool
nng_pipe_getopt_int
nng_pipe_getopt_ms
nng_pipe_getopt_ptr
nng_pipe_getopt_size
nng_pipe_getopt_sockaddr
nng_pipe_getopt_string
nng_pipe_getopt_uint64
nng_pipe_id
nng_pipe_listener
nng_pipe_notify
nng_pipe_socket
nng_pub0_open
nng_pub0_open_raw
nng_pull0_open
nng_pull0_open_raw
nng_push0_open
nng_push0_open_raw
nng_random
nng_recv
nng_recv_aio
nng_recvmsg
nng_rep0_open
nng_rep0_open_raw
nng_req0_open
nng_req0_open_raw
nng_respondent0_open
nng_respondent0_open_raw
nng_send
nng_send_aio
nng_sendmsg
nng_setopt
nng_setopt_bool
nng_setopt_int
nng_setopt_ms
nng_setopt_ptr
nng_setopt_size
nng_setopt_string
nng_setopt_uint64
nng_sleep_aio
nng_sock_recv
nng_sock_send
nng_socket_close
nng_socket_get
nng_socket_get_addr
nng_socket_get_bool
nng_socket_get_int
nng_socket_get_ms
nng_socket_get_ptr
nng_socket_get_size
nng_socket_get_string
nng_socket_get_uint64
nng_socket_id
nng_socket_pair
nng_socket_peer_id
nng_socket_peer_name
nng_socket_proto_id
nng_socket_proto_name
nng_socket_raw
nng_socket_set
nng_socket_set_addr
nng_socket_set_bool
nng_socket_set_int
nng_socket_set_ms
nng_socket_set_ptr
nng_socket_set_size
nng_socket_set_string
nng_socket_set_uint64
nng_stat_bool
nng_stat_child
nng_stat_desc
nng_stat_find
nng_stat_find_dialer
nng_stat_find_listener
nng_stat_find_socket
nng_stat_name
nng_stat_next
nng_stat_string
nng_stat_timestamp
nng_stat_type
nng_stat_unit
nng_stat_value
nng_stats_dump
nng_stats_free
nng_stats_get
nng_stderr_logger
nng_str_sockaddr
nng_strdup
nng_stream_close
nng_stream_dialer_alloc
nng_stream_dialer_alloc_url
nng_stream_dialer_close
nng_stream_dialer_dial
nng_stream_dialer_free
nng_stream_dialer_get
nng_stream_dialer_get_addr
nng_stream_dialer_get_bool
nng_stream_dialer_get_int
nng_stream_dialer_get_ms
nng_stream_dialer_get_ptr
nng_stream_dialer_get_size
nng_stream_dialer_get_string
nng_stream_dialer_get_uint64
nng_stream_dialer_set
nng_stream_dialer_set_addr
nng_stream_dialer_set_bool
nng_stream_dialer_set_int
nng_stream_dialer_set_ms
nng_stream_dialer_set_ptr
nng_stream_dialer_set_size
nng_stream_dialer_set_string
nng_stream_dialer_set_uint64
nng_stream_free
nng_stream_get
nng_stream_get_addr
nng_stream_get_bool
nng_stream_get_int
nng_stream_get_ms
nng_stream_get_ptr
nng_stream_get_size
nng_stream_get_string
nng_stream_get_uint64
nng_stream_listener_accept
nng_stream_listener_alloc
nng_stream_listener_alloc_url
nng_stream_listener_close
nng_stream_listener_free
nng_stream_listener_get
nng_stream_listener_get_addr
nng_stream_listener_get_bool
nng_stream_listener_get_int
nng_stream_listener_get_ms
nng_stream_listener_get_ptr
nng_stream_listener_get_size
nng_stream_listener_get_string
nng_stream_listener_get_uint64
nng_stream_listener_listen
nng_stream_listener_set
nng_stream_listener_set_addr
nng_stream_listener_set_bool
nng_stream_listener_set_int
nng_stream_listener_set_ms
nng_stream_listener_set_ptr
nng_stream_listener_set_size
nng_stream_listener_set_string
nng_stream_listener_set_uint64
nng_stream_recv
nng_stream_send
nng_stream_set
nng_stream_set_addr
nng_stream_set_bool
nng_stream_set_int
nng_stream_set_ms
nng_stream_set_ptr
nng_stream_set_size
nng_stream_set_string
nng_stream_set_uint64
nng_strerror
nng_strfree
nng_sub0_ctx_subscribe
nng_sub0_ctx_unsubscribe
nng_sub0_open
nng_sub0_open_raw
nng_sub0_socket_subscribe
nng_sub0_socket_unsubscribe
nng_surveyor0_open
nng_surveyor0_open_raw
nng_system_logger
nng_tcp_register
nng_thread_create
nng_thread_destroy
nng_thread_set_name
nng_tls_register
nng_udp_close
nng_udp_multicast_membership
nng_udp_open
nng_udp_recv
nng_udp_send
nng_udp_sockname
nng_url_clone
nng_url_free
nng_url_parse
nng_version
nng_ws_register
nng_wss_register
nng_zt_register

Type Aliases§

nng_aio_cancelfn
nng_ctx
nng_dialer
nng_duration
nng_errno_enum
nng_init_parameter
nng_listener
nng_logger
nng_pipe
nng_pipe_cb
nng_pipe_ev
nng_sockaddr_ipc
nng_socket
nng_time

Unions§

nng_sockaddr