39 #ifndef __OPENFLUID_FLUIDX_ADVANCEDDOMAINDESCRIPTOR_HPP__ 40 #define __OPENFLUID_FLUIDX_ADVANCEDDOMAINDESCRIPTOR_HPP__ 46 #include <openfluid/core/TypeDefs.hpp> 59 class SpatialDomainDescriptor;
60 class SpatialUnitDescriptor;
61 class AttributesDescriptor;
75 std::map<openfluid::core::AttributeName_t, std::string*>
Attributes;
80 UnitDescriptor(&UnitDesc)
104 std::map<std::string, std::map<int, AdvancedUnitDescriptor> > m_Units;
106 std::map<std::string, std::set<openfluid::core::AttributeName_t> > m_AttrsNames;
108 void dispatchUnits();
110 void dispatchAttributes();
112 void checkUnitRelations()
const;
116 void checkAttributesConsistency()
const;
118 void dispatchEvents();
127 bool isSpatialUnitExist(
const std::string& ClassName,
int ID)
const;
132 const std::map<std::string, std::map<int, AdvancedUnitDescriptor> >& spatialUnitsByIdByClass()
const;
155 std::set<int> getIDsOfClass(
const std::string& ClassName)
const;
157 bool isClassNameExists(
const std::string& ClassName)
const;
162 std::set<std::string> getClassNames()
const;
164 unsigned int getUnitsCount()
const;
181 void deleteUnit(
const std::string& ClassName,
int ID);
190 std::string& attribute(
const std::string& ClassName,
int ID,
191 const std::string& AttrName);
197 std::set<std::string> getAttributesNames(
const std::string& ClassName)
const;
206 void addAttribute(
const std::string& ClassName,
const std::string& AttrName,
207 const std::string& DefaultValue);
215 void deleteAttribute(
const std::string& ClassName,
const std::string& AttrName);
225 void renameAttribute(
const std::string& ClassName,
const std::string& OldAttrName,
226 const std::string& NewAttrName);
263 const std::list<openfluid::core::UnitClassID_t>&
298 void removeParentChildRelation(
Definition: AdvancedDomainDescriptor.hpp:91
std::list< openfluid::fluidx::EventDescriptor * > EventsDescriptors
Definition: AdvancedDomainDescriptor.hpp:77
std::map< openfluid::core::AttributeName_t, std::string * > Attributes
Definition: AdvancedDomainDescriptor.hpp:75
Definition: SpatialUnitDescriptor.hpp:52
AdvancedUnitDescriptor(openfluid::fluidx::SpatialUnitDescriptor &UnitDesc)
Definition: AdvancedDomainDescriptor.hpp:79
Definition: AdvancedDomainDescriptor.hpp:68
openfluid::fluidx::SpatialUnitDescriptor * UnitDescriptor
Definition: AdvancedDomainDescriptor.hpp:73
std::pair< UnitsClass_t, UnitID_t > UnitClassID_t
Definition: TypeDefs.hpp:91
#define OPENFLUID_API
Definition: dllexport.hpp:87
std::map< std::string, std::map< int, AdvancedUnitDescriptor > > UnitsByIdByClass_t
Definition: AdvancedDomainDescriptor.hpp:95
Definition: EventDescriptor.hpp:55
unsigned int UnitID_t
Definition: TypeDefs.hpp:61
unsigned long long EventID_t
Definition: EventDescriptor.hpp:52
std::string UnitsClass_t
Definition: TypeDefs.hpp:71
Definition: SpatialDomainDescriptor.hpp:54
Definition: ApplicationException.hpp:47