This file is indexed.

/usr/share/doc/libbobcat4-dev/man/multistreambuf.3.html is in libbobcat-dev 4.08.02-2build1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
<!DOCTYPE html><html><head>
<meta charset="UTF-8">
<title>FBB::MultiStreambuf(3bobcat)</title>
<style type="text/css">
    figure {text-align: center;}
    img {vertical-align: center;}
    .XXfc {margin-left:auto;margin-right:auto;}
    .XXtc {text-align: center;}
    .XXtl {text-align: left;}
    .XXtr {text-align: right;}
    .XXvt {vertical-align: top;}
    .XXvb {vertical-align: bottom;}
</style>
<link rev="made" href="mailto:Frank B. Brokken: f.b.brokken@rug.nl">
</head>
<body text="#27408B" bgcolor="#FFFAF0">
<hr/>
<h1 id="title">FBB::MultiStreambuf(3bobcat)</h1>
<h2 id="author">Writing multiple streams<br/>(libbobcat-dev_4.08.02-x.tar.gz)</h2>
<h2 id="date">2005-2017</h2>


<p>
<h2 >NAME</h2>FBB::MultiStreambuf - Selectively writes multiple streams
<p>
<h2 >SYNOPSIS</h2>
    <strong >#include &lt;bobcat/multistreambuf&gt;</strong><br/>
    Linking option: <em >-lbobcat</em> 
<p>
<h2 >DESCRIPTION</h2>
    The <strong >FBB::MultiStreambuf</strong> class is a specialization of
<em >std::streambuf</em>. It can be used to write selectively to multiple
<em >std::ostreams</em>. Each <em >std::ostream</em> that is associated with a
<strong >MultiStreambuf</strong> is given a mode-tag indicating whether the stream
should always be used when information is inserted into the
<strong >MultiStreambuf</strong>, just once, or not at all. Each of the stream's 
mode-tags may be set to any of the defined tag-values. 
<p>
When the address of a <strong >MultiStreambuf</strong> is used to initialize a
<em >std::ostream</em> the constructed <em >std::ostream</em> becomes an
output-multiplexer: by inserting information into the <em >std::ostream</em> object,
all <em >std::ostream</em> objects added to its <strong >MultiStreambuf</strong> buffer which
have an active mode receive that information.
<p>
An <strong >MultiStreambuf</strong> object should be outlived by all active streams
that are associated with it.
<p>
<strong >MultiStreambuf</strong> objects refer to <em >std::ostreams</em> which are passed to it,
and not to their <em >std::streambufs</em>. So it is possible to change these
<em >std::ostream's std::streambufs</em> without reinstalling the <em >std::ostreams</em>
themselves. 
<p>
No assumptions should be made about the order in which the <em >std::ostream</em>
objects that are associated with the <strong >MultiStreambuf</strong> objects are
visited when information is inserted.
<p>
<h2 >NAMESPACE</h2>
    <strong >FBB</strong><br/>
    All constructors, members, operators and manipulators, mentioned in this
man-page, are defined in the namespace <strong >FBB</strong>.
<p>
<h2 >INHERITS FROM</h2>
        <em >std::streambuf</em>
<p>
<h2 >ENUMERATION</h2>
    In the <strong >Mode</strong> enumeration the following values are defined:
    <ul>
    <li> <strong >OFF</strong>:<br/>
        A <em >std::ostream</em> having this mode will not be used when information
is inserted into a <strong >MultiStreambuf</strong>
    <li> <strong >ON</strong>:<br/>
        A <em >std::ostream</em> having this mode will be used when information
is inserted into a <strong >MultiStreambuf</strong>
    <li> <strong >ONCE</strong>:<br/>
        A <em >std::ostream</em> having this mode will be used once, until the next
flushing operation, when information is inserted into an
<strong >MultiStreambuf</strong>
    <li> <strong >RESET</strong>:<br/>
        A <em >std::ostream</em> having this mode will not be used when information
is inserted into a <strong >MultiStreambuf</strong>. At a flush operation all <strong >ONCE</strong>
modes will be set to <strong >RESET</strong>
    <li> <strong >ALL</strong>:<br/>
        This mode is used in combination with the member <em >remove</em> to remove 
all <em >std::ostream</em> elements matching a specified <em >std::ostream</em> argument.
    </ul>
<p>
<h2 >TYPES</h2>
    The following subtypes are defined in the class <strong >FBB:MultiStreambuf</strong>:
    <ul>
    <li> <strong >iterator</strong>:<br/>
        This is a synonym of <em >std::vector&lt;stream&gt;::iterator</em>
    <li> <strong >const_iterator</strong>:<br/>
        This is a synonym of <em >std::vector&lt;stream&gt;::const_iterator</em>
    </ul>
<p>
<h2 >NESTED CLASS</h2>
    The class <strong >MultiStreambuf::stream</strong> is defined as a nested class of
<strong >MultiStreambuf</strong>. It offers the following constructor and public
members: 
    <ul>
    <li> <strong >stream(std::ostream &amp;os, Mode mode = ON)</strong>:<br/>
        The constructor stores a <em >std::ostream</em> object, and associates a
<strong >Mode</strong> value with it.
    <li> <strong >void setMode(Mode mode)</strong>:<br/>
        This member is used to redefine the <strong >stream</strong>'s  <strong >Mode</strong> value.
    <li> <strong >void mode() const</strong>:<br/>
        This member returns the  <strong >stream</strong>'s  <strong >Mode</strong> value.
    <li> <strong >operator std::ostream &amp;()</strong>:<br/>
        This member returns the  <strong >stream</strong>'s  <em >std::ostream</em>.
    </ul>    
<p>
<h2 >CONSTRUCTORS</h2>
    <ul>
    <li> <strong >MultiStreambuf()</strong>:<br/>
        The default constructor creates a <strong >MultiStreambuf</strong> object which
contains no associated <em >std::ostream</em> objects.
    <li> <strong >MultiStreambuf(std::ostream &amp;os, Mode mode = ON)</strong>:<br/>
        This constructor creates a <strong >MultiStreambuf</strong> object which
is immediately associated with the <em >std::ostream</em> specified as its first
argument. 
    <li> <strong >MultiStreambuf(std::vector&lt;MultiStreambuf::stream&gt; const &amp;osvector)</strong>:<br/>
        This constructor creates a <strong >MultiStreambuf</strong> object which is
immediately associated with all <em >std::ostream</em> objects that are stored in
the <strong >MultiStreambuf::stream</strong> elements of the specified vector.
    </ul>
    The copy constructor is available.
<p>
<h2 >MEMBER FUNCTIONS</h2>
     All members of <em >std::ostringstream</em> and <em >std::exception</em> are
available, as <strong >MultiStreambuf</strong> inherits from these classes.
    <ul>
    <li> <strong >iterator begin()</strong>:<br/>
        This member returns an iterator to the first <strong >stream</strong> element that
is stored in a <strong >MultiStreambuf</strong> object.
    <li> <strong >const_iterator begin()</strong>:<br/>
        This member returns an iterator to the first (unmodifiable) <strong >stream</strong>
element that is stored in a <strong >MultiStreambuf</strong> object.
    <li> <strong >iterator end()</strong>:<br/>
        This member returns an iterator pointing beyond the last <strong >stream</strong>
element that is stored in a <strong >MultiStreambuf</strong> object.
    <li> <strong >const_iterator end()</strong>:<br/>
        This member returns an iterator pointing beyond the last
(unmodifiable) <strong >stream</strong> element that is stored in a <strong >MultiStreambuf</strong>
object.
    <li> <strong >void insert(std::ostream &amp;os, Mode mode = ON)</strong>:<br/>
        This member adds the specified <em >std::ostream</em> using the specified
<strong >Mode</strong> to the current set of <strong >stream</strong> objects. Note that if called
multiple times for identical <em >std::ostreams</em> these objects are inserted
multiple times as well.
    <li> <strong >void insert(std::vector&lt;stream&gt; const &amp;os)</strong>:<br/>
        This member adds all <strong >stream</strong> objects stored in the <strong >os</strong> vector to
the current set of <strong >stream</strong> objects.
    <li> <strong >bool remove(std::ostream &amp;os, Mode mode = ONCE)</strong>:<br/>
        If <em >os</em> is stored in the <strong >MultiStreambuf</strong> it is removed, and
<em >true</em> is returned. If mode <em >ALL</em> is specified all <em >os</em> objects that
were stored in the <strong >MultiStreambuf</strong> object are removed (and <em >true</em> is
returned). If the <em >os</em> object was not stored <em >false</em> is returned. To
determine whether <em >os</em> has been stored in the <strong >MultiStreambuf</strong> object its
address is compared to the addresses of the <em >std::ostream</em> objects that are
stored inside the <strong >MultiStreambuf</strong> object: the object(s) having addresses
<em >&amp;os</em> is (are) removed.
    <li> <strong >void void setOnce()</strong>:<br/>
        This member will reset all the <em >RESET</em> <strong >Mode</strong> values of the stored
<strong >stream</strong> objects to <em >ONCE</em>.
    <li> <strong >size_t size() const</strong>:<br/>
        The number of streams currently serviced by the
<strong >MultiStreambuf</strong> object is returned.
    </ul>
<p>
<h2 >PROTECTED MEMBER FUNCTION</h2>
<p>
The member listed in this section implements the tasks of the comparably
named virtual function in the class's private interface. This separates the
redefinable interface from the user-interface. The class <strong >MultiStreamBuf</strong>
can, in accordance with Liskov's Substitution Principle, be used as a
<em >std:streambuf</em>; but it also offers a facility for classes deriving from
<strong >MultiStreamBuf</strong>. This facility is listed here.
    <ul>
    <li> <strong >int pSync()</strong>:<br/>
        The contents of the <strong >MultiStreamBuf</strong>'s internal buffer is written to
each of the <em >std::ostream</em> objects to which the <strong >MultiStreamBuf</strong> object
has access.
    </ul>
<p>
<h2 >EXAMPLE</h2>
    <pre>

#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;bobcat/multistreambuf&gt;

using namespace std;
using namespace FBB;

int main()
{
    MultiStreambuf  msb(cout);
    ostream         os(&amp;msb);
    ofstream        out("out");

    msb.insert(out, MultiStreambuf::ONCE);

    os &lt;&lt; "This is on cout and out" &lt;&lt; endl;
    os &lt;&lt; "This is on cout only" &lt;&lt; endl;

    msb.setOnce();
    os &lt;&lt; "This is on cout and out" &lt;&lt; endl;
    os &lt;&lt; "This is on cout only" &lt;&lt; endl;

    return 0;
}
    
</pre>

<p>
<h2 >FILES</h2>
    <em >bobcat/multistreambuf</em> - defines the class interface
<p>
<h2 >SEE ALSO</h2>
    <strong >bobcat</strong>(7)
<p>
<h2 >BUGS</h2>
    None Reported.
<p>

<h2 >DISTRIBUTION FILES</h2>
    <ul>
    <li> <em >bobcat_4.08.02-x.dsc</em>: detached signature;
    <li> <em >bobcat_4.08.02-x.tar.gz</em>: source archive;
    <li> <em >bobcat_4.08.02-x_i386.changes</em>: change log;
    <li> <em >libbobcat1_4.08.02-x_*.deb</em>: debian package holding the
            libraries;
    <li> <em >libbobcat1-dev_4.08.02-x_*.deb</em>: debian package holding the
            libraries, headers and manual pages;
    <li> <em >http://sourceforge.net/projects/bobcat</em>: public archive location;
    </ul>
<p>
<h2 >BOBCAT</h2>
    Bobcat is an acronym of `Brokken's Own Base Classes And Templates'.
<p>
<h2 >COPYRIGHT</h2>
    This is free software, distributed under the terms of the 
    GNU General Public License (GPL).
<p>
<h2 >AUTHOR</h2>
    Frank B. Brokken (<strong >f.b.brokken@rug.nl</strong>).
<p>
</body>
</html>