Annotation of researchv10dc/man/mana/pipebuf.3, revision 1.1.1.1

1.1       root        1: .  \"ident     "%W%"
                      2: .  \"Copyright (c) 1984 AT&T
                      3: .  \"All Rights Reserved
                      4: .  \"THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T
                      5: .  \"The copyright notice above does not evidence any
                      6: .  \"actual or intended publication of such source code.
                      7: .TH PIPEBUF 3I+ "C++ Stream Library" " "
                      8: .SH NAME
                      9: pipebuf \- streambuf specialized as circular queue
                     10: .SH SYNOPSIS
                     11: .nf
                     12: .ft B
                     13: .ta1i 2i
                     14: #include <iostream.h>
                     15: #include <pipestream.h>
                     16: 
                     17: class pipebuf :        streambuf {
                     18:                pipebuf();
                     19:        int     empty();
                     20:        int     full();
                     21:        streambuf*      setbuf(char* ptr, int len);
                     22: } ;
                     23: .ft R
                     24: .fi
                     25: .SH DESCRIPTION
                     26: A \f(CWpipebuf\fR
                     27: uses its reserve area to support a circular
                     28: queue of characters.
                     29: In terms of the abstract notion of buffer a \f(CWpipebuf\fR
                     30: is a potentially infinite sequence in which the put pointer
                     31: and get pointer move independently.
                     32: The put pointer is always at the end of the sequence, and
                     33: puts extend the sequence.
                     34: As long as the get pointer remains behind the put pointer, but
                     35: not too far behind, fetching and storing can continue indefinitely.
                     36: Seeks are not supported.
                     37: .PP
                     38: Assume
                     39: .br
                     40: \(em \fBpb\fR is a \f(CWpipebuf\fR.
                     41: .br
                     42: \(em \fBptr\fR is a \f(CWchar*\fR.
                     43: .br
                     44: \(em \fBi\fR and \fBlen\fR are an \f(CWint\fR.
                     45: .br
                     46: \(em \fBsb\fR is \f(CWstreambuf*\fR.
                     47: .PP
                     48: Constructor:
                     49: .TP
                     50: \fBpipebuf()\fR
                     51: Constructs an empty buffer.
                     52: .PP
                     53: Members:
                     54: .TP
                     55: \fBi=pb.empty()\fR
                     56: Returns non-zero if the get pointer is at the end of the sequence,
                     57: and attempts to get characters will therefore fail.
                     58: .TP
                     59: \fBi=pb.full()\fR
                     60: Returns non-zero if there is no more room for putting
                     61: characters.  In the current implementation, the capacity of
                     62: the buffer is one less than the size of the reserve area.
                     63: .TP
                     64: \fBsb=pb.setbuf(ptr,len)\fR
                     65: Establishes the \fBlen\fR bytes starting at \fBptr\fR
                     66: as the reserve area.  Normally it will return \fB&pb\fR.  But
                     67: it will return a null pointer if it fails.  Failure occurs
                     68: if \fBpb.empty()\fR is zero, or if \fBlen\fR is less than 2.
                     69: .SH CAVEATS
                     70: There ought to be a version with an unbounded capacity.
                     71: .SH SEE ALSO
                     72: streambuf(3C++)
                     73: pipestream(3C++)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.