GemaCoreLib
The GeMA Core library
Public Member Functions | Private Attributes | List of all members
GmStateDumpArmaDataItem< T > Class Template Reference

Class responsible for storing either a GmVector / GmMatrix object. More...

#include <gmStateDumpItem.h>

Inheritance diagram for GmStateDumpArmaDataItem< T >:
Inheritance graph
[legend]
Collaboration diagram for GmStateDumpArmaDataItem< T >:
Collaboration graph
[legend]

Public Member Functions

 GmStateDumpArmaDataItem (int id, T *data, const GmLogCategory &logger, bool fixed, QString itemNamePrefix)
 
virtual int itemSize () const
 The item size needed for calculating sizes and offsets in bytes for partial updates. Includes the dimension.
 
virtual bool canCompress () const
 Should this item be compressed if the MemoryDump object is configured with compression?
 
virtual bool partialOp () const
 Does this item supports partial load / save operations?
 
virtual bool fixedSize () const
 Is this dump item a fixed size item that probably won't grow in the future? If so, extra space will NOT be reserved on file for growing even if growing is configured on the memory dump object.
 
virtual qint64 size () const
 Returns the current item size (in bytes)
 
virtual bool fillDataHeader (char *header)
 Function called together with getDataBuffer() to provide a "header information" with fixed size (equal to GM_MEMORY_DUMP_ITEM_DATA_SIZE) that is also saved for the dump item. This information is then made available when setDataBuffer() is called. More...
 
virtual void getDataBuffer (GmMemoryBufferList &bufferList, qint64 size=0, qint64 offset=0)
 Fills the provided bufferList object with the set of buffers that together define the dump item data. More...
 
virtual bool setDataBuffer (GmMemoryBufferList &bufferList, const char *header, qint64 size, qint64 offset=0)
 Fills the provided bufferList object with the set of buffers that should be used to update the dump item data. More...
 
- Public Member Functions inherited from GmStateDumpBaseDataItem
 GmStateDumpBaseDataItem (int id, QString prefix, const GmLogCategory &logger)
 Constructor.
 
int id ()
 Returns the internal dump item id.
 
virtual QString itemName () const
 Returns the default item name composed of the object prefix + '_' + the object id, optionally followed by '_' + the name suffix (if nameSuffix returns a string different from "")
 
- Public Member Functions inherited from GmMemoryDumpItem
virtual ~GmMemoryDumpItem ()
 Virtual destructor.
 
virtual int itemType () const =0
 Returns the item type.
 
virtual bool opStart (int op)
 Function called by GmMemoryDump::load(), GmMemoryDump::save(), GmMemoryDump::loadItem() and GmMemoryDump::saveItem() to indicate that a load (op == 1) or save (op == 0) operation on this item will begin. More...
 
virtual bool opEnd (int op)
 Function called by GmMemoryDump::load(), GmMemoryDump::save(), GmMemoryDump::loadItem() and GmMemoryDump::saveItem() to indicate that a load (op == 1) or save (op == 0) operation was completed succesfully (it won't be called if the operation failed). More...
 
virtual void bufferReleased (int op, bool ok)
 Function called once after a call to getDataBuffer() / setDataBuffer() to inform the item data that the returned buffer will not be used anymore by the memory dump object. More...
 

Private Attributes

T * _data
 The stored vector / matrix.
 
bool _fixedHint
 Does this object has a low probability of growing?
 

Additional Inherited Members

- Protected Member Functions inherited from GmStateDumpBaseDataItem
virtual QString nameSuffix () const
 Virtual method returning the extra part of the item name, added to its standard prefix.
 
- Protected Attributes inherited from GmStateDumpBaseDataItem
int _id
 The object id.
 
QString _prefix
 The object name prefix.
 
const GmLogCategory_logger
 Basic logger object for dump messages.
 

Detailed Description

template<class T>
class GmStateDumpArmaDataItem< T >

Class responsible for storing either a GmVector / GmMatrix object.

Member Function Documentation

◆ fillDataHeader()

template<class T>
virtual bool GmStateDumpArmaDataItem< T >::fillDataHeader ( char *  header)
inlinevirtual

Function called together with getDataBuffer() to provide a "header information" with fixed size (equal to GM_MEMORY_DUMP_ITEM_DATA_SIZE) that is also saved for the dump item. This information is then made available when setDataBuffer() is called.

This function should fill the buffer with data and return true if it makes use of this functionality. Otherwise it can just return false indicating that the header was not updated at all.

It will be called even if size() returns zero.

Implements GmMemoryDumpItem.

◆ getDataBuffer()

template<class T>
virtual void GmStateDumpArmaDataItem< T >::getDataBuffer ( GmMemoryBufferList bufferList,
qint64  size = 0,
qint64  offset = 0 
)
inlinevirtual

Fills the provided bufferList object with the set of buffers that together define the dump item data.

If size is NOT zero, the filled bufferList should present a partial view of that data with size bytes and starting at the given offset. Otherwise, the filled bufferList size should be equal to the size returned by size(). If partialOp() returns false, this function will always be called with size and offset equal to 0.

The pointers added to the bufferList MUST remain valid until a call to bufferReleased(). The function can assume that between a call to getDataBuffer() and its closing bufferReleased() there will be no other calls to getDataBuffer() or setDataBuffer().

If size() == 0, this function is allowed to return without adding any buffers to bufferList. Otherwise, it MUST fill it with at least one valid buffer.

Implements GmMemoryDumpItem.

◆ setDataBuffer()

template<class T>
virtual bool GmStateDumpArmaDataItem< T >::setDataBuffer ( GmMemoryBufferList bufferList,
const char *  header,
qint64  size,
qint64  offset = 0 
)
inlinevirtual

Fills the provided bufferList object with the set of buffers that should be used to update the dump item data.

The header parameter provides the header information filled by fillDataHeader() when the item data was last saved. Its size is equal to GM_MEMORY_DUMP_ITEM_DATA_SIZE.

The size parameter informs the size of the data to be written. If the dump item can not cope with that size, the function should return false and leave the bufferList empty. The offset parameter is used for partial data updates to the area starting at the given offset. If partialOp() returns false, this function will always be called with offset equal to 0.

The pointers added to the bufferList MUST remain valid until a call to bufferReleased() , when its contents can then be used by the item data if needed. The function can assume that between a call to setDataBuffer() and its closing bufferReleased() there will be no other calls to setDataBuffer() or getDataBuffer().

This function will NOT be called with size == 0.

Implements GmMemoryDumpItem.


The documentation for this class was generated from the following file: