FBB::MemoryBridge(3bobcat)

Memory Segments
(libbobcat-dev_6.12.01)

2005-2026

NAME

FBB::MemoryBridge - Memory Segments Data Structure

SYNOPSIS

#include <bobcat/memorybridge>
Linking option: -lbobcat

DESCRIPTION

The class FBB::MemoryBridge provides the interface to the memory segments used by Bobcat's Memory... classes. Bobcat's MemoryBridge class accesses or modifies those segments via FBB::MemoryAccess wrapper class objects. FBB::MemoryAccess objects are normally not directly defined by user programs but only by FBB::MemoryBridge objects, controlling all read and write operations to the shared memory blocks.

Although multiple programs executed in parallel may access the same shared memory FBB::MemoryBridge objects do not offer mutex facilities to prevent those programs from accessing information while it's being modified. Such mutex facilities could be made available using flock(2).

NAMESPACE

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

INHERITS FROM

-

CONSTRUCTORS

The move constructor and move-assignment operator are available, the copy constructor and copy-assignment operator are not available.

BUFSIZE

The bufSize parameter required by the second MemoryStream constructor and the open member (see below) specifies the default number nummber of shared memory memory blocks and their sizes. The size of the memory blocks is specified as k, M or G, indicating block sizes in kilo-, Mega- and GigaBytes. Before those letters the default number of blocks is specified. E.g., "100M". Internally the number of kiloBytes is converted to `pages', using the system's page size, which is commonly equal to 4 kB (so when specifying "5k" then the stream prepares for two shared data segments, each having a capacity of 4 kB. The number of MegaBytes is used as specified, and when specifying GB the data segments are .5 GB.

The number of shared data segments is aotomatically enlarged when the current capacity is exceeded, and the potentially available data segments are initially not allocated: they're allocated once information is written into their areas.

MEMBER FUNCTIONS

Most of the following members throw exceptions when called from a MemoryBridge object that was initialized by its default constructor.

EXAMPLE

See the memorystream(3bobcat) man page.

FILES

bobcat/memorybridge - defines the class interface

SEE ALSO

bobcat(7), chmod(1), flock(2), memoryaccess(3bobcat), memorybuf(3bobcat), memoryreadme(7bobcat), memorystream(3bobcat),

BUGS

None Reported.

BOBCAT PROJECT FILES

Debian Bobcat project files:

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