This documentation is for the TIP (development tree) of NNG and may represent unreleased changes or functionality that is experimental, and is subject to change before release. The latest released version is v1.8.0. See the documentation for v1.8.0 for the most up-to-date information.

nng_ctx_open(3)

NAME

nng_ctx_open - create context

SYNOPSIS

#include <nng/nng.h>

int nng_ctx_open(nng_ctx *ctxp, nng_socket s);

DESCRIPTION

The nng_ctx_open() function creates a separate context to be used with the socket s, and returns it at the location pointed by ctxp.

Not every protocol supports creation of separate contexts.

Contexts allow the independent and concurrent use of stateful operations using the same socket. For example, two different contexts created on a rep socket can each receive requests, and send replies to them, without any regard to or interference with each other.

TIP: Using contexts is an excellent way to write simpler concurrent applications, while retaining the benefits of the protocol-specific advanced processing, avoiding the need to bypass that with raw mode sockets.

Use of contexts with raw mode sockets is nonsensical, and not supported.

RETURN VALUES

This function returns 0 on success, and non-zero otherwise.

ERRORS

NNG_ENOMEM

Insufficient memory is available.

NNG_ENOTSUP

The protocol does not support separate contexts, or the socket was opened in raw mode.

SEE ALSO