ProviderSegment Class Reference

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

+ Inheritance diagram for ProviderSegment:

Public Member Functions

std::shared_ptr< EntityfindEntity (const std::string &) const override
 find entity segment More...
 
bool forEachEntity (std::function< void(Entity &)> func) const override
 iterate over all core segments of this ltm More...
 
bool hasEntity (const std::string &) const override
 check if entity segment exists More...
 
 ProviderSegment (const detail::mixin::Path &, const detail::mixin::MongoDBSettings &, const std::string &, const MemoryID &id, const std::shared_ptr< Processors > &)
 
- Public Member Functions inherited from ProviderSegmentBase< Entity >
aron::type::ObjectPtr aronType () const
 get aron type More...
 
Statistics getStatistics () const
 
void loadAllReferences (armem::wm::ProviderSegment &provSeg)
 return the full sub-ltm as a wm::ProviderSegment 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::ProviderSegment &provSeg)
 convert the references of the input into a wm::Memory More...
 
void store (const armem::wm::ProviderSegment &provSeg)
 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::ProviderSegment &) override
 
void _resolve (armem::wm::ProviderSegment &) override
 
void _store (const armem::wm::ProviderSegment &) 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 ProviderSegmentBase< Entity >
using EntityT = Entity
 
- Static Public Member Functions inherited from ProviderSegmentBase< Entity >
static std::string getLevelName ()
 
- Static Public Attributes inherited from DiskMemoryItemMixin
static const int DEPTH_TO_DATA_FILES
 
- Protected Attributes inherited from ProviderSegmentBase< Entity >
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 ProviderSegment.h.

Constructor & Destructor Documentation

◆ ProviderSegment()

ProviderSegment ( 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 12 of file ProviderSegment.cpp.

Member Function Documentation

◆ _loadAllReferences()

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

Implements ProviderSegmentBase< Entity >.

Definition at line 105 of file ProviderSegment.cpp.

+ Here is the call graph for this function:

◆ _resolve()

void _resolve ( armem::wm::ProviderSegment p)
overrideprotectedvirtual

Implements ProviderSegmentBase< Entity >.

Definition at line 148 of file ProviderSegment.cpp.

+ Here is the call graph for this function:

◆ _store()

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

Implements ProviderSegmentBase< Entity >.

Definition at line 168 of file ProviderSegment.cpp.

+ Here is the call graph for this function:

◆ findEntity()

std::shared_ptr< Entity > findEntity ( const std::string &  ) const
overridevirtual

find entity segment

Implements ProviderSegmentBase< Entity >.

Definition at line 89 of file ProviderSegment.cpp.

+ Here is the call graph for this function:

◆ forEachEntity()

bool forEachEntity ( std::function< void(Entity &)>  func) const
overridevirtual

iterate over all core segments of this ltm

Implements ProviderSegmentBase< Entity >.

Definition at line 25 of file ProviderSegment.cpp.

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

◆ hasEntity()

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

check if entity segment exists

Implements ProviderSegmentBase< Entity >.

Definition at line 60 of file ProviderSegment.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: