38 #ifndef __OPENFLUID_FLUIDX_ADVANCEDDOMAINDESCRIPTOR_HPP__
39 #define __OPENFLUID_FLUIDX_ADVANCEDDOMAINDESCRIPTOR_HPP__
41 #include <openfluid/core/TypeDefs.hpp>
56 class SpatialDomainDescriptor;
57 class SpatialUnitDescriptor;
58 class AttributesDescriptor;
72 std::map<openfluid::core::AttributeName_t, std::string*>
Attributes;
77 UnitDescriptor(&UnitDesc)
101 std::map<std::string, std::map<int, AdvancedUnitDescriptor> > m_Units;
103 std::map<std::string, std::set<openfluid::core::AttributeName_t> > m_AttrsNames;
105 void dispatchUnits();
107 void dispatchAttributes();
109 void checkUnitRelations()
const;
113 void checkAttributesConsistency()
const;
115 void dispatchEvents();
124 bool isSpatialUnitExist(
const std::string& ClassName,
int ID)
const;
130 const std::map<std::string, std::map<int, AdvancedUnitDescriptor> >& spatialUnitsByIdByClass()
const;
154 std::set<int> getIDsOfClass(
const std::string& ClassName)
const;
156 bool isClassNameExists(
const std::string& ClassName)
const;
162 std::set<std::string> getClassNames()
const;
164 unsigned int getUnitsCount()
const;
182 void deleteUnit(
const std::string& ClassName,
int ID);
191 std::string& attribute(
const std::string& ClassName,
int ID,
192 const std::string& AttrName);
199 std::set<std::string> getAttributesNames(
const std::string& ClassName)
const;
208 void addAttribute(
const std::string& ClassName,
const std::string& AttrName,
209 const std::string& DefaultValue);
217 void deleteAttribute(
const std::string& ClassName,
const std::string& AttrName);
227 void renameAttribute(
const std::string& ClassName,
const std::string& OldAttrName,
228 const std::string& NewAttrName);
265 const std::list<openfluid::core::UnitClassID_t>&
300 void removeParentChildRelation(
std::list< openfluid::fluidx::EventDescriptor * > EventsDescriptors
Definition: AdvancedDomainDescriptor.hpp:74
unsigned int UnitID_t
Definition: TypeDefs.hpp:61
Definition: SpatialUnitDescriptor.hpp:51
Definition: EventDescriptor.hpp:53
AdvancedUnitDescriptor(openfluid::fluidx::SpatialUnitDescriptor &UnitDesc)
Definition: AdvancedDomainDescriptor.hpp:76
openfluid::fluidx::SpatialUnitDescriptor * UnitDescriptor
Definition: AdvancedDomainDescriptor.hpp:70
std::string UnitsClass_t
Definition: TypeDefs.hpp:71
std::map< std::string, std::map< int, AdvancedUnitDescriptor > > UnitsByIdByClass_t
Definition: AdvancedDomainDescriptor.hpp:92
Definition: AdvancedDomainDescriptor.hpp:65
std::map< openfluid::core::AttributeName_t, std::string * > Attributes
Definition: AdvancedDomainDescriptor.hpp:72
unsigned long long EventID_t
Definition: EventDescriptor.hpp:51
std::pair< UnitsClass_t, UnitID_t > UnitClassID_t
Definition: TypeDefs.hpp:91
Definition: AdvancedDomainDescriptor.hpp:88
#define OPENFLUID_API
Definition: dllexport.hpp:87
Definition: SpatialDomainDescriptor.hpp:53