FBB::OmmapStream(3bobcat) | std::istream using FBB::MmapBuf as streambuf | FBB::OmmapStream(3bobcat) |
FBB::OmmapStream - Input Stream using mmap(2) through FBB::MmapBuf
#include <bobcat/ommapstream>
Linking option: -lbobcat
FBB::OmmapStream objects are used to write information to files which are made available in the virtual address space of the calling process. Using the virtual address space is handled by the class’s privately inherited FBB::MmapBuf (std::streambuf class.
By mapping files in the process’s virtual address space the time required for processing such files is usually dramatically reduced.
An std::exception is thrown, and an error message is written to cerr if the FBB::MmapBuf base class cannot determine the size of the specified file, or when the (un)mapping cannot be performed.
FBB
All constructors, members, operators and manipulators, mentioned in this
man-page, are defined in the namespace FBB.
std::ostream, privately from FBB::MmapBuf.
The openMode parameter specifies how fname is used. The standard ios::in, ios::out, ios::trunc, ios::app, and ios::ate modes are supported.
By default bfOmmapStream) uses a mapping buffer size of 10 times the standard page size, (cf. sysconf(3), and the member pageSize below). The size of the mapping buffer can also be specified using the bufSize parameter. To specify it use a value followed by K, M, or G, representing, resp. 1024, 1024 * 1024, and 1024 * 1024 * 1024 bytes. The final buffer size is at least equal to the standard page size. When a larger value is specified the used buffer size is set to specified / pageSize * pageSize.
The mode parameter specifies the user/group/other access mode which is used when the file is created by MmapBuf. Its default value specifies read/write access by the user, and read access by others. )
The move constructor and move assignment operator are available.
The copy constructor and copy assignment operator are not available.
All members of std::istream are available, as FBB::OmmapStream inherits from that class.
An example is provided in bobcat’s source archive and gitlab repository at bobcat/ommapstream/demo.
bobcat/ommapstream - defines the class interface
bobcat(7), chmod(2), immapstream(3bobcat), iommapstream(3bobcat), mmap(2), mmapbuf(3bobcat) sysconf(3)
None Reported.
Bobcat is an acronym of `Brokken’s Own Base Classes And Templates’.
This is free software, distributed under the terms of the GNU General Public License (GPL).
Frank B. Brokken (f.b.brokken@rug.nl).
2005-2024 | libbobcat-dev_6.06.02 |