Memory Class Reference

A memory storing data on the hard drive and in mongodb (needs 'armarx memory start' to start the mongod instance) More...

#include <RobotAPI/libraries/armem/server/ltm/Memory.h>

+ Inheritance diagram for Memory:

Public Types

using BufferedBase = detail::mixin::BufferedMemoryMixin<CoreSegment>
 
using CachedBase = detail::mixin::CachedMemoryMixin<CoreSegment>
 
using MemoryBase = detail::MemoryBase<CoreSegment>
 
- Public Types inherited from MemoryBase< CoreSegment >
using CoreSegmentT
 
- Public Types inherited from BufferedMemoryMixin< CoreSegment >
using StorageItem
 Can hold either pre-converted Memory or pending conversion data.
 

Public Member Functions

void _configure (const nlohmann::json &config) final
 configuration
 
void _disable () final
 
void _enable () final
 
void _setExportName (const std::string &memoryName) final
 
void _setMemoryID (const MemoryID &memoryId) final
 
void createPropertyDefinitions (PropertyDefinitionsPtr &defs, const std::string &prefix) override
 default parameters. Implementation should use the configuration to configure
 
bool flushAsyncStorage (int timeoutMs=0)
 Flush the async storage queue and wait for all pending items to be stored.
 
void getAndSaveStatistics ()
 getAndSaveStatistics generates and saves statistics for a LTM recording
 
size_t getAsyncQueueSize () const
 Get the current size of the async storage queue.
 
const detail::mixin::AsyncStorageStatisticsgetAsyncStorageStatistics () const
 Get the async storage statistics.
 
size_t getNumThreadsProcessing () const
 Get the number of threads currently processing items.
 
std::shared_ptr< persistence::RedundantPersistenceStrategygetPersistenceStrategy () const
 
 Memory ()
 
 Memory (const std::string &exportName, const std::string &memoryName)
 
 Memory (const std::string &exportName, const std::string &memoryName, const std::shared_ptr< persistence::RedundantPersistenceStrategy > &persistenceStrategy)
 
void setPersistenceStrategy (std::shared_ptr< persistence::RedundantPersistenceStrategy > persistenceStrategy)
 
- Public Member Functions inherited from MemoryBase< CoreSegment >
void configure ()
 initialize config
 
void configure ()
 initialize config
 
void disable ()
 disable this LTM
 
void disable ()
 disable this LTM
 
void enable ()
 enable this LTM
 
void enable ()
 enable this LTM
 
std::shared_ptr< CoreSegmentTfindCoreSegment (const std::string &coreSegmentName) const
 find core segment
 
std::shared_ptr< CoreSegmentTfindCoreSegment (const std::string &coreSegmentName) const
 find core segment
 
bool forEachCoreSegment (std::function< void(CoreSegmentT &)> func) const
 iterate over all core segments of this ltm
 
bool forEachCoreSegment (std::function< void(CoreSegmentT &)> func) const
 iterate over all core segments of this ltm
 
DebugObserverInterfacePrx getDebugObserver () const
 Get the current debug observer (may be nullptr)
 
DebugObserverInterfacePrx getDebugObserver () const
 Get the current debug observer (may be nullptr)
 
std::map< std::string, processor::SnapshotFilter::FilterStatisticsgetFilterStatistics ()
 
std::map< std::string, processor::SnapshotFilter::FilterStatisticsgetFilterStatistics ()
 
RecordingMode getRecordingMode () const
 
RecordingMode getRecordingMode () const
 
Statistics getStatistics () const
 
Statistics getStatistics () const
 
bool hasCoreSegment (const std::string &coreSegmentName) const
 check if core segment exists
 
bool hasCoreSegment (const std::string &coreSegmentName) const
 check if core segment exists
 
bool isRecording () const
 
bool isRecording () const
 
armem::wm::Memory loadAllAndResolve ()
 return the full ltm as a wm::Memory and resolves the references the ltm may be huge, use with caution
 
armem::wm::Memory loadAllAndResolve ()
 return the full ltm as a wm::Memory and resolves the references the ltm may be huge, use with caution
 
void loadAllAndResolve (armem::wm::Memory &memory)
 
void loadAllAndResolve (armem::wm::Memory &memory)
 
void loadAllAndResolve (armem::wm::Memory &memory, std::list< std::string > coreSegmentNames)
 
void loadAllAndResolve (armem::wm::Memory &memory, std::list< std::string > coreSegmentNames)
 
armem::wm::Memory loadAllReferences ()
 return the full ltm as a wm::Memory with only references the ltm may be huge, use with caution
 
armem::wm::Memory loadAllReferences ()
 return the full ltm as a wm::Memory with only references the ltm may be huge, use with caution
 
void loadAllReferences (armem::wm::Memory &memory)
 
void loadAllReferences (armem::wm::Memory &memory)
 
armem::wm::Memory loadLatestNReferences (int n)
 
armem::wm::Memory loadLatestNReferences (int n)
 
void loadLatestNReferences (int n, armem::wm::Memory &memory)
 
void loadLatestNReferences (int n, armem::wm::Memory &memory)
 
void loadLatestNReferences (int n, armem::wm::Memory &memory, std::list< std::string > coreSegNames)
 
void loadLatestNReferences (int n, armem::wm::Memory &memory, std::list< std::string > coreSegNames)
 
void loadOnStartup ()
 
void loadOnStartup ()
 
 MemoryBase (const std::string &exportName, const MemoryID &id)
 
 MemoryBase (const std::string &exportName, const MemoryID &id)
 
virtual void resetStatistics ()
 statistics
 
virtual void resetStatistics ()
 statistics
 
void resolve (armem::wm::Memory &memory)
 convert the references of the input into a wm::Memory
 
void resolve (armem::wm::Memory &memory)
 convert the references of the input into a wm::Memory
 
void setDebugObserver (DebugObserverInterfacePrx observer)
 Set an optional debug observer for timing measurements.
 
void setDebugObserver (DebugObserverInterfacePrx observer)
 Set an optional debug observer for timing measurements.
 
void setRecordingMode (const RecordingMode m)
 
void setRecordingMode (const RecordingMode m)
 
void setRecordingMode (const std::string &m)
 
void setRecordingMode (const std::string &m)
 
void startRecording ()
 enable/disable
 
void startRecording ()
 enable/disable
 
void stopRecording ()
 
void stopRecording ()
 
void store (const armem::server::wm::Memory &serverMemory)
 append a wm::Memory instance to the ltm
 
void store (const armem::server::wm::Memory &serverMemory)
 append a wm::Memory instance to the ltm
 
void store (std::shared_ptr< const armem::wm::Memory > memory)
 append a wm::Memory instance to the ltm (asynchronously via thread pool)
 
void store (std::shared_ptr< const armem::wm::Memory > memory)
 append a wm::Memory instance to the ltm (asynchronously via thread pool)
 
void storeSnapshotsAsync (const std::string &memoryName, const std::vector< wm::EntitySnapshot > &snapshots, const std::vector< mixin::PendingConversion::SegmentMetadata > &segmentMetadata)
 Store snapshots with deferred conversion (happens in async thread) This is more efficient than calling store() with a pre-converted Memory because the expensive toMemory() conversion happens off the critical path.
 
void storeSnapshotsAsync (const std::string &memoryName, const std::vector< wm::EntitySnapshot > &snapshots, const std::vector< mixin::PendingConversion::SegmentMetadata > &segmentMetadata)
 Store snapshots with deferred conversion (happens in async thread) This is more efficient than calling store() with a pre-converted Memory because the expensive toMemory() conversion happens off the critical path.
 
- Public Member Functions inherited from MemoryItem
virtual std::string getExportName () const
 
MemoryID getMemoryID () const
 
MemoryID id () const
 
 MemoryItem (const std::string &exportName, const MemoryID &)
 
 MemoryItem (const std::string &exportName, const MemoryID &, const std::shared_ptr< Processors > &)
 
std::string name () const
 
void setExportName (const std::string &n)
 
void setMemoryID (const MemoryID &)
 
void setMemoryName (const std::string &memoryName)
 
virtual ~MemoryItem ()=default
 
- Public Member Functions inherited from BufferedMemoryMixin< CoreSegment >
 BufferedMemoryMixin (const MemoryID &id)
 
 BufferedMemoryMixin (const MemoryID &id)
 
void bufferFinished ()
 
void bufferFinished ()
 
void directlyStore (const armem::server::wm::Memory &serverMemory, bool simulatedVersion=false)
 
void directlyStore (const armem::server::wm::Memory &serverMemory, bool simulatedVersion=false)
 
void directlyStore (const armem::wm::Memory &memory, bool simulatedVersion=false)
 
void directlyStore (const armem::wm::Memory &memory, bool simulatedVersion=false)
 
bool flushAsyncStorage (int timeoutMs=0)
 Flush the async storage queue and wait for all pending items to be stored.
 
bool flushAsyncStorage (int timeoutMs=0)
 Flush the async storage queue and wait for all pending items to be stored.
 
const AsyncStorageStatisticsgetAsyncStorageStatistics () const
 Get the async storage statistics.
 
const AsyncStorageStatisticsgetAsyncStorageStatistics () const
 Get the async storage statistics.
 
size_t getNumThreadsProcessing () const
 Get the number of threads currently processing items.
 
size_t getNumThreadsProcessing () const
 Get the number of threads currently processing items.
 
size_t getQueueSize () const
 Get the current size of the async storage queue.
 
size_t getQueueSize () const
 Get the current size of the async storage queue.
 
void resetAsyncStorageStatistics ()
 Reset the async storage statistics.
 
void resetAsyncStorageStatistics ()
 Reset the async storage statistics.
 
virtual ~BufferedMemoryMixin ()
 
virtual ~BufferedMemoryMixin ()
 
- Public Member Functions inherited from CachedMemoryMixin< CoreSegment >
 CachedMemoryMixin (const MemoryID &id)
 
 CachedMemoryMixin (const MemoryID &id)
 

Protected Member Functions

void _directlyStore (const armem::wm::Memory &wmMemory, bool simulatedVersion) final
 
void _enqueueForAsyncStorage (std::shared_ptr< const armem::wm::Memory > memory) final
 
void _enqueuePendingConversion (detail::mixin::PendingConversion pending) final
 
std::shared_ptr< CoreSegment_implFindCoreSegment (const std::string &coreSegmentName) const final
 
bool _implForEachCoreSegment (std::function< void(CoreSegment &)> func) const final
 
bool _implHasCoreSegment (const std::string &coreSegmentName) const final
 
void _loadAllReferences (armem::wm::Memory &wmMemory) final
 
void _loadAllReferences (armem::wm::Memory &wmMemory, std::list< std::string > coreSegNames) final
 
void _loadLatestNReferences (int n, armem::wm::Memory &wmMemory) final
 
void _loadLatestNReferences (int n, armem::wm::Memory &wmMemory, std::list< std::string > coreSegNames) final
 
void _loadOnStartup () final
 
std::shared_ptr< armem::wm::Memory_preFilterMemory (const armem::wm::Memory &memory, uint64_t &filteredCount, uint64_t &passedCount) final
 Pre-filter a memory object before enqueuing for async storage.
 
void _resolve (armem::wm::Memory &wmMemory) final
 
void _store (const armem::wm::Memory &wmMemory) final
 
- Protected Member Functions inherited from BufferedMemoryMixin< CoreSegment >
void addToBuffer (const armem::wm::Memory &memory)
 
void addToBuffer (const armem::wm::Memory &memory)
 
void asyncStorageWorker (size_t threadId)
 Worker thread that processes the async storage queue.
 
void asyncStorageWorker (size_t threadId)
 Worker thread that processes the async storage queue.
 
void configureMixin (const nlohmann::json &json)
 configuration
 
void configureMixin (const nlohmann::json &json)
 configuration
 
size_t countSnapshotsInItem (const StorageItem &item) const
 Count the number of snapshots in a storage item.
 
size_t countSnapshotsInItem (const StorageItem &item) const
 Count the number of snapshots in a storage item.
 
void createPropertyDefinitions (PropertyDefinitionsPtr &defs, const std::string &prefix)
 
void createPropertyDefinitions (PropertyDefinitionsPtr &defs, const std::string &prefix)
 
void enqueueForAsyncStorage (std::shared_ptr< const armem::wm::Memory > memory)
 Enqueue a memory object for async storage.
 
void enqueueForAsyncStorage (std::shared_ptr< const armem::wm::Memory > memory)
 Enqueue a memory object for async storage.
 
void enqueueForAsyncStoragePublic (std::shared_ptr< const armem::wm::Memory > memory)
 Public interface to enqueue memory for async storage This allows MemoryBase::store() to use the async thread pool.
 
void enqueueForAsyncStoragePublic (std::shared_ptr< const armem::wm::Memory > memory)
 Public interface to enqueue memory for async storage This allows MemoryBase::store() to use the async thread pool.
 
void enqueuePendingConversion (PendingConversion pending)
 Enqueue snapshots for deferred conversion and async storage This defers the expensive toMemory() conversion to the async thread.
 
void enqueuePendingConversion (PendingConversion pending)
 Enqueue snapshots for deferred conversion and async storage This defers the expensive toMemory() conversion to the async thread.
 
void enqueueStorageItem (StorageItem item)
 Internal method to enqueue any storage item (Memory or PendingConversion) PERFORMANCE: Uses lock-free queue to avoid mutex contention at 50Hz commit rate NON-BLOCKING: If the queue is full, the item is DROPPED immediately to prevent upstream queue (e.g., RobotWriterQueue) from backing up.
 
void enqueueStorageItem (StorageItem item)
 Internal method to enqueue any storage item (Memory or PendingConversion) PERFORMANCE: Uses lock-free queue to avoid mutex contention at 50Hz commit rate NON-BLOCKING: If the queue is full, the item is DROPPED immediately to prevent upstream queue (e.g., RobotWriterQueue) from backing up.
 
armem::wm::Memory getBuffer () const
 
armem::wm::Memory getBuffer () const
 
void setMixinMemoryID (const MemoryID &id)
 
void setMixinMemoryID (const MemoryID &id)
 
void start ()
 
void start ()
 
void stop ()
 
void stop ()
 
void storeBuffer ()
 
void storeBuffer ()
 
- Protected Member Functions inherited from CachedMemoryMixin< CoreSegment >
void addToCache (const armem::wm::Memory &memory)
 
void addToCache (const armem::wm::Memory &memory)
 
bool cacheHasCoreSegment (const MemoryID &n) const
 
bool cacheHasCoreSegment (const MemoryID &n) const
 
bool cacheHasCoreSegment (const std::string &n) const
 
bool cacheHasCoreSegment (const std::string &n) const
 
bool cacheHasEntity (const MemoryID &n) const
 
bool cacheHasEntity (const MemoryID &n) const
 
bool cacheHasEntityInstance (const MemoryID &n) const
 
bool cacheHasEntityInstance (const MemoryID &n) const
 
bool cacheHasEntitySnapshot (const MemoryID &n) const
 
bool cacheHasEntitySnapshot (const MemoryID &n) const
 
bool cacheHasProviderSegment (const MemoryID &n) const
 
bool cacheHasProviderSegment (const MemoryID &n) const
 
void configureMixin (const nlohmann::json &json)
 configuration
 
void configureMixin (const nlohmann::json &json)
 configuration
 
armem::wm::Memory getCache () const
 
armem::wm::Memory getCache () const
 
void setMixinMemoryID (const MemoryID &id)
 
void setMixinMemoryID (const MemoryID &id)
 

Additional Inherited Members

- Static Public Member Functions inherited from MemoryBase< CoreSegment >
static std::string getLevelName ()
 get level name1
 
static std::string getLevelName ()
 get level name1
 
- Public Attributes inherited from MemoryBase< CoreSegment >
struct armarx::armem::server::ltm::detail::MemoryBase::Properties p
 
struct armarx::armem::server::ltm::detail::MemoryBase::Properties p
 
- Protected Attributes inherited from MemoryBase< CoreSegment >
DebugObserverInterfacePrx debugObserver
 Optional debug observer for timing measurements.
 
DebugObserverInterfacePrx debugObserver
 Optional debug observer for timing measurements.
 
std::atomic_bool enabled
 
std::atomic_bool enabled
 
RecordingMode recordingMode
 
RecordingMode recordingMode
 
Statistics statistics
 
Statistics statistics
 
- Protected Attributes inherited from MemoryItem
std::shared_ptr< Processorsprocessors
 
- Protected Attributes inherited from BufferedMemoryMixin< CoreSegment >
std::unique_ptr< armem::wm::Memorybuffer
 Internal memory for data consolidated from wm to ltm (double-buffer) The to-put-to-ltm buffer (contains data in plain text) This buffer may still be filtered (e.g.
 
std::unique_ptr< armem::wm::Memorybuffer
 Internal memory for data consolidated from wm to ltm (double-buffer) The to-put-to-ltm buffer (contains data in plain text) This buffer may still be filtered (e.g.
 
size_t maxAsyncQueueSize
 Maximum size of the async storage queue (default 100 items)
 
size_t maxAsyncQueueSize
 Maximum size of the async storage queue (default 100 items)
 
size_t numAsyncStorageThreads
 Number of worker threads for async storage (default 4)
 
size_t numAsyncStorageThreads
 Number of worker threads for async storage (default 4)
 
std::atomic_flag storeFlag
 
std::atomic_flag storeFlag
 
float storeFrequency
 The frequency (Hz) to store data to the ltm.
 
float storeFrequency
 The frequency (Hz) to store data to the ltm.
 
std::unique_ptr< armem::wm::Memoryto_store
 
std::unique_ptr< armem::wm::Memoryto_store
 
int workerShutdownTimeoutSeconds
 Timeout in seconds for worker thread shutdown (default 30 seconds)
 
int workerShutdownTimeoutSeconds
 Timeout in seconds for worker thread shutdown (default 30 seconds)
 
- Protected Attributes inherited from CachedMemoryMixin< CoreSegment >
std::unique_ptr< armem::wm::Memorycache
 
std::unique_ptr< armem::wm::Memorycache
 

Detailed Description

A memory storing data on the hard drive and in mongodb (needs 'armarx memory start' to start the mongod instance)

Definition at line 20 of file Memory.h.

Member Typedef Documentation

◆ BufferedBase

◆ CachedBase

Definition at line 28 of file Memory.h.

◆ MemoryBase

Definition at line 26 of file Memory.h.

Constructor & Destructor Documentation

◆ Memory() [1/3]

Memory ( )

Definition at line 123 of file Memory.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Memory() [2/3]

Memory ( const std::string & exportName,
const std::string & memoryName )

Definition at line 127 of file Memory.cpp.

+ Here is the call graph for this function:

◆ Memory() [3/3]

Memory ( const std::string & exportName,
const std::string & memoryName,
const std::shared_ptr< persistence::RedundantPersistenceStrategy > & persistenceStrategy )

Definition at line 135 of file Memory.cpp.

Member Function Documentation

◆ _configure()

void _configure ( const nlohmann::json & )
finalvirtual

configuration

ARMARX_INFO << "MemoryID=" << getMemoryID().str(); ARMARX_INFO << "Identifier=" << identifier; ARMARX_INFO << "Export name=" << getExportName(); ARMARX_INFO << "Host=" << p.restHost; ARMARX_INFO << "Port=" << p.restPort; ARMARX_INFO << "DisableIfNotAvailable=" << p.restDisableIfNotAvailable;

std::shared_ptr<armem::server::ltm::persistence::RestPersistence> restPersistence = std::make_shared<armem::server::ltm::persistence::RestPersistence>( identifier, getExportName(), p.restHost, p.restPort, p.restDisableIfNotAvailable);

redundantPersistence->addStrategy(restPersistence);

Reimplemented from MemoryBase< CoreSegment >.

Definition at line 18 of file Memory.cpp.

+ Here is the call graph for this function:

◆ _directlyStore()

void _directlyStore ( const armem::wm::Memory & wmMemory,
bool simulatedVersion )
finalprotectedvirtual

Implements MemoryBase< CoreSegment >.

Definition at line 429 of file Memory.cpp.

+ Here is the call graph for this function:

◆ _disable()

void _disable ( )
finalvirtual

Reimplemented from MemoryBase< CoreSegment >.

Definition at line 166 of file Memory.cpp.

+ Here is the call graph for this function:

◆ _enable()

void _enable ( )
finalvirtual

Reimplemented from MemoryBase< CoreSegment >.

Definition at line 158 of file Memory.cpp.

+ Here is the call graph for this function:

◆ _enqueueForAsyncStorage()

void _enqueueForAsyncStorage ( std::shared_ptr< const armem::wm::Memory > memory)
finalprotectedvirtual

Implements MemoryBase< CoreSegment >.

Definition at line 557 of file Memory.cpp.

+ Here is the call graph for this function:

◆ _enqueuePendingConversion()

void _enqueuePendingConversion ( detail::mixin::PendingConversion pending)
finalprotectedvirtual

Implements MemoryBase< CoreSegment >.

Definition at line 565 of file Memory.cpp.

+ Here is the call graph for this function:

◆ _implFindCoreSegment()

std::shared_ptr< CoreSegment > _implFindCoreSegment ( const std::string & coreSegmentName) const
finalprotectedvirtual

Implements MemoryBase< CoreSegment >.

Definition at line 225 of file Memory.cpp.

+ Here is the call graph for this function:

◆ _implForEachCoreSegment()

bool _implForEachCoreSegment ( std::function< void(CoreSegment &)> func) const
finalprotectedvirtual

Implements MemoryBase< CoreSegment >.

Definition at line 188 of file Memory.cpp.

+ Here is the call graph for this function:

◆ _implHasCoreSegment()

bool _implHasCoreSegment ( const std::string & coreSegmentName) const
finalprotectedvirtual

Implements MemoryBase< CoreSegment >.

Definition at line 214 of file Memory.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _loadAllReferences() [1/2]

void _loadAllReferences ( armem::wm::Memory & wmMemory)
finalprotectedvirtual

Implements MemoryBase< CoreSegment >.

Definition at line 253 of file Memory.cpp.

+ Here is the call graph for this function:

◆ _loadAllReferences() [2/2]

void _loadAllReferences ( armem::wm::Memory & wmMemory,
std::list< std::string > coreSegNames )
finalprotectedvirtual

Implements MemoryBase< CoreSegment >.

Definition at line 282 of file Memory.cpp.

+ Here is the call graph for this function:

◆ _loadLatestNReferences() [1/2]

void _loadLatestNReferences ( int n,
armem::wm::Memory & wmMemory )
finalprotectedvirtual

Implements MemoryBase< CoreSegment >.

Definition at line 325 of file Memory.cpp.

+ Here is the call graph for this function:

◆ _loadLatestNReferences() [2/2]

void _loadLatestNReferences ( int n,
armem::wm::Memory & wmMemory,
std::list< std::string > coreSegNames )
finalprotectedvirtual

Implements MemoryBase< CoreSegment >.

Definition at line 354 of file Memory.cpp.

+ Here is the call graph for this function:

◆ _loadOnStartup()

void _loadOnStartup ( )
finalprotectedvirtual

Implements MemoryBase< CoreSegment >.

Definition at line 551 of file Memory.cpp.

◆ _preFilterMemory()

std::shared_ptr< armem::wm::Memory > _preFilterMemory ( const armem::wm::Memory & memory,
uint64_t & filteredCount,
uint64_t & passedCount )
finalprotectedvirtual

Pre-filter a memory object before enqueuing for async storage.

This method applies snapshot filters BEFORE the memory enters the async queue, reducing queue pressure and avoiding work on the async worker threads.

Parameters
memoryThe memory to filter
filteredCountOutput: number of snapshots that were filtered out
passedCountOutput: number of snapshots that passed the filter
Returns
A new memory containing only the snapshots that passed the filters, or nullptr if all snapshots were filtered out

Implements BufferedMemoryMixin< CoreSegment >.

Definition at line 470 of file Memory.cpp.

◆ _resolve()

void _resolve ( armem::wm::Memory & wmMemory)
finalprotectedvirtual

Implements MemoryBase< CoreSegment >.

Definition at line 399 of file Memory.cpp.

+ Here is the call graph for this function:

◆ _setExportName()

void _setExportName ( const std::string & memoryName)
finalvirtual

Reimplemented from MemoryBase< CoreSegment >.

Definition at line 147 of file Memory.cpp.

◆ _setMemoryID()

void _setMemoryID ( const MemoryID & memoryId)
finalvirtual

Reimplemented from MemoryItem.

Definition at line 176 of file Memory.cpp.

+ Here is the call graph for this function:

◆ _store()

void _store ( const armem::wm::Memory & wmMemory)
finalprotectedvirtual

Implements MemoryBase< CoreSegment >.

Definition at line 422 of file Memory.cpp.

+ Here is the call graph for this function:

◆ createPropertyDefinitions()

void createPropertyDefinitions ( PropertyDefinitionsPtr & defs,
const std::string & prefix )
overridevirtual

default parameters. Implementation should use the configuration to configure

Reimplemented from MemoryBase< CoreSegment >.

Definition at line 244 of file Memory.cpp.

+ Here is the call graph for this function:

◆ flushAsyncStorage()

bool flushAsyncStorage ( int timeoutMs = 0)
inline

Flush the async storage queue and wait for all pending items to be stored.

This blocks until the queue is empty and all storage operations are complete.

Parameters
timeoutMsMaximum time to wait in milliseconds (0 = wait indefinitely)
Returns
true if queue was flushed successfully, false if timeout occurred

Definition at line 59 of file Memory.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getAndSaveStatistics()

void getAndSaveStatistics ( )

getAndSaveStatistics generates and saves statistics for a LTM recording

Definition at line 573 of file Memory.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getAsyncQueueSize()

size_t getAsyncQueueSize ( ) const
inline

Get the current size of the async storage queue.

Definition at line 67 of file Memory.h.

+ Here is the call graph for this function:

◆ getAsyncStorageStatistics()

const detail::mixin::AsyncStorageStatistics & getAsyncStorageStatistics ( ) const
inline

Get the async storage statistics.

Definition at line 75 of file Memory.h.

+ Here is the call graph for this function:

◆ getNumThreadsProcessing()

size_t getNumThreadsProcessing ( ) const
inline

Get the number of threads currently processing items.

Definition at line 83 of file Memory.h.

+ Here is the call graph for this function:

◆ getPersistenceStrategy()

std::shared_ptr< persistence::RedundantPersistenceStrategy > getPersistenceStrategy ( ) const
inline

Definition at line 96 of file Memory.h.

+ Here is the caller graph for this function:

◆ setPersistenceStrategy()

void setPersistenceStrategy ( std::shared_ptr< persistence::RedundantPersistenceStrategy > persistenceStrategy)
inline

Definition at line 89 of file Memory.h.

+ Here is the caller graph for this function:

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