FBB::ImmapStream(3bobcat)
std::istream using FBB::MmapBuf as streambuf
(libbobcat-dev_6.06.01)
2005-2024
NAME
FBB::ImmapStream - Input Stream using mmap(2) through FBB::MmapBuf
SYNOPSIS
#include <bobcat/immapstream>
Linking option: -lbobcat
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.
NAMESPACE
FBB
All constructors, members, operators and manipulators, mentioned in this
man-page, are defined in the namespace FBB.
INHERITS FROM
std::istream, privately from FBB::MmapBuf.
CONSTRUCTORS
ImmapStream():
The default constructor merely constructs an empty ImmapStream
object. To change it to a usable object use move assignment;
IOmmapStream(std::string const &fname, char const *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.
MEMBER FUNCTIONS
All members of std::istream are available, as FBB::ImmapStream
inherits from that class.
- size_t bufSize() const:
returns the used t(mmap) buffer size;
- size_t fileSize() const:
returns the size of the specified file.
- size_t pageSize() const:
returns the smallest page size used by t(mmap).
EXAMPLE
An example is provided in bobcat's source archive and gitlab repository at
bobcat/immapstream/demo.
FILES
bobcat/immapstream - defines the class interface
SEE ALSO
bobcat(7), iommapstream(3bobcat), ommapstream(3bobcat),
mmap(2), mmapbuf(3bobcat) sysconf(3)
BUGS
None Reported.
BOBCAT PROJECT FILES
- https://fbb-git.gitlab.io/bobcat/: gitlab project page;
- bobcat_6.06.01-x.dsc: detached signature;
- bobcat_6.06.01-x.tar.gz: source archive;
- bobcat_6.06.01-x_i386.changes: change log;
- libbobcat1_6.06.01-x_*.deb: debian package containing the
libraries;
- libbobcat1-dev_6.06.01-x_*.deb: debian package containing the
libraries, headers and manual pages;
BOBCAT
Bobcat is an acronym of `Brokken's Own Base Classes And Templates'.
COPYRIGHT
This is free software, distributed under the terms of the
GNU General Public License (GPL).
AUTHOR
Frank B. Brokken (f.b.brokken@rug.nl).