VMS Help CXXL, iostream_package, streambuf *Conan The Librarian |
This class supports buffers into which you can insert (put) or extract (get) characters. It contains only the basic members for manipulating the characters. To implement the functions of this class, use a class derived from the streambuf class. The protected members of this class present an interface to the derived classes organized around the get, put, and reserve areas (arrays of bytes), which are managed cooperatively by the base and derived classes. The reserve area is a sequence of characters with an associated get pointer, put pointer, or both. This area serves mainly as a resource in which to allocate space for the put and get areas. As characters enter and exit the reserve area, the put and get areas change but the reserve area remains fixed. A collection of character pointer values defines the three areas. These pointers infer a boundary condition; therefore, it may be helpful to consider such pointers as pointing just before the byte but they actually point right at it. Classes derived from streambuf vary in their handling of the get and put pointers. The simplest are unidirectional buffers that permit only get and put operations. Such classes serve as producers and consumers of characters. Queue-like buffers (such as strstream and strstreambuf) have a put and a get pointer that move independently of each other. In such buffers, stored characters are queued until later fetched. File-like buffers (such as filebuf) allow both get and put operations but have their get and put pointers linked together, so that when one pointer moves so does the other. To manage the collections of characters in the get and put areas, you can call virtual functions. Services supplied by virtual functions include fetching more characters from an ultimate producer and flushing a collection of characters to an ultimate consumer. Header: #include <iostream.hxx>
|