FBB::Sharedpos(3bobcat)
Shared Memory Offsets
(libbobcat-dev_6.06.02)
2005-2024
NAME
FBB::Sharedpos - Shared Memory offset controller
SYNOPSIS
    #include <bobcat/sharedpos>
    Linking option: -lbobcat
DESCRIPTION
The class SharedPos is a support class for Bobcat's shared memory
handling classes. It controls the shared memory read/write ofset and ensures
that shared memory operations never exceed the shared memory's maximum offset.
The class SharedPos has several public members, but they are primarily
useful for other Shared* classes offered by Bobcat. There is probably
little use for a stand-alone SharedPos object.
In the descriptions of the class's member functions offset refers to
the read/write offset within a FBB::SharedSegment(3bobcat) object for
which SharedPos performs the offset-administration.
NAMESPACE
    FBB
    All constructors, members, operators and manipulators, mentioned in this
man-page, are defined in the namespace FBB.
INHERITS FROM
    -
TYPEDEFS AND ENUMS
CONSTRUCTORS
Default, copy and move constructors as well as the copy and move
    assignment operators are available. The default constructor
    does not yet monitor the offset of an FBB::SharedSegment
    object. The member reset is used to start monitoring offsets.
OVERLOADED OPERATORS
    
    -  void operator++():
 The offset is incremented. If this member is called when the offset is
        equal to the shared memory's maximum offset an FBB::Exception is
        thrown.
 
-  void operator+=(size_t len):
 The offset is incremented by len. If offset + len exceeds the
        shared memory's maximum offset then the offset is set to the maximum
        offset and an FBB::Exception is thrown.
 
-  std::ostream &operator<<(std::ostream &out, SharedPos const &pos):
 Inserts information about the SharedPos object into out.
MEMBER FUNCTIONS
Note: the behavior of member functions returning values which refer to
information of an FBB::SharedSegment is undefined until the member
reset has been called.
    -  bool atMaxOffset() const:
 Returns true if offset equals the maximum offset that can be used
        for the configured FBB::SharedSegment object.
 
-  size_t blockIdx() const:
 The index of the configured FBB::SharedSegment object's shared
        segment data block to which offset refers is returned.
 
-  size_t blockOffset() const:
 The offset within the shared segment data block matching the member
        offset's return value is returned.
 
-  bool eof() const:
 Returns true if offset exceeds the maximum offset of any character
        ever written to the shared memory to which the SharedPos object
        interfaces. If eof returns true information may still be
        written to the shared memory: writing is possible until the
        maximum shared memory segment offset has been reached.
 
-  std::streamsize eos() const:
 The offset just beyond the maximum offset for the current shared
        segment data block is returned. E.g., if blockIdx returns 5, and
        the size of the shared segment data blocks equals 2000, then eos
        returns 12000 (the first offset of segment 6).
 
-  std::streamsize maxOffset() const:
 The maximum possible offset that can be used for the currently
        monitored FBB::SharedSegment is returned.
 
-  std::streamsize offset() const:
 The offset within the currently monitored shared memory segment is
        returned.
 
-  void reset(SharedSegment *sharedData):
 The SharedPos object is reset to monitor the offset of the
        FBB::SharedSegment object whose address is passed as argument to
        reset. The address must point to a sharedsegment(3bobcat)
        object that must exist until the end of the SharedPos
        object's lifetime or until its next reset call. Immediately after
        calling reset offset is reset to 0.
 
-  std::streamsize showmanyc() const:
 The number of characters that can be read from the current shared
        segment data block is returned.  This member interrogates the number
        of readable characters in the shared memory segment. This number may
        change while this member is being executed. In order to receive a
        stable return value, calling functions should have obtained a lock on
        the FBB::SharedSegment data before calling this member. See also
        the sharedsegment(3bobcat) man-page.
 
-  std::ios::pos_type seek(std::ios::off_type offset,
                                std::ios::seekdir origin = std::ios::beg):
 The monitored offset is changed to this member's offset argument,
        relative to origin. Seeking beyond eof is OK. However, -1 is
        returned when seeking beyond maxOffset or seeking before the
        shared segment's offset 0.
EXAMPLE
    See the sharedstream(3bobcat) man page.
FILES
    bobcat/sharedpos - defines the class interface
SEE ALSO
    bobcat(7),
        isharedstream(3bobcat),
        osharedstream(3bobcat),
        sharedblock(3bobcat),
        sharedcondition(3bobcat),
        sharedmemory(3bobcat),
        sharedmutex(3bobcat),
        sharedreadme(7bobcat),
        sharedsegment(3bobcat),
        sharedstream(3bobcat),
        sharedbuf(3bobcat)
BUGS
    None Reported.
BOBCAT PROJECT FILES
    -  https://fbb-git.gitlab.io/bobcat/: gitlab project page;
    
-  bobcat_6.06.02-x.dsc: detached signature;
    
-  bobcat_6.06.02-x.tar.gz: source archive;
    
-  bobcat_6.06.02-x_i386.changes: change log;
    
-  libbobcat1_6.06.02-x_*.deb: debian package containing the
            libraries;
    
-  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'.
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).