![]() |
VR-Forces 4.6.1 Class Documentation
|
Creates shared memory for debug drawer. More...
Classes | |
| struct | Header |
| class | ReadLock |
| class | ScopedFrame |
Public Types | |
| typedef DtDebugDrawerNameManager::MemoryType | MemoryType |
| typedef DtDebugMemoryBlockHeader | DtMemoryHeader |
Public Member Functions | |
| DtDebugDrawerSharedMemoryManager (unsigned long memorySize=30 *MB) | |
| virtual | ~DtDebugDrawerSharedMemoryManager () |
| Default destructor. | |
| virtual bool | init (MemoryType memoryType, bool clearMemory=false) |
| Initializes shared memory for access by another copy of this class in another program. | |
| virtual bool | init (std::string tag, bool clearMemory=false, MemoryType memoryType=DtDebugDrawerNameManager::DtDebugDrawerSharedMemoryVRFType) |
| Header | header () const |
| void | setHeader (const Header &) |
| long | getName () const |
| bool | enabled () const |
| void | setEnabled (bool val) |
| virtual bool | push (DtDebugDrawerGeometryMemory *shape) |
| Pushes an instance of DtDebugDrawerGeometryMemory onto shared memory. | |
Static Public Attributes | |
| static const unsigned long | KB = static_cast<unsigned long>(1) << 10 |
| static const unsigned long | MB = static_cast<unsigned long>(1) << 20 |
| static const unsigned long | GB = static_cast<unsigned long>(1) << 30 |
Protected Attributes | |
| unsigned long | myRequestedMaxSize |
| unsigned long | myCurrentSize |
| Current used size of shared memory (in bytes). | |
| char * | myCurrentMemPtr |
| Pointer to the current writable location in shared memory. | |
| char * | myMemoryPtr |
| Pointer to the start of shared memory. | |
| DtMemoryHeader * | myHeader |
| Pointer to the header in shared memory. | |
| LocalSharedMemoryPoolManager * | myManager |
| Shared memory wrapper class objects. | |
| DtSharedMemoryPoolClient * | myClient |
| DtDebugDrawerNameManager * | myNameManager |
| Connection to the name memory block where names are stored for the GUI. | |
| bool | myIsReader |
| long | myMemoryName |
| MemoryType | myMemoryType |
| boost::scoped_array< char > | myBuffer |
| size_t | myBufferSize |
Friends | |
| class | ScopedLock |
| class | ScopedFrame |
| virtual unsigned long | frameCount () const |
| Frame count allows the drawer of shapes to indicate that a complete frame has been completed and is ready for drawing. | |
| virtual unsigned long | numEntries () const |
| Must call this function before calling getNext(). | |
| virtual unsigned long | currentSize () const |
| Current used size of shared memory (in bytes). | |
| virtual const char * | getNext (const char *previousPtr, DtDebugDrawerGeometryMemory **shape) |
| Expects that pointToMemoryBlock() has been called. | |
| virtual std::vector < DtDebugDrawerNameManager::Slot > | getMemoryBlockNames () |
| Return the names of all the memory blocks of the configured memory type. | |
| virtual bool | pointToMemoryBlock (long name) |
| Switches this instance of shared memory to point to a different block of memory. | |
| void | readLock () const |
| void | readUnlock () const |
| void | startNewFrame (bool erase=true) |
| Notifies the shared memory block that it will be writing new data. | |
| void | advanceFrameCount (bool outputErrors=true) |
Creates shared memory for debug drawer.
| typedef DtDebugMemoryBlockHeader DtDebugDrawerSharedMemoryManager::DtMemoryHeader |
| DtDebugDrawerSharedMemoryManager::DtDebugDrawerSharedMemoryManager | ( | unsigned long | memorySize = 30 *MB | ) |
| memorySize | Use default. Agreed upon size of the memory block you wish to allocate (in bytes). The value defaults to 3*10485670 bytes (30MB). |
|
virtual |
Default destructor.
Shared memory will be destroyed when the last instance of this class is destroyed of a given name from init().
|
virtual |
Initializes shared memory for access by another copy of this class in another program.
The name and size must match in all instances for access to the same shared memory space. Default parameters are generally enough. This function, if arg is true, will ask the name manager for a name and set it's name property to that. This will be how this block of memory is referenced.
| clearMemory | True if you are the writer to memory, false otherwise. |
|
virtual |
| Header DtDebugDrawerSharedMemoryManager::header | ( | ) | const |
| void DtDebugDrawerSharedMemoryManager::setHeader | ( | const Header & | ) |
| long DtDebugDrawerSharedMemoryManager::getName | ( | ) | const |
| bool DtDebugDrawerSharedMemoryManager::enabled | ( | ) | const |
| void DtDebugDrawerSharedMemoryManager::setEnabled | ( | bool | val | ) |
|
virtual |
Pushes an instance of DtDebugDrawerGeometryMemory onto shared memory.
If memory is full, it will simply not push any more data on. If init() has not been invoked, it will not push any data to shared memory.If the shape pointer is null it will not push anything. If the shape pointer is not a valid shape defined in DtDebugDrawerGeometry it will not push the data to memory. If an instance of this class has not pushed any data via this function, this function should not be called by this instance. Only one instance should be calling this function.
| shape | Pointer to a DtDebugDrawerGeometryMemory to put in shared memory. Will always append to the end of previous push() call. |
Frame count allows the drawer of shapes to indicate that a complete frame has been completed and is ready for drawing.
The reader of the data can compare the frame count to the last frame that they read, and know whether anything has changed.
Current used size of shared memory (in bytes).
Only the instance performing push() will have the current used size.
|
virtual |
Expects that pointToMemoryBlock() has been called.
Expects that numEntries() is called afterwards so as to not go beyond the shared memory space or even to empty shared memory. Expects a null pointer for the previousPtr for the first entry inserted through push(). Will delete the shape pointer reference and replace it with the next shape added in subsequent push() calls. It is up to the caller to delete the the final shape once the end of numEntries() has been reached and no further calls to this function will be made. Any number of instances of this class may retrieve the memory though this function.
| previousPtr | Pass in a null pointer for the first entry in shared memory. Subsequent calls expects the pointer it returned as this parameter previously. |
| shape | Pointer to a pointer to an instance of DtDebugDrawerGeometryMemory or null. The pointer returned will point to the pointer to the new DtDebugDrawerGeometryMemory retrieved from shared memory that was previously added via push(). |
|
virtual |
Return the names of all the memory blocks of the configured memory type.
Switches this instance of shared memory to point to a different block of memory.
Each block is keyed by name (which is unique) and you can specify which block of memory you want to point to using this function. Generally, you want to get the block name from the getMemoryBlockName() function. If you happen to know the name of the memory block, then it can also be manually entered.
| name | The name of the memory block you wish to point to. |
|
protected |
|
protected |
|
protected |
Notifies the shared memory block that it will be writing new data.
numEntries() will return 0 after this function is called.
|
protected |
|
friend |
|
friend |
|
static |
|
static |
|
static |
Current used size of shared memory (in bytes).
Only the instance performing push() will have the current used size and should not be modified in that instance.
|
protected |
Pointer to the current writable location in shared memory.
Only the instance performing push() will have this pointer set.
|
protected |
Pointer to the start of shared memory.
|
protected |
Pointer to the header in shared memory.
|
protected |
Shared memory wrapper class objects.
|
protected |
|
protected |
Connection to the name memory block where names are stored for the GUI.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |