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
|
---
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_pipe(5)</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_pipe(5) 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>
<ul class="sectlevel2">
<li><a href="#NNG_PIPE_INITIALIZER">Initialization</a></li>
</ul>
</li>
<li><a href="#_see_also">SEE ALSO</a></li>
</ul>
</div>
<h2 id="_name">NAME</h2>
<div class="sectionbody">
<p>nng_pipe - communications pipe</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"><nng/nng.h></span><span class="tok-cp"></span>
<span class="tok-k">typedef</span> <span class="tok-k">struct</span> <span class="tok-n">nng_pipe_s</span> <span class="tok-n">nng_pipe</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>
An <code>nng_pipe</code> 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.</p>
</div>
<div class="admonitionblock important">
<table>
<tr>
<td class="icon">
<i class="fa icon-important" title="Important"></i>
</td>
<td class="content">
The <code>nng_pipe</code> structure is always passed by value (both
for input parameters and return values), and should be treated opaquely.
Passing structures this way gives the compiler a chance to perform
accurate type checks in functions passing values of this type.
</td>
</tr>
</table>
</div>
<div class="admonitionblock tip">
<table>
<tr>
<td class="icon">
<i class="fa icon-tip" title="Tip"></i>
</td>
<td class="content">
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.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>Pipe objects are created by dialers (<a href="nng_dialer.5.html"><code>nng_dialer</code></a> objects)
and listeners (<a href="nng_listener.5.html"><code>nng_listener</code></a> objects), which can be
thought of as “owning” the pipe.</p>
</div>
<div class="paragraph">
<p>Pipe objects may be destroyed by the
<a href="nng_pipe_close.3.html"><code>nng_pipe_close()</code></a> function.
They are also closed when their “owning” dialer or listener is closed,
or when the remote peer closes the underlying connection.</p>
</div>
<div class="sect2">
<h3 id="NNG_PIPE_INITIALIZER">Initialization</h3>
<div class="paragraph">
<p>A pipe may be initialized using the macro <code>NNG_PIPE_INITIALIZER</code>
before it is opened, to prevent confusion with valid open pipes.</p>
</div>
<div class="paragraph">
<p>For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-n">nng_pipe</span> <span class="tok-n">p</span> <span class="tok-o">=</span> <span class="tok-n">NNG_PIPE_INITIALIZER</span><span class="tok-p">;</span></code></pre>
</div>
</div>
</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_msg_get_pipe.3.html">nng_msg_get_pipe(3)</a>,
<a href="nng_pipe_close.3.html">nng_pipe_close(3)</a>,
<a href="nng_pipe_getopt.3.html">nng_pipe_getopt(3)</a>,
<a href="nng_pipe_dialer.3.html">nng_pipe_dialer(3)</a>,
<a href="nng_pipe_id.3.html">nng_pipe_id(3)</a>,
<a href="nng_pipe_listener.3.html">nng_pipe_listener(3)</a>,
<a href="nng_pipe_socket.3.html">nng_pipe_socket(3)</a>,
<a href="nng_dialer.5.html">nng_dialer(5)</a>,
<a href="nng_listener.5.html">nng_listener(5)</a>,
<a href="nng_options.5.html">nng_options(5)</a>,
<a href="nng.7.html">nng(7)</a></p>
</div>
</div>
</div>
</div>
<link rel="stylesheet" href="./pygments-default.css">
</body>
</html>
|