|
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>
Public Types | |
using | BufferedBase = detail::mixin::BufferedMemoryMixin< CoreSegment > |
using | CachedBase = detail::mixin::CachedMemoryMixin< CoreSegment > |
using | DiskMemoryBase = detail::mixin::DiskMemoryItemMixin |
using | MemoryBase = detail::MemoryBase< CoreSegment > |
using | MongoDBStorageMixin = detail::mixin::MongoDBStorageMixin |
Public Types inherited from MemoryBase< CoreSegment > | |
using | CoreSegmentT = CoreSegment |
Public Member Functions | |
void | _configure (const nlohmann::json &config) final |
configuration More... | |
void | _disable () final |
void | _enable () final |
void | _setExportName (const std::string &n) final |
void | _setMemoryID (const MemoryID &id) final |
void | createPropertyDefinitions (PropertyDefinitionsPtr &defs, const std::string &prefix) override |
default parameters. Implementation should use the configuration to configure More... | |
std::unique_ptr< CoreSegment > | findCoreSegment (const std::string &coreSegmentName) const final |
find core segment More... | |
bool | forEachCoreSegment (std::function< void(CoreSegment &)> func) const final |
iterate over all core segments of this ltm More... | |
void | getAndSaveStatistics () |
getAndSaveStatistics generates and saves statistics for a LTM recording More... | |
bool | hasCoreSegment (const std::string &name) const final |
check if core segment exists More... | |
Memory () | |
Memory (const detail::mixin::Path &, const detail::mixin::MongoDBSettings &, const std::string &, const std::string &) | |
Memory (const detail::mixin::Path &, const std::string &, const std::string &) | |
Public Member Functions inherited from MemoryBase< CoreSegment > | |
void | configure () |
initialize config More... | |
void | disable () |
disable this LTM More... | |
void | enable () |
enable this LTM More... | |
std::map< std::string, processor::SnapshotFilter::FilterStatistics > | getFilterStatistics () |
Statistics | getStatistics () 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 More... | |
void | loadAllAndResolve (armem::wm::Memory &memory) |
armem::wm::Memory | loadAllReferences () |
return the full ltm as a wm::Memory with only references the ltm may be huge, use with caution More... | |
void | loadAllReferences (armem::wm::Memory &memory) |
armem::wm::Memory | loadLatestNReferences (int n) |
void | loadLatestNReferences (int n, armem::wm::Memory &memory) |
void | loadLatestNReferences (int n, armem::wm::Memory &memory, std::list< std::string > coreSegNames) |
void | loadOnStartup () |
MemoryBase (const std::string &exportName, const MemoryID &id) | |
virtual void | resetStatistics () |
statistics More... | |
void | resolve (armem::wm::Memory &memory) |
convert the references of the input into a wm::Memory More... | |
void | startRecording () |
enable/disable More... | |
void | stopRecording () |
void | store (const armem::server::wm::Memory &serverMemory) |
append a wm::Memory instance to the ltm More... | |
void | store (const armem::wm::Memory &memory) |
append a wm::Memory instance to the ltm More... | |
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) | |
void | bufferFinished () |
void | directlyStore (const armem::server::wm::Memory &serverMemory) |
void | directlyStore (const armem::wm::Memory &memory) |
virtual | ~BufferedMemoryMixin ()=default |
Public Member Functions inherited from CachedMemoryMixin< CoreSegment > | |
CachedMemoryMixin (const MemoryID &id) | |
Public Member Functions inherited from DiskMemoryItemMixin | |
void | createPropertyDefinitions (PropertyDefinitionsPtr &defs, const std::string &prefix) |
DiskMemoryItemMixin ()=default | |
DiskMemoryItemMixin (const Path &memoryParentPath, const std::string &exportName, const armem::MemoryID &id) | |
void | ensureFileExists (const std::string &filename, bool createIfNotExistent=false) const |
void | ensureFullPathExists (bool createIfNotExistent=false) const |
void | ensureMemoryBasePathExists (bool createIfNotExistent=false) const |
bool | fileExists (const std::string &filename) const |
bool | fullPathExists () const |
std::vector< Path > | getAllDirectories () const |
std::vector< Path > | getAllFiles () const |
Path | getFullPath () const |
Path | getMemoryBasePath () const |
bool | memoryBasePathExists () const |
std::vector< unsigned char > | readDataFromFile (const std::string &filename) const |
void | writeDataToFile (const std::string &filename, const std::vector< unsigned char > &data) const |
virtual | ~DiskMemoryItemMixin ()=default |
Public Member Functions inherited from MongoDBStorageMixin | |
std::optional< mongocxx::collection > | collectionExists () const |
std::optional< mongocxx::database > | databaseExists () const |
std::optional< nlohmann::json > | documentExists () const |
std::optional< nlohmann::json > | documentExists (const std::string &id) const |
mongocxx::collection | ensureCollectionExists (bool createIfNotExistent=false) |
mongocxx::database | ensureDatabaseExists (bool createIfNotExistent=false) |
nlohmann::json | ensureDocumentExists (bool createIfNotExistent=false) |
nlohmann::json | ensureDocumentExists (const std::string &id, bool createIfNotExistent=false) |
mongocxx::collection | ensurePreviousCollectionExists (bool createIfNotExistent=false) |
std::vector< nlohmann::json > | getAllDocuments () const |
std::string | getCollectionName () const |
std::string | getDatabaseName () const |
std::string | getDocumentName () const |
std::string | getPreviousCollectionName () const |
MongoDBSettings | getSettings () const |
MongoDBStorageMixin ()=default | |
MongoDBStorageMixin (const MongoDBSettings &settings, const std::string &exportName, const armem::MemoryID &id) | |
std::optional< mongocxx::collection > | previousCollectionExists () const |
nlohmann::json | readDataFromDocument () const |
nlohmann::json | readDataFromDocument (const std::string &id) const |
void | writeDataToDocument (const nlohmann::json &data) |
void | writeDataToDocument (const std::string &id, const nlohmann::json &data) |
void | writeForeignKeyToPreviousDocument () |
void | writeForeignKeyToPreviousDocument (const nlohmann::json &type) |
Protected Member Functions | |
void | _directlyStore (const armem::wm::Memory &) final |
void | _loadAllReferences (armem::wm::Memory &) final |
void | _loadLatestNReferences (int n, armem::wm::Memory &m) final |
void | _loadLatestNReferences (int n, armem::wm::Memory &m, std::list< std::string > coreSegNames) final |
void | _loadOnStartup () final |
void | _resolve (armem::wm::Memory &) final |
void | _store (const armem::wm::Memory &) final |
Protected Member Functions inherited from BufferedMemoryMixin< CoreSegment > | |
void | addToBuffer (const armem::wm::Memory &memory) |
void | configureMixin (const nlohmann::json &json) |
configuration More... | |
void | createPropertyDefinitions (PropertyDefinitionsPtr &defs, const std::string &prefix) |
armem::wm::Memory | getBuffer () const |
void | setMixinMemoryID (const MemoryID &id) |
void | start () |
void | stop () |
void | storeBuffer () |
Protected Member Functions inherited from CachedMemoryMixin< CoreSegment > | |
void | addToCache (const armem::wm::Memory &memory) |
bool | cacheHasCoreSegment (const MemoryID &n) const |
bool | cacheHasCoreSegment (const std::string &n) const |
bool | cacheHasEntity (const MemoryID &n) const |
bool | cacheHasEntityInstance (const MemoryID &n) const |
bool | cacheHasEntitySnapshot (const MemoryID &n) const |
bool | cacheHasProviderSegment (const MemoryID &n) const |
void | configureMixin (const nlohmann::json &json) |
configuration More... | |
armem::wm::Memory | getCache () const |
void | setMixinMemoryID (const MemoryID &id) |
Protected Member Functions inherited from DiskMemoryItemMixin | |
Path | addDateToMemoryBasePath (const std::filesystem::path &n) const |
void | configureMixin (const nlohmann::json &json) |
void | setMixinExportName (const std::string &n) |
void | setMixinMemoryID (const MemoryID &n) |
Protected Member Functions inherited from MongoDBStorageMixin | |
void | configureMixin (const nlohmann::json &json) |
configuration More... | |
void | connect () const |
bool | connected () const |
void | setHost (const std::string &) |
void | setMixinExportName (const std::string &n) |
void | setMixinMemoryID (const armem::MemoryID &) |
setter More... | |
void | setPassword (const std::string &) |
void | setPort (const unsigned int) |
void | setUser (const std::string &) |
void | start () |
start More... | |
void | stop () |
Additional Inherited Members | |
Static Public Member Functions inherited from MemoryBase< CoreSegment > | |
static std::string | getLevelName () |
get level name1 More... | |
Public Attributes inherited from MemoryBase< CoreSegment > | |
struct armarx::armem::server::ltm::detail::MemoryBase::Properties | p |
Static Public Attributes inherited from DiskMemoryItemMixin | |
static const int | DEPTH_TO_DATA_FILES |
Protected Attributes inherited from MemoryBase< CoreSegment > | |
std::atomic_bool | enabled |
std::recursive_mutex | ltm_mutex |
Statistics | statistics |
Protected Attributes inherited from MemoryItem | |
std::shared_ptr< Processors > | processors |
Protected Attributes inherited from BufferedMemoryMixin< CoreSegment > | |
std::unique_ptr< armem::wm::Memory > | buffer |
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. More... | |
std::atomic_flag | storeFlag |
float | storeFrequency |
The frequency (Hz) to store data to the ltm. More... | |
std::unique_ptr< armem::wm::Memory > | to_store |
Protected Attributes inherited from CachedMemoryMixin< CoreSegment > | |
std::unique_ptr< armem::wm::Memory > | cache |
Static Protected Attributes inherited from DiskMemoryItemMixin | |
static const constexpr char * | DATA_FILENAME = "data.aron" |
static const constexpr char * | MEMORY_EXPORT_SUFFIX = "_" |
static const constexpr char * | METADATA_FILENAME = "metadata.aron" |
static const constexpr char * | TYPE_FILENAME = "type.aron" |
Static Protected Attributes inherited from MongoDBStorageMixin | |
static const constexpr char * | DATA = "_data" |
static const constexpr char * | FOREIGN_KEY = "_foreign_key" |
static const constexpr char * | ID = "_id" |
static const constexpr char * | METADATA = "_metadata" |
static const constexpr char * | TYPE = "_type" |
A memory storing data on the hard drive and in mongodb (needs 'armarx memory start' to start the mongod instance)
using MemoryBase = detail::MemoryBase<CoreSegment> |
Memory | ( | ) |
Definition at line 21 of file Memory.cpp.
Memory | ( | const detail::mixin::Path & | p, |
const std::string & | exportName, | ||
const std::string & | memoryName | ||
) |
Definition at line 25 of file Memory.cpp.
Memory | ( | const detail::mixin::Path & | p, |
const detail::mixin::MongoDBSettings & | s, | ||
const std::string & | exportName, | ||
const std::string & | memoryName | ||
) |
Definition at line 33 of file Memory.cpp.
|
finalvirtual |
configuration
Reimplemented from MemoryBase< CoreSegment >.
Definition at line 11 of file Memory.cpp.
|
finalprotectedvirtual |
Implements MemoryBase< CoreSegment >.
Definition at line 264 of file Memory.cpp.
|
finalvirtual |
Reimplemented from MemoryBase< CoreSegment >.
Definition at line 62 of file Memory.cpp.
|
finalvirtual |
Reimplemented from MemoryBase< CoreSegment >.
Definition at line 55 of file Memory.cpp.
|
finalprotectedvirtual |
Implements MemoryBase< CoreSegment >.
Definition at line 178 of file Memory.cpp.
|
finalprotectedvirtual |
Implements MemoryBase< CoreSegment >.
Definition at line 194 of file Memory.cpp.
|
finalprotectedvirtual |
Implements MemoryBase< CoreSegment >.
Definition at line 209 of file Memory.cpp.
|
finalprotectedvirtual |
Implements MemoryBase< CoreSegment >.
Definition at line 305 of file Memory.cpp.
|
finalprotectedvirtual |
Implements MemoryBase< CoreSegment >.
Definition at line 232 of file Memory.cpp.
|
finalvirtual |
Reimplemented from MemoryBase< CoreSegment >.
Definition at line 48 of file Memory.cpp.
|
finalvirtual |
Reimplemented from MemoryItem.
Definition at line 71 of file Memory.cpp.
|
finalprotectedvirtual |
Implements MemoryBase< CoreSegment >.
Definition at line 258 of file Memory.cpp.
|
overridevirtual |
default parameters. Implementation should use the configuration to configure
Reimplemented from MemoryBase< CoreSegment >.
Definition at line 170 of file Memory.cpp.
|
finalvirtual |
find core segment
Implements MemoryBase< CoreSegment >.
Definition at line 153 of file Memory.cpp.
|
finalvirtual |
iterate over all core segments of this ltm
Implements MemoryBase< CoreSegment >.
Definition at line 82 of file Memory.cpp.
void getAndSaveStatistics | ( | ) |
getAndSaveStatistics generates and saves statistics for a LTM recording
Definition at line 311 of file Memory.cpp.
|
finalvirtual |
check if core segment exists
Implements MemoryBase< CoreSegment >.
Definition at line 116 of file Memory.cpp.