EntitySnapshot Class Reference

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

+ Inheritance diagram for EntitySnapshot:

Public Member Functions

 EntitySnapshot (const detail::mixin::Path &, const detail::mixin::MongoDBSettings &, const std::string &, const MemoryID &id, const std::shared_ptr< Processors > &p)
 
std::shared_ptr< EntityInstancefindInstance (const int) const override
 find Instance segment More...
 
bool forEachInstance (std::function< void(EntityInstance &)> func) const override
 iterate over all Instance segments of this ltm More...
 
bool hasInstance (const int) const override
 check if Instance segment exists More...
 
- Public Member Functions inherited from EntitySnapshotBase< EntityInstance >
Statistics getStatistics () const
 
void loadAllReferences (armem::wm::EntitySnapshot &e) const
 return the full sub-ltm as a wm::EntitySnapshot with only references the ltm may be huge, use with caution More...
 
 MemoryItem (const std::string &exportName, const MemoryID &)
 
 MemoryItem (const std::string &exportName, const MemoryID &, const std::shared_ptr< Processors > &)
 
void resetStatistics ()
 statistics More...
 
void resolve (armem::wm::EntitySnapshot &e) const
 convert the references of the input into a wm::Memory More...
 
void store (const armem::wm::EntitySnapshot &e)
 encode the content of a wm::Memory and store 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 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< PathgetAllDirectories () const
 
std::vector< PathgetAllFiles () 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 _loadAllReferences (armem::wm::EntitySnapshot &) const override
 
void _resolve (armem::wm::EntitySnapshot &) const override
 
void _store (const armem::wm::EntitySnapshot &) override
 
- Protected Member Functions inherited from MemoryItem
virtual void _setExportName (const std::string &)
 
virtual void _setMemoryID (const MemoryID &)
 
- 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 EntitySnapshotBase< EntityInstance >
static std::string getLevelName ()
 
- Static Public Attributes inherited from DiskMemoryItemMixin
static const int DEPTH_TO_DATA_FILES
 
- Protected Attributes inherited from EntitySnapshotBase< EntityInstance >
std::recursive_mutex ltm_mutex
 
Statistics statistics
 
- Protected Attributes inherited from MemoryItem
std::shared_ptr< Processorsprocessors
 
- 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"
 

Detailed Description

Definition at line 14 of file EntitySnapshot.h.

Constructor & Destructor Documentation

◆ EntitySnapshot()

EntitySnapshot ( const detail::mixin::Path p,
const detail::mixin::MongoDBSettings s,
const std::string &  exportName,
const MemoryID id,
const std::shared_ptr< Processors > &  p 
)

Definition at line 16 of file EntitySnapshot.cpp.

Member Function Documentation

◆ _loadAllReferences()

void _loadAllReferences ( armem::wm::EntitySnapshot e) const
overrideprotectedvirtual

Implements EntitySnapshotBase< EntityInstance >.

Definition at line 112 of file EntitySnapshot.cpp.

+ Here is the call graph for this function:

◆ _resolve()

void _resolve ( armem::wm::EntitySnapshot p) const
overrideprotectedvirtual

Implements EntitySnapshotBase< EntityInstance >.

Definition at line 124 of file EntitySnapshot.cpp.

+ Here is the call graph for this function:

◆ _store()

void _store ( const armem::wm::EntitySnapshot p)
overrideprotectedvirtual

Implements EntitySnapshotBase< EntityInstance >.

Definition at line 144 of file EntitySnapshot.cpp.

+ Here is the call graph for this function:

◆ findInstance()

std::shared_ptr< EntityInstance > findInstance ( const int  ) const
overridevirtual

find Instance segment

Implements EntitySnapshotBase< EntityInstance >.

Definition at line 96 of file EntitySnapshot.cpp.

+ Here is the call graph for this function:

◆ forEachInstance()

bool forEachInstance ( std::function< void(EntityInstance &)>  func) const
overridevirtual

iterate over all Instance segments of this ltm

Implements EntitySnapshotBase< EntityInstance >.

Definition at line 30 of file EntitySnapshot.cpp.

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

◆ hasInstance()

bool hasInstance ( const int  ) const
overridevirtual

check if Instance segment exists

Implements EntitySnapshotBase< EntityInstance >.

Definition at line 68 of file EntitySnapshot.cpp.

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

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