FBB::ImmapStream - Input Stream using mmap(2) through FBB::MmapBuf
Contents
Bobcat
Bobcat is an acronym of `Brokken’s Own Base Classes And Templates’.
Bobcat Project Files
o https://fbb-git.gitlab.io/bobcat/: gitlab project page;
Debian Bobcat project files:
o libbobcat6: debian package containing the shared library, changelog and copyright note;
o libbobcat-dev: debian package containing the static library, headers, manual pages, and developer
info;
Bugs
None Reported.
Constructors
o ImmapStream():
The default constructor merely constructs an empty ImmapStream object. To change it to a usable
object use move assignment;
o IOmmapStream(std::stringconst&fname,charconst*bufSize=0):
The constructor initializes the ImmapStream object for a file named fname.
By default bfImmapStream) 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 move constructor and move assignment operator are available.
The copy constructor and copy assignment operator are not available.
Copyright
This is free software, distributed under the terms of the GNU General Public License (GPL).
Description
FBB::ImmapStream objects are used to extract information from 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.
Example
An example is provided in bobcat’s source archive and gitlab repository at bobcat/immapstream/demo.
Files
bobcat/immapstream - defines the class interface
Inherits From
std::istream, privately from FBB::MmapBuf.
Member Functions
All members of std::istream are available, as FBB::ImmapStream inherits from that class.
o size_tbufSize()const:
returns the used t(mmap) buffer size;
o size_tfileSize()const:
returns the size of the specified file.
o size_tpageSize()const:
returns the smallest page size used by t(mmap).
Name
FBB::ImmapStream - Input Stream using mmap(2) through FBB::MmapBuf
Namespace
FBB
All constructors, members, operators and manipulators, mentioned in this man-page, are defined in the
namespace FBB.
See Also
bobcat(7), iommapstream(3bobcat), ommapstream(3bobcat), mmap(2), mmapbuf(3bobcat) sysconf(3)
Synopsis
#include<bobcat/immapstream>
Linking option: -lbobcat