LibreCAD
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
lc::StorageManager Class Referenceabstract

#include <storagemanager.h>

Inheritance diagram for lc::StorageManager:

Public Member Functions

virtual void insertEntity (entity::CADEntity_CSPtr)=0
 
virtual void insertEntityContainer (const EntityContainer< entity::CADEntity_CSPtr > &)=0
 
virtual void removeEntity (entity::CADEntity_CSPtr)=0
 
virtual entity::CADEntity_CSPtr entityByID (ID_DATATYPE id) const =0
 
virtual EntityContainer
< entity::CADEntity_CSPtr > 
entitiesByLayer (Layer_CSPtr layer) const =0
 
virtual EntityContainer
< entity::CADEntity_CSPtr > 
entitiesByBlock (Block_CSPtr block) const =0
 
virtual Layer_CSPtr layerByName (const std::string &layerName) const =0
 layer Return a single document layer More...
 
virtual DxfLinePatternByValue_CSPtr linePatternByName (const std::string &linePatternName) const =0
 DxfLinePattern Return a line pattern by name from the document. More...
 
virtual std::map< std::string,
Layer_CSPtr > 
allLayers () const =0
 Returns all the layers present in the document. More...
 
virtual EntityContainer
< entity::CADEntity_CSPtr > & 
entityContainer ()=0
 entityContainer return a copy of all entities managed within the storage manager More...
 
virtual void addDocumentMetaType (DocumentMetaType_CSPtr dmt)=0
 add a document meta type More...
 
virtual void removeDocumentMetaType (DocumentMetaType_CSPtr dmt)=0
 remove a document meta type from the document More...
 
virtual void replaceDocumentMetaType (DocumentMetaType_CSPtr oldDmt, DocumentMetaType_CSPtr newDmt)=0
 remove document meta type More...
 
virtual std::map< std::string,
DocumentMetaType_CSPtr,
lc::StringHelper::cmpCaseInsensetive
allMetaTypes () const =0
 
virtual void optimise ()=0
 optimise the underlaying data store. Run this at a regular base, for example after each task More...
 
template<typename T >
const std::shared_ptr< const T > metaDataTypeByName (const std::string &name) const
 
template<typename T >
const std::vector
< std::shared_ptr< const T > > 
metaTypes () const
 

Private Member Functions

virtual DocumentMetaType_CSPtr _metaDataTypeByName (const std::string &id) const
 

Detailed Description

Definition at line 16 of file storagemanager.h.

Member Function Documentation

virtual DocumentMetaType_CSPtr lc::StorageManager::_metaDataTypeByName ( const std::string &  id) const
inlineprivatevirtual

Reimplemented in lc::StorageManagerImpl.

Definition at line 110 of file storagemanager.h.

110  {
111  return nullptr;
112  }
virtual void lc::StorageManager::addDocumentMetaType ( DocumentMetaType_CSPtr  dmt)
pure virtual

add a document meta type

Parameters
layerlayer to be added.

Implemented in lc::StorageManagerImpl.

virtual std::map<std::string, Layer_CSPtr> lc::StorageManager::allLayers ( ) const
pure virtual

Returns all the layers present in the document.

Returns
Hash Layername, Layer

Implemented in lc::StorageManagerImpl.

virtual std::map<std::string, DocumentMetaType_CSPtr, lc::StringHelper::cmpCaseInsensetive> lc::StorageManager::allMetaTypes ( ) const
pure virtual

Implemented in lc::StorageManagerImpl.

virtual EntityContainer<entity::CADEntity_CSPtr> lc::StorageManager::entitiesByBlock ( Block_CSPtr  block) const
pure virtual

Implemented in lc::StorageManagerImpl.

virtual EntityContainer<entity::CADEntity_CSPtr> lc::StorageManager::entitiesByLayer ( Layer_CSPtr  layer) const
pure virtual

Implemented in lc::StorageManagerImpl.

virtual entity::CADEntity_CSPtr lc::StorageManager::entityByID ( ID_DATATYPE  id) const
pure virtual

Implemented in lc::StorageManagerImpl.

virtual EntityContainer<entity::CADEntity_CSPtr>& lc::StorageManager::entityContainer ( )
pure virtual

entityContainer return a copy of all entities managed within the storage manager

Returns

Implemented in lc::StorageManagerImpl.

virtual void lc::StorageManager::insertEntity ( entity::CADEntity_CSPtr  )
pure virtual

Implemented in lc::StorageManagerImpl.

virtual void lc::StorageManager::insertEntityContainer ( const EntityContainer< entity::CADEntity_CSPtr > &  )
pure virtual

Implemented in lc::StorageManagerImpl.

virtual Layer_CSPtr lc::StorageManager::layerByName ( const std::string &  layerName) const
pure virtual

layer Return a single document layer

Parameters
layerName
Returns

Implemented in lc::StorageManagerImpl.

virtual DxfLinePatternByValue_CSPtr lc::StorageManager::linePatternByName ( const std::string &  linePatternName) const
pure virtual

DxfLinePattern Return a line pattern by name from the document.

Parameters
linePatternName
Returns

Implemented in lc::StorageManagerImpl.

template<typename T >
const std::shared_ptr<const T> lc::StorageManager::metaDataTypeByName ( const std::string &  name) const
inline

Definition at line 82 of file storagemanager.h.

82  {
83  std::string n = T::LCMETANAME();
84  auto r = _metaDataTypeByName(T::LCMETANAME() + "_" + name);
85  // What do we do when we don't have a meta data set??
86  if (r!=nullptr) {
87  std::string myid = r->id();
88  auto dp = std::dynamic_pointer_cast<const T>(r);
89  return dp;
90  }
91  return nullptr;
92  };
virtual DocumentMetaType_CSPtr _metaDataTypeByName(const std::string &id) const
template<typename T >
const std::vector<std::shared_ptr<const T> > lc::StorageManager::metaTypes ( ) const
inline

Definition at line 95 of file storagemanager.h.

95  {
96  auto metaTypes = allMetaTypes();
97  std::vector<std::shared_ptr<T>> matches;
98 
99  for(auto metaType : metaTypes) {
100  auto castedMetaType = std::dynamic_pointer_cast<T>(metaType.second);
101  if(castedMetaType) {
102  matches.push_back(castedMetaType);
103  }
104  }
105 
106  return matches;
107  };
virtual std::map< std::string, DocumentMetaType_CSPtr, lc::StringHelper::cmpCaseInsensetive > allMetaTypes() const =0
const std::vector< std::shared_ptr< const T > > metaTypes() const
virtual void lc::StorageManager::optimise ( )
pure virtual

optimise the underlaying data store. Run this at a regular base, for example after each task

Implemented in lc::StorageManagerImpl.

virtual void lc::StorageManager::removeDocumentMetaType ( DocumentMetaType_CSPtr  dmt)
pure virtual

remove a document meta type from the document

Parameters
layerlayer to be added.

Implemented in lc::StorageManagerImpl.

virtual void lc::StorageManager::removeEntity ( entity::CADEntity_CSPtr  )
pure virtual

Implemented in lc::StorageManagerImpl.

virtual void lc::StorageManager::replaceDocumentMetaType ( DocumentMetaType_CSPtr  oldDmt,
DocumentMetaType_CSPtr  newDmt 
)
pure virtual

remove document meta type

Implemented in lc::StorageManagerImpl.


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