Skip to content

Latest commit

 

History

History
80 lines (63 loc) · 2.48 KB

nng_pipe.5.adoc

File metadata and controls

80 lines (63 loc) · 2.48 KB

nng_pipe(5)

NAME

nng_pipe - communications pipe

SYNOPSIS

#include <nng/nng.h>

typedef struct nng_pipe_s nng_pipe;

DESCRIPTION

An nng_pipe is a handle to a “pipe”, which can be thought of as a single connection. (In most cases this is actually the case — the pipe is an abstraction for a single TCP or IPC connection.) Pipes are associated with either the listener or dialer that created them, and therefore are also automatically associated with a single socket.

Important
The nng_pipe structure is always passed by value (both for input parameters and return values), and should be treated opaquely. Passing structures this way ensures gives the compiler a chance to perform accurate type checks in functions passing values of this type.
Tip
Most applications should never concern themselves with individual pipes. However it is possible to access a pipe when more information about the source of a message is needed, or when more control is required over message delivery.

Pipe objects are created by dialers (nng_dialer objects) and listeners (nng_listener objects), which can be thought of as “owning” the pipe.

Pipe objects may be destroyed by the nng_pipe_close() function. They are also closed when their “owning” dialer or listener is closed, or when the remote peer closes the underlying connection.

Initialization

A pipe may be initialized using the macro NNG_PIPE_INITIALIZER before it is opened, to prevent confusion with valid open pipes.

For example:

nng_pipe p = NNG_PIPE_INITIALIZER;