summaryrefslogtreecommitdiff
path: root/man/v1.2/nng_ctx_open.3.html
blob: 0e77b44fc9308096b009da69de6c1eb03fb3d3aa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
---
version: v1.2
layout: refman
---
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="Asciidoctor 2.0.10">
<title>nng_ctx_open(3)</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
<link rel="stylesheet" href="./asciidoctor.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
</head>
<body class="manpage toc2 toc-left">
<div id="header">
<h1>nng_ctx_open(3) Manual Page</h1>
<div id="toc" class="toc2">
<div id="toctitle">Table of Contents</div>
<ul class="sectlevel1">
<li><a href="#_synopsis">SYNOPSIS</a></li>
<li><a href="#_description">DESCRIPTION</a></li>
<li><a href="#_return_values">RETURN VALUES</a></li>
<li><a href="#_errors">ERRORS</a></li>
<li><a href="#_see_also">SEE ALSO</a></li>
</ul>
</div>
<h2 id="_name">NAME</h2>
<div class="sectionbody">
<p>nng_ctx_open - create context</p>
</div>
</div>
<div id="content">
<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>

<span class="tok-kt">int</span> <span class="tok-nf">nng_ctx_open</span><span class="tok-p">(</span><span class="tok-n">nng_ctx</span> <span class="tok-o">*</span><span class="tok-n">ctxp</span><span class="tok-p">,</span> <span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">);</span></code></pre>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The <code>nng_ctx_open()</code> function creates a separate context to be used with
the socket <em>s</em>,
and returns it at the location pointed by <em>ctxp</em>.</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
Not every protocol supports creation of separate contexts.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>Contexts allow the independent and concurrent use of stateful operations
using the same socket.
For example, two different contexts created on a <a href="nng_rep.7.html"><em>rep</em></a>
socket can each receive requests, and send replies to them, without any
regard to or interference with each other.</p>
</div>
<div class="paragraph">
<p>
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
<a href="nng.7.html#raw_mode">raw mode</a> sockets.</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
Use of contexts with <a href="nng.7.html#raw_mode">raw mode</a> sockets is
nonsensical, and not supported.
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_return_values">RETURN VALUES</h2>
<div class="sectionbody">
<div class="paragraph">
<p>This function returns 0 on success, and non-zero otherwise.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_errors">ERRORS</h2>
<div class="sectionbody">
<div class="hdlist">
<table>
<tr>
<td class="hdlist1">
<code>NNG_ENOMEM</code>
</td>
<td class="hdlist2">
<p>Insufficient memory is available.</p>
</td>
</tr>
<tr>
<td class="hdlist1">
<code>NNG_ENOTSUP</code>
</td>
<td class="hdlist2">
<p>The protocol does not support separate contexts, or the socket was opened in raw mode.</p>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_see_also">SEE ALSO</h2>
<div class="sectionbody">
<div class="paragraph text-left">
<p><a href="nng_ctx_close.3.html">nng_ctx_close(3)</a>,
<a href="nng_ctx_getopt.3.html">nng_ctx_getopt(3)</a>,
<a href="nng_ctx_recv.3.html">nng_ctx_recv(3)</a>,
<a href="nng_ctx_send.3.html">nng_ctx_send(3)</a>,
<a href="nng_ctx_setopt.3.html">nng_ctx_setopt(3)</a>,
<a href="nng_strerror.3.html">nng_strerror(3)</a>,
<a href="nng_ctx.5.html">nng_ctx(5)</a>,
<a href="nng_socket.5.html">nng_socket(5)</a>,
<a href="nng_rep.7.html">nng_rep(7)</a>,
<a href="nng_req.7.html">nng_req(7)</a>,
<a href="nng.7.html">nng(7)</a></p>
</div>
</div>
</div>
</div>
<link rel="stylesheet" href="./pygments-default.css">
</body>
</html>