Creates shared memory for debug drawer.
More...
Detailed Description
Creates shared memory for debug drawer.
Member Typedef Documentation
Constructor & Destructor Documentation
| DtDebugDrawerSharedMemoryManager::DtDebugDrawerSharedMemoryManager |
( |
| ) |
|
| virtual DtDebugDrawerSharedMemoryManager::~DtDebugDrawerSharedMemoryManager |
( |
| ) |
|
|
virtual |
Default destructor.
Shared memory will be destroyed when the last instance of this class is destroyed of a given name from init().
Member Function Documentation
| virtual void DtDebugDrawerSharedMemoryManager::readLock |
( |
| ) |
|
|
virtual |
| virtual void DtDebugDrawerSharedMemoryManager::readUnlock |
( |
| ) |
|
|
virtual |
| virtual void DtDebugDrawerSharedMemoryManager::init |
( |
int |
memoryType, |
|
|
bool |
clearMemory = false, |
|
|
unsigned long |
memorySize = 3 *10485670 |
|
) |
| |
|
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.
- Parameters
-
| clearMemory | True if you are the writer to memory, false otherwise. |
| memorySize | Use default. Agreed upon size of the memory block you wish to allocate (in bytes). The value defaults to 10485670 bytes (10MB). |
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.
- Parameters
-
| virtual void DtDebugDrawerSharedMemoryManager::advanceFrameCount |
( |
| ) |
|
|
virtual |
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.
| virtual unsigned long DtDebugDrawerSharedMemoryManager::frameCount |
( |
| ) |
const |
|
virtual |
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.
| virtual unsigned int DtDebugDrawerSharedMemoryManager::numEmtries |
( |
| ) |
|
|
virtual |
Must call this function before calling getNext().
This function's return value is based on the number of times push() is called.
- Returns
- Returns the number of times getNext() can be called.
| virtual unsigned long DtDebugDrawerSharedMemoryManager::currentSize |
( |
| ) |
|
|
virtual |
Current used size of shared memory (in bytes).
Only the instance performing push() will have the current used size.
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.
- Parameters
-
| 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(). |
- Returns
- Returns a pointer to the next block of memory after the read or 0 depending on how it fails.
| virtual const std::vector<int> DtDebugDrawerSharedMemoryManager::getMemoryBlockIndexList |
( |
| ) |
|
|
virtual |
Use this function to get the number of names, this automatically filters by type.
- Returns
- The number of names in the master name list of a specific type
| virtual DtString DtDebugDrawerSharedMemoryManager::getMemoryBlockName |
( |
int |
index | ) |
|
|
virtual |
Using the number of names in the list, you can get any name in the list by index.
- Parameters
-
| virtual bool DtDebugDrawerSharedMemoryManager::pointToMemoryBlock |
( |
DtString |
name | ) |
|
|
virtual |
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.
- Returns
- If the memory block was openned succesfully.
- Parameters
-
| name | The name of the memory block you wish to point to. |
| virtual void DtDebugDrawerSharedMemoryManager::startNewFrame |
( |
| ) |
|
|
virtual |
Notifies the shared memory block that it will be writing new data.
numEntries() will return 0 after this function is called.
Member Data Documentation
| const int DtDebugDrawerSharedMemoryManager::DtDebugDrawerSharedMemoryNoType = 0 |
|
static |
| const int DtDebugDrawerSharedMemoryManager::DtDebugDrawerSharedMemoryAllType = 1 |
|
static |
| const int DtDebugDrawerSharedMemoryManager::DtDebugDrawerSharedMemoryVRFType = 2 |
|
static |
| const int DtDebugDrawerSharedMemoryManager::DtDebugDrawerSharedMemoryBHaveType = 3 |
|
static |
| unsigned long DtDebugDrawerSharedMemoryManager::myMaxSize |
|
protected |
Max size of shared memory (in bytes).
Set in init() as a parameter. The default is 10485670 bytes (10MB).
| unsigned long DtDebugDrawerSharedMemoryManager::myCurrentSize |
|
protected |
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.
| char* DtDebugDrawerSharedMemoryManager::myCurrentMemPtr |
|
protected |
Pointer to the current writable location in shared memory.
Only the instance performing push() will have this pointer set.
| char* DtDebugDrawerSharedMemoryManager::myMemoryPtr |
|
protected |
Pointer to the start of shared memory.
Pointer to the header in shared memory.
| DtSharedMemoryPoolManager* DtDebugDrawerSharedMemoryManager::myManager |
|
protected |
Shared memory wrapper class objects.
| DtSharedMemoryPoolClient* DtDebugDrawerSharedMemoryManager::myClient |
|
protected |
Connection to the name memory block where names are stored for the GUI.
| bool DtDebugDrawerSharedMemoryManager::myIsReader |
|
protected |
| DtString DtDebugDrawerSharedMemoryManager::myMemoryName |
|
protected |
| int DtDebugDrawerSharedMemoryManager::myMemoryType |
|
protected |
The documentation for this class was generated from the following file: