CoreSegment Class Reference

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

+ Inheritance diagram for CoreSegment:

Public Member Functions

 CoreSegment (const detail::mixin::Path &, const detail::mixin::MongoDBSettings &, const std::string &, const MemoryID &, const std::shared_ptr< Processors > &)
 
std::shared_ptr< ProviderSegmentfindProviderSegment (const std::string &) const override
 find provider segment More...
 
bool forEachProviderSegment (std::function< void(ProviderSegment &)> func) const override
 iterate over all provider segments of this ltm More...
 
bool hasProviderSegment (const std::string &name) const override
 check if provider segment exists More...
 
- Public Member Functions inherited from CoreSegmentBase< ProviderSegment >
aron::type::ObjectPtr aronType () const
 get aron type More...
 
Statistics getStatistics () const
 
void loadAllReferences (armem::wm::CoreSegment &coreSeg)
 return the full sub-ltm as a wm::CoreSegment with only references the ltm may be huge, use with caution More...
 
void loadLatestNReferences (int n, armem::wm::CoreSegment &coreSeg)
 
 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::CoreSegment &coreSeg)
 convert the references of the input into a wm::Memory More...
 
void store (const armem::wm::CoreSegment &coreSeg)
 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::CoreSegment &) override
 
void _loadLatestNReferences (int n, armem::wm::CoreSegment &c) override
 
void _resolve (armem::wm::CoreSegment &) override
 
void _store (const armem::wm::CoreSegment &) 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

- Public Types inherited from CoreSegmentBase< ProviderSegment >
using ProviderSegmentT = ProviderSegment
 
- Static Public Member Functions inherited from CoreSegmentBase< ProviderSegment >
static std::string getLevelName ()
 get level name More...
 
- Static Public Attributes inherited from DiskMemoryItemMixin
static const int DEPTH_TO_DATA_FILES
 
- Protected Attributes inherited from CoreSegmentBase< ProviderSegment >
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 13 of file CoreSegment.h.

Constructor & Destructor Documentation

◆ CoreSegment()

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

Definition at line 10 of file CoreSegment.cpp.

Member Function Documentation

◆ _loadAllReferences()

void _loadAllReferences ( armem::wm::CoreSegment e)
overrideprotectedvirtual

Implements CoreSegmentBase< ProviderSegment >.

Definition at line 82 of file CoreSegment.cpp.

+ Here is the call graph for this function:

◆ _loadLatestNReferences()

void _loadLatestNReferences ( int  n,
armem::wm::CoreSegment c 
)
overrideprotectedvirtual

Implements CoreSegmentBase< ProviderSegment >.

Definition at line 111 of file CoreSegment.cpp.

+ Here is the call graph for this function:

◆ _resolve()

void _resolve ( armem::wm::CoreSegment c)
overrideprotectedvirtual

Implements CoreSegmentBase< ProviderSegment >.

Definition at line 138 of file CoreSegment.cpp.

+ Here is the call graph for this function:

◆ _store()

void _store ( const armem::wm::CoreSegment c)
overrideprotectedvirtual

Implements CoreSegmentBase< ProviderSegment >.

Definition at line 158 of file CoreSegment.cpp.

+ Here is the call graph for this function:

◆ findProviderSegment()

std::shared_ptr< ProviderSegment > findProviderSegment ( const std::string &  ) const
overridevirtual

find provider segment

Implements CoreSegmentBase< ProviderSegment >.

Definition at line 65 of file CoreSegment.cpp.

+ Here is the call graph for this function:

◆ forEachProviderSegment()

bool forEachProviderSegment ( std::function< void(ProviderSegment &)>  func) const
overridevirtual

iterate over all provider segments of this ltm

Implements CoreSegmentBase< ProviderSegment >.

Definition at line 24 of file CoreSegment.cpp.

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

◆ hasProviderSegment()

bool hasProviderSegment ( const std::string &  ) const
overridevirtual

check if provider segment exists

Implements CoreSegmentBase< ProviderSegment >.

Definition at line 46 of file CoreSegment.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: