38 #ifndef __OPENFLUID_FLUIDX_ADVANCEDDOMAINDESCRIPTOR_HPP__ 39 #define __OPENFLUID_FLUIDX_ADVANCEDDOMAINDESCRIPTOR_HPP__ 45 #include <openfluid/core/TypeDefs.hpp> 58 class SpatialDomainDescriptor;
59 class SpatialUnitDescriptor;
60 class AttributesDescriptor;
74 std::map<openfluid::core::AttributeName_t, std::string*>
Attributes;
79 UnitDescriptor(&UnitDesc)
103 std::map<std::string, std::map<int, AdvancedUnitDescriptor> > m_Units;
105 std::map<std::string, std::set<openfluid::core::AttributeName_t> > m_AttrsNames;
107 void dispatchUnits();
109 void dispatchAttributes();
111 void checkUnitRelations()
const;
115 void checkAttributesConsistency()
const;
117 void dispatchEvents();
126 bool isSpatialUnitExist(
const std::string& ClassName,
int ID)
const;
131 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;
161 std::set<std::string> getClassNames()
const;
163 unsigned int getUnitsCount()
const;
180 void deleteUnit(
const std::string& ClassName,
int ID);
189 std::string& attribute(
const std::string& ClassName,
int ID,
190 const std::string& AttrName);
196 std::set<std::string> getAttributesNames(
const std::string& ClassName)
const;
205 void addAttribute(
const std::string& ClassName,
const std::string& AttrName,
206 const std::string& DefaultValue);
214 void deleteAttribute(
const std::string& ClassName,
const std::string& AttrName);
224 void renameAttribute(
const std::string& ClassName,
const std::string& OldAttrName,
225 const std::string& NewAttrName);
262 const std::list<openfluid::core::UnitClassID_t>&
297 void removeParentChildRelation(
Definition: AdvancedDomainDescriptor.hpp:67
std::string UnitsClass_t
Definition: TypeDefs.hpp:71
std::list< openfluid::fluidx::EventDescriptor * > EventsDescriptors
Definition: AdvancedDomainDescriptor.hpp:76
openfluid::fluidx::SpatialUnitDescriptor * UnitDescriptor
Definition: AdvancedDomainDescriptor.hpp:72
Definition: AdvancedDomainDescriptor.hpp:90
Definition: EventDescriptor.hpp:53
Definition: SpatialUnitDescriptor.hpp:51
std::map< std::string, std::map< int, AdvancedUnitDescriptor > > UnitsByIdByClass_t
Definition: AdvancedDomainDescriptor.hpp:94
Definition: ApplicationException.hpp:47
Definition: SpatialDomainDescriptor.hpp:53
std::map< openfluid::core::AttributeName_t, std::string * > Attributes
Definition: AdvancedDomainDescriptor.hpp:74
#define OPENFLUID_API
Definition: dllexport.hpp:87
std::pair< UnitsClass_t, UnitID_t > UnitClassID_t
Definition: TypeDefs.hpp:91
unsigned int UnitID_t
Definition: TypeDefs.hpp:61
unsigned long long EventID_t
Definition: EventDescriptor.hpp:51
AdvancedUnitDescriptor(openfluid::fluidx::SpatialUnitDescriptor &UnitDesc)
Definition: AdvancedDomainDescriptor.hpp:78