[][src]Crate nng_sys

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_dialer_s
nng_iov
nng_listener_s
nng_msg
nng_pipe_s
nng_sockaddr_in
nng_sockaddr_in6
nng_sockaddr_inproc
nng_sockaddr_path
nng_sockaddr_zt
nng_socket_s
nng_stat
nng_stream
nng_stream_dialer
nng_stream_listener
nng_url

Enums

nng_sockaddr_family
nng_stat_type_enum
nng_unit_enum
nng_zt_status

Constants

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_MAJOR_VERSION
NNG_MAXADDRLEN
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_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_RESENDTIME
NNG_OPT_SENDBUF
NNG_OPT_SENDFD
NNG_OPT_SENDTIMEO
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_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_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_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_SELF
NNG_PAIR1_PEER
NNG_PAIR1_SELF_NAME
NNG_PAIR1_PEER_NAME
NNG_PATCH_VERSION
NNG_PIPE_EV_ADD_POST
NNG_PIPE_EV_ADD_PRE
NNG_PIPE_EV_REM_POST
NNG_RELEASE_SUFFIX
NNG_REP0_SELF
NNG_REP0_PEER
NNG_REP0_SELF_NAME
NNG_REP0_PEER_NAME
NNG_REQ0_SELF
NNG_REQ0_PEER
NNG_REQ0_SELF_NAME
NNG_REQ0_PEER_NAME
NNG_RESPONDENT0_SELF
NNG_RESPONDENT0_PEER
NNG_RESPONDENT0_SELF_NAME
NNG_RESPONDENT0_PEER_NAME
NNG_SURVEYOR0_SELF
NNG_SURVEYOR0_PEER
NNG_SURVEYOR0_SELF_NAME
NNG_SURVEYOR0_PEER_NAME

Functions

nng_aio_abort
nng_aio_alloc
nng_aio_begin
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_result
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_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_send
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_device
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_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_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_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_msg_alloc
nng_msg_append
nng_msg_append_u16
nng_msg_append_u32
nng_msg_append_u64
nng_msg_body
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_set_pipe
nng_msg_trim
nng_msg_trim_u16
nng_msg_trim_u32
nng_msg_trim_u64
nng_pair0_open
nng_pair0_open_raw
nng_pair1_open
nng_pair1_open_raw
nng_pair1_open_poly
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_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_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_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_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_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_open
nng_sub0_open_raw
nng_surveyor0_open
nng_surveyor0_open_raw
nng_tcp_register
nng_tls_register
nng_url_clone
nng_url_free
nng_url_parse
nng_version
nng_ws_register
nng_wss_register
nng_zt_register

Type Definitions

nng_aio_cancelfn
nng_ctx
nng_dialer
nng_duration
nng_errno_enum
nng_flag_enum
nng_listener
nng_pipe
nng_pipe_cb
nng_pipe_ev
nng_sockaddr_ipc
nng_sockaddr_tcp
nng_sockaddr_tcp6
nng_sockaddr_udp
nng_sockaddr_udp6
nng_socket
size_t

Unions

nng_sockaddr