plucky (3) iommapstream.3bobcat.gz

Provided by: libbobcat-dev_6.06.02-1_amd64 bug

NAME

       FBB::IOmmapStream - Input Stream using mmap(2) through FBB::MmapBuf

SYNOPSIS

       #include <bobcat/iommapstream>

       Linking option: -lbobcat

DESCRIPTION

       FBB::IOmmapStream  objects  are used for reading or writing 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.

NAMESPACE

       FBB
       All  constructors,  members,  operators  and manipulators, mentioned in this man-page, are defined in the
       namespace FBB.

INHERITS FROM

       std::iostream, privately from FBB::MmapBuf.

CONSTRUCTORS

       o      IOmmapStream():
              The default constructor merely constructs an empty IOmmapStream object. To change it to  a  usable
              object use move assignment;

       o      IOmmapStream(std::string  const  &fname,  char  const  *bufSize = 0, std::ios::openmode openMode =
              std::ios::out | std::ios::in, mode_t mode = 0644):
              The constructor initializes the IOmmapStream object for a file named fname.

       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  bfIOmmapStream)  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.

MEMBER FUNCTIONS

       All members of std::istream are available, as FBB::IOmmapStream inherits from that class.

       o      size_t bufSize() const:
              returns the used t(mmap) buffer size;

       o      size_t fileSize() const:
              returns the current size of the used file. The size is updated  to  a  larger  size  when  writing
              beyond the current file size. Once the IOmmapStream object ceases to exist the used file’s size is
              modified to the current fileSize value.

       o      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/iommapstream/demo.

FILES

       bobcat/iommapstream - defines the class interface

SEE ALSO

       bobcat(7), chmod(2), immapstream(3bobcat), mmap(2), mmapbuf(3bobcat), ommapstream(3bobcat), sysconf(3)

BUGS

       None Reported.

BOBCAT PROJECT FILES

       o      https://fbb-git.gitlab.io/bobcat/: gitlab project page;

       o      bobcat_6.06.02-x.dsc: detached signature;

       o      bobcat_6.06.02-x.tar.gz: source archive;

       o      bobcat_6.06.02-x_i386.changes: change log;

       o      libbobcat1_6.06.02-x_*.deb: debian package containing the libraries;

       o      libbobcat1-dev_6.06.02-x_*.deb: debian package containing the libraries, headers and manual pages;

BOBCAT

       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).

AUTHOR

       Frank B. Brokken (f.b.brokken@rug.nl).