39 #ifndef __OPENFLUID_UTILS_BINDING_HPP__ 40 #define __OPENFLUID_UTILS_BINDING_HPP__ 45 #include <QCoreApplication> 47 #include <openfluid/config.hpp> 73 #define STRING_TO_ALLOCATED_CARRAY(str,carray) \ 74 char* carray = (char*)malloc((str.length()+1)*sizeof(char)); \ 75 strcpy(carray,str.c_str()); 84 #define OPENFLUID_BINDING_DEFINE(erroutclass)\ 85 bool openfluid::utils::Binding::m_Initialized = false; \ 86 int openfluid::utils::Binding::m_qapp_argc = 1; \ 87 char openfluid::utils::Binding::m_qapp_arg0[] = "OpenFLUID_Binding"; \ 88 char* openfluid::utils::Binding::m_qapp_argv[] = { openfluid::utils::Binding::m_qapp_arg0 , NULL }; \ 89 std::string openfluid::utils::Binding::m_LastErrorMsg = ""; \ 90 const openfluid::utils::BindingAbstractOutErr* openfluid::utils::Binding::mp_OutErr = new erroutclass(); 126 static bool m_Initialized;
128 static int m_qapp_argc;
129 static char m_qapp_arg0[];
130 static char* m_qapp_argv[];
132 static std::string m_LastErrorMsg;
140 bool m_IsProject =
false;
141 bool m_IsDataset =
false;
143 std::string m_SourcePath =
"";
144 std::string m_OutputDir =
"";
146 bool m_IsSimulationRun =
false;
154 m_FluidXDesc(&m_FluidXListener)
174 std::map<openfluid::core::UnitsClass_t,unsigned int> getUnitsCountByClasses()
176 std::map<openfluid::core::UnitsClass_t,unsigned int> RetMap;
180 RetMap[UnitsByClass.first] = UnitsByClass.second.size();
207 std::setlocale(LC_NUMERIC,
"C");
209 m_Initialized =
true;
264 return m_LastErrorMsg.c_str();
322 const unsigned int Count = SimsPaths.size();
324 char** Paths = (
char**)malloc(Count*
sizeof(
char*));
326 for (
unsigned int i=0;i<Count;i++)
328 Paths[i] = (
char*)malloc(SimsPaths[i].size()+1);
329 std::copy(SimsPaths[i].begin(), SimsPaths[i].end(), Paths[i]);
330 Paths[i][SimsPaths[i].size()] =
'\0';
363 const unsigned int Count = ExtraSimsPaths.size();
365 char** Paths = (
char**)malloc(Count*
sizeof(
char*));
367 for (
unsigned int i=0;i<Count;i++)
369 Paths[i] = (
char*)malloc(ExtraSimsPaths[i].size()+1);
370 std::copy(ExtraSimsPaths[i].begin(), ExtraSimsPaths[i].end(), Paths[i]);
371 Paths[i][ExtraSimsPaths[i].size()] =
'\0';
432 const unsigned int Count = ObsPaths.size();
434 char** Paths = (
char**)malloc(Count*
sizeof(
char*));
436 for (
unsigned int i=0;i<Count;i++)
438 Paths[i] = (
char*)malloc(ObsPaths[i].size()+1);
439 std::copy(ObsPaths[i].begin(), ObsPaths[i].end(), Paths[i]);
440 Paths[i][ObsPaths[i].size()] =
'\0';
473 const unsigned int Count = ExtraObsPaths.size();
475 char** Paths = (
char**)malloc(Count*
sizeof(
char*));
477 for (
unsigned int i=0;i<Count;i++)
479 Paths[i] = (
char*)malloc(ExtraObsPaths[i].size()+1);
480 std::copy(ExtraObsPaths[i].begin(), ExtraObsPaths[i].end(), Paths[i]);
481 Paths[i][ExtraObsPaths[i].size()] =
'\0';
498 openfluid::base::RunContextManager::instance()->setOutputDir(std::string(Path));
521 openfluid::base::RunContextManager::instance()->setInputDir(std::string(Path));
522 Data->m_FluidXDesc.
loadFromDirectory(openfluid::base::RunContextManager::instance()->getInputDir());
524 Data->m_IsSimulationRun =
false;
526 if (!Data->m_IsProject)
528 Data->m_IsDataset =
true;
529 Data->m_SourcePath = openfluid::base::RunContextManager::instance()->getInputDir();
537 m_LastErrorMsg =
"OpenFLUID ERROR: " + std::string(E.
what()) +
"\n";
539 catch (std::bad_alloc& E)
541 m_LastErrorMsg =
"MEMORY ALLOCATION ERROR: " + std::string(E.what()) +
542 ". Possibly not enough memory available\n";
544 catch (std::exception& E)
546 m_LastErrorMsg =
"SYSTEM ERROR: " + std::string(E.what()) +
"\n";
550 m_LastErrorMsg =
"UNKNOWN ERROR\n";
553 Data->m_IsProject =
false;
554 Data->m_IsDataset =
false;
555 Data->m_SourcePath =
"";
580 if (!openfluid::base::RunContextManager::instance()->
openProject(std::string(Path)))
584 std::string(Path) +
" is not a correct project path");
587 Data->m_IsProject =
true;
588 Data->m_SourcePath = openfluid::base::RunContextManager::instance()->getProjectPath();
590 return Binding::openDataset(openfluid::base::RunContextManager::instance()->getInputDir().c_str());
594 m_LastErrorMsg =
"OpenFLUID ERROR: " + std::string(E.
what()) +
"\n";
596 catch (std::bad_alloc& E)
598 m_LastErrorMsg =
"MEMORY ALLOCATION ERROR: " + std::string(E.what()) +
599 ". Possibly not enough memory available\n";
601 catch (std::exception& E)
603 m_LastErrorMsg =
"SYSTEM ERROR: " + std::string(E.what()) +
"\n";
607 m_LastErrorMsg =
"UNKNOWN ERROR\n";
634 openfluid::machine::SimulatorPluginsManager::instance()->unloadAllWares();
637 std::unique_ptr<openfluid::machine::MachineListener> Listener;
641 Listener = std::make_unique<BindingVerboseMachineListener>(mp_OutErr);
645 Listener = std::make_unique<openfluid::machine::MachineListener>();
653 mp_OutErr->
printfOut(
"%s",
"Building spatial domain...");
669 mp_OutErr->
printfOut(
"%s",
"Building model instance...");
688 mp_OutErr->
printfOut(
"%s",
"Building monitoring instance...");
705 m_OutputDir = openfluid::base::RunContextManager::instance()->getOutputDir();
721 m_IsSimulationRun =
true;
727 m_LastErrorMsg =
"OpenFLUID ERROR: " + std::string(E.
what()) +
"\n";
729 catch (std::bad_alloc& E)
731 m_LastErrorMsg =
"MEMORY ALLOCATION ERROR: " + std::string(E.what()) +
732 ". Possibly not enough memory available\n";
734 catch (std::exception& E)
736 m_LastErrorMsg =
"SYSTEM ERROR: " + std::string(E.what()) +
"\n";
740 m_LastErrorMsg =
"UNKNOWN ERROR\n";
758 mp_OutErr->
printfOut(
"Spatial domain is made of %i spatial units\n",
763 mp_OutErr->
printfOut(
" - %i units of class %s\n",UnitsClass.second.size(),UnitsClass.first.c_str());
769 mp_OutErr->
printfOut(
"Model is made of %i simulation items\n",m_FluidXDesc.
model().
items().size());
771 for (
const auto& ModelInfos : m_FluidXDesc.
model().
items())
805 mp_OutErr->
printfOut(
" generator for variable %s on units %s\n",
812 mp_OutErr->
printfOut(
"Simulation period from %s to %s\n",
912 void setPeriod(
const char* BeginDate,
const char* EndDate)
914 std::string StrBeginDate(BeginDate);
915 std::string StrEndDate(EndDate);
940 std::string SimIDsStr(
"");
941 std::ostringstream ssSimIDs;
942 std::string sep =
"";
945 for (
const auto& Item : ModDesc.items())
949 ssSimIDs << sep << ModDesc.
getID(Item);
954 SimIDsStr = ssSimIDs.str();
971 std::string SimIDStr(SimID);
972 std::string ParamNamesStr(
"");
973 std::ostringstream ssParamNames;
974 std::string sep =
"";
991 ssParamNames << sep << Param.first;
995 ParamNamesStr = ssParamNames.str();
1014 std::string ParamValStr(
"");
1015 std::string SimIDStr(SimID);
1016 std::string ParamNameStr(ParamName);
1018 for (
const auto& ModelInfos : m_FluidXDesc.
model().
items())
1024 openfluid::ware::WareParams_t::iterator ItParam = Params.find(ParamNameStr);
1026 if (ItParam != Params.end())
1028 ParamValStr = (*ItParam).second;
1052 std::string SimIDStr(SimID);
1053 std::string ParamNameStr(ParamName);
1054 std::string ParamValStr(ParamVal);
1056 for (
auto& ModelInfos : m_FluidXDesc.
model().
items())
1061 ModelInfos->setParameter(ParamNameStr,ParamValStr);
1078 std::string SimIDStr(SimID);
1079 std::string ParamNameStr(ParamName);
1081 for (
auto& ModelInfos : m_FluidXDesc.
model().
items())
1086 ModelInfos->eraseParameter(ParamNameStr);
1104 std::string VarNameStr(VarName);
1105 std::string UnitsClassStr(UnitsClass);
1106 std::string ParamNamesStr(
"");
1107 std::ostringstream ssParamNames;
1108 std::string sep =
"";
1110 for (
const auto& Item : m_FluidXDesc.
model().
items())
1118 ssParamNames << sep << Param.first;
1125 ParamNamesStr = ssParamNames.str();
1145 std::string UnitsClassStr(UnitsClass);
1146 std::string VarNameStr(VarName);
1147 std::string ParamNameStr(ParamName);
1148 std::string ParamValStr(
"");
1150 for (
const auto& ModelInfos : m_FluidXDesc.
model().
items())
1157 openfluid::ware::WareParams_t::const_iterator ItParam = Params.find(ParamNameStr);
1159 if (ItParam != Params.end())
1161 ParamValStr = (*ItParam).second;
1185 void setGeneratorParam(
const char* UnitsClass,
const char* VarName,
const char* ParamName,
const char* ParamVal)
1187 std::string UnitsClassStr(UnitsClass);
1188 std::string VarNameStr(VarName);
1189 std::string ParamNameStr(ParamName);
1190 std::string ParamValStr(ParamVal);
1192 for (
auto& ItModelInfos : m_FluidXDesc.
model().
items())
1198 ItModelInfos->setParameter(ParamNameStr,ParamValStr);
1216 std::string VarNamesStr(
"");
1217 std::string UnitsClassStr(UnitsClass);
1218 std::ostringstream ssVarNames;
1219 std::string sep =
"";
1221 for (
const auto& Item : m_FluidXDesc.
model().
items())
1231 VarNamesStr = ssVarNames.str();
1248 std::string ParamNamesStr(
"");
1249 std::ostringstream ssParamNames;
1250 std::string sep =
"";
1254 ssParamNames << sep << Param.first;
1258 ParamNamesStr = ssParamNames.str();
1275 std::string ParamNameStr(ParamName);
1276 std::string ParamValStr(
"");
1279 openfluid::ware::WareParams_t::const_iterator ItParam = Params.find(ParamNameStr);
1281 if (ItParam != Params.end())
1283 ParamValStr = (*ItParam).second;
1304 std::string ParamNameStr(ParamName);
1305 std::string ParamValStr(ParamVal);
1321 std::string ParamNameStr(ParamName);
1337 std::string ObsIDsStr(
"");
1338 std::ostringstream ssObsIDs;
1339 std::string sep =
"";
1342 for (
auto& ItItem : MonDesc.
items())
1344 ssObsIDs << sep << MonDesc.
getID(ItItem);
1348 ObsIDsStr = ssObsIDs.str();
1365 std::string ObsIDStr(ObsID);
1366 std::string ParamNamesStr(
"");
1367 std::ostringstream ssParamNames;
1368 std::string sep =
"";
1385 ssParamNames << sep << Param.first;
1389 ParamNamesStr = ssParamNames.str();
1408 std::string ParamValStr(
"");
1409 std::string ObsIDStr(ObsID);
1410 std::string ParamNameStr(ParamName);
1418 openfluid::ware::WareParams_t::const_iterator ItParam = Params.find(ParamNameStr);
1420 if (ItParam != Params.end())
1422 ParamValStr = (*ItParam).second;
1446 std::string ObsIDStr(ObsID);
1447 std::string ParamNameStr(ParamName);
1448 std::string ParamValStr(ParamVal);
1455 ObsInfos->setParameter(ParamNameStr,ParamValStr);
1472 std::string ObsIDStr(ObsID);
1473 std::string ParamNameStr(ParamName);
1480 ObsInfos->eraseParameter(ParamNameStr);
1496 std::map<openfluid::core::UnitsClass_t,unsigned int> UnitsCountByClasses;
1497 UnitsCountByClasses = getUnitsCountByClasses();
1499 const unsigned int Count = UnitsCountByClasses.size();
1501 char** Classes = (
char**)malloc(Count*
sizeof(
char*));
1504 for (
auto& ItUCC : UnitsCountByClasses)
1506 Classes[i] = (
char*)malloc(ItUCC.first.size()+1);
1507 std::copy(ItUCC.first.begin(), ItUCC.first.end(), Classes[i]);
1508 Classes[i][ItUCC.first.size()] =
'\0';
1527 return getUnitsCountByClasses().size();
1547 IDs = (
int*)malloc(IDsOfClass.size()*
sizeof(int));
1549 for (
const auto& ID : IDsOfClass)
1591 std::string UnitClassStr(UnitsClass);
1592 std::string AttrNamesStr(
"");
1593 std::ostringstream ssAttrNames;
1594 std::string sep =
"";
1598 ssAttrNames << sep << Name;
1602 AttrNamesStr = ssAttrNames.str();
1620 std::string UnitsClassStr(UnitsClass);
1621 std::string AttrNameStr(AttrName);
1622 std::string AttrValStr(AttrVal);
1642 const char*
getAttribute(
const char* UnitsClass,
int UnitID,
const char* AttrName)
1644 std::string UnitClassStr(UnitsClass);
1645 std::string AttrNameStr(AttrName);
1646 std::string AttrValStr(
"");
1673 void setAttribute(
const char* UnitsClass,
int UnitID,
const char* AttrName,
const char* AttrVal)
1675 std::string UnitClassStr(UnitsClass);
1676 std::string AttrNameStr(AttrName);
1677 std::string AttrValStr(AttrVal);
1701 std::string UnitClassStr(UnitsClass);
1702 std::string AttrNameStr(AttrName);
1729 const char* UnitsClass,
const char* UnitsIDs,
1730 const char* VarName,
int Precision)
1732 std::string BindingNameStr(BindingName);
1733 std::string UnitsClassStr(UnitsClass);
1734 std::string UnitsIDsStr(UnitsIDs);
1735 std::string VarNameStr(VarName);
1753 std::ostringstream ssPrec;
1754 ssPrec << Precision;
1755 std::string PrecStr(ssPrec.str());
1760 ObsDesc.
setParameter(
"set."+BindingNameStr+UnitsClassStr+
".unitsclass",
1762 ObsDesc.
setParameter(
"set."+BindingNameStr+UnitsClassStr+
".unitsIDs",
1764 ObsDesc.
setParameter(
"set."+BindingNameStr+UnitsClassStr+
".vars",
1766 ObsDesc.
setParameter(
"set."+BindingNameStr+UnitsClassStr+
".format",
const char * getGeneratorParam(const char *UnitsClass, const char *VarName, const char *ParamName)
Definition: Binding.hpp:1143
static void buildMonitoringInstanceFromDescriptor(const openfluid::fluidx::MonitoringDescriptor &MonDesc, MonitoringInstance &MonInstance)
const char * getModelGlobalParam(const char *ParamName)
Definition: Binding.hpp:1273
int getDefaultDeltaT()
Definition: Binding.hpp:846
Definition: GeneratorDescriptor.hpp:54
openfluid::core::DateTime getBeginDate() const
Definition: RunConfigurationDescriptor.hpp:81
SetDescription_t & items()
Definition: WareSetDescriptor.hpp:90
openfluid::fluidx::CoupledModelDescriptor & model()
Definition: FluidXDescriptor.hpp:174
std::string getAttribute(const openfluid::core::UnitsClass_t &ClassName, const openfluid::core::UnitID_t &ID, const openfluid::core::AttributeName_t &AttrName) const
bool setFromISOString(const std::string &DateTimeStr)
void deleteAttribute(const openfluid::core::UnitsClass_t &ClassName, const std::string &AttrName)
void eraseGlobalParameter(const openfluid::ware::WareParamKey_t &Key)
Definition: WareSetDescriptor.hpp:146
Definition: ApplicationException.hpp:50
Definition: FluidXDescriptor.hpp:70
const char * getObserversIDs()
Definition: Binding.hpp:1335
openfluid::core::DateTime getEndDate() const
Definition: RunConfigurationDescriptor.hpp:91
openfluid::core::VariableName_t getVariableName() const
void setDefaultDeltaT(int DeltaT)
Definition: Binding.hpp:860
unsigned int getUnitsClassesCount()
Definition: Binding.hpp:1525
static char ** getExtraObserversPaths()
Definition: Binding.hpp:469
Definition: SimulationBlob.hpp:53
void createAttribute(const char *UnitsClass, const char *AttrName, const char *AttrVal)
Definition: Binding.hpp:1618
Class for management of date and time information.
Definition: DateTime.hpp:87
T & itemAt(unsigned int Index) const
Definition: WareSetDescriptor.hpp:198
Definition: IOListener.hpp:53
Definition: ObserverDescriptor.hpp:50
Class for easier binding with other programming languages.
Definition: Binding.hpp:122
openfluid::fluidx::SpatialDomainDescriptor & spatialDomain()
Definition: FluidXDescriptor.hpp:184
Definition: Exception.hpp:52
Definition: MonitoringInstance.hpp:58
void setSimulatorParam(const char *SimID, const char *ParamName, const char *ParamVal)
Definition: Binding.hpp:1050
Definition: StringValue.hpp:76
static void addExtraObserversDirs(const std::string &Paths)
static void setCurrentOutputDir(const char *Path)
Definition: Binding.hpp:496
Definition: Engine.hpp:75
static void addExtraSimulatorsDirs(const std::string &Paths)
openfluid::ware::WareParams_t & parameters()
static void buildModelInstanceFromDescriptor(const openfluid::fluidx::CoupledModelDescriptor &ModelDesc, ModelInstance &MInstance)
void removeSimulatorParam(const char *SimID, const char *ParamName)
Definition: Binding.hpp:1076
const char * getPeriodEndDate()
Definition: Binding.hpp:893
static void addExtraSimulatorsPaths(const char *Paths)
Definition: Binding.hpp:277
virtual void printfOut(const char *fmt,...) const =0
std::map< WareParamKey_t, WareParamValue_t > WareParams_t
Definition: TypeDefs.hpp:128
static unsigned int getSimulatorsPathsCount()
Definition: Binding.hpp:304
Definition: GeneratorDescriptor.hpp:54
static void init()
Definition: Binding.hpp:196
const char * getAttribute(const char *UnitsClass, int UnitID, const char *AttrName)
Definition: Binding.hpp:1642
Definition: FrameworkException.hpp:50
bool isType(openfluid::ware::WareType MIType) const
const char * getSimulationOutputDir()
Definition: Binding.hpp:831
SpatialUnitsByIDByClass_t & spatialUnits()
Definition: SpatialDomainDescriptor.hpp:101
Definition: GeneratorDescriptor.hpp:51
void removeModelGlobalParam(const char *ParamName)
Definition: Binding.hpp:1319
static void addExtraObserversPaths(const char *Paths)
Definition: Binding.hpp:387
int * getUnitsIDs(const char *UnitsClass)
Definition: Binding.hpp:1539
Definition: CoupledModelDescriptor.hpp:52
GeneratorMethod getGeneratorMethod() const
Definition: GeneratorDescriptor.hpp:54
const char * getAttributesNames(const char *UnitsClass)
Definition: Binding.hpp:1589
static Binding * openProject(const char *Path)
Definition: Binding.hpp:572
static void resetExtraSimulatorsDirs()
Definition: ModelInstance.hpp:65
Definition: SimulatorDescriptor.hpp:51
Definition: BindingVerboseMachineListener.hpp:50
static const char * getLastError()
Definition: Binding.hpp:262
static std::vector< std::string > getObserversDirs()
static void resetExtraObserversDirs()
Definition: MonitoringDescriptor.hpp:52
void setBeginDate(const openfluid::core::DateTime BeginDate)
Definition: RunConfigurationDescriptor.hpp:86
unsigned short int runSimulation(int IsVerbose=false)
Definition: Binding.hpp:622
const char * getGeneratorParamNames(const char *UnitsClass, const char *VarName)
Definition: Binding.hpp:1102
Definition: ApplicationException.hpp:47
void removeObserverParam(const char *ObsID, const char *ParamName)
Definition: Binding.hpp:1470
static char ** getExtraSimulatorsPaths()
Definition: Binding.hpp:359
void setParameter(const openfluid::ware::WareParamKey_t &Key, const openfluid::ware::WareParamValue_t &Value)
openfluid::ware::WareID_t getID(ModelItemDescriptor *Item) const
const char * getObserverParamNames(const char *ObsID)
Definition: Binding.hpp:1363
int findFirstItem(const openfluid::ware::WareID_t &ID) const
Definition: WareSetDescriptor.hpp:321
unsigned int getUnitsCount() const
static ExceptionContext computeContext(const std::string &AppName)
Definition: ApplicationException.hpp:76
Definition: BindingAbstractOutErr.hpp:46
void setModelGlobalParam(const char *ParamName, const char *ParamVal)
Definition: Binding.hpp:1302
Definition: ModelItemDescriptor.hpp:51
void setGlobalParameter(const openfluid::ware::WareParamKey_t &Key, const openfluid::ware::WareParamValue_t &Value)
Definition: WareSetDescriptor.hpp:110
openfluid::ware::WareParams_t getGlobalParameters() const
Definition: WareSetDescriptor.hpp:136
static char ** getSimulatorsPaths()
Definition: Binding.hpp:318
void setEndDate(const openfluid::core::DateTime EndDate)
Definition: RunConfigurationDescriptor.hpp:96
static const char * getVersion()
Definition: Binding.hpp:248
void printSimulationInfo()
Definition: Binding.hpp:754
static char ** getObserversPaths()
Definition: Binding.hpp:428
const char * getSimulatorParam(const char *SimID, const char *ParamName)
Definition: Binding.hpp:1012
#define STRING_TO_ALLOCATED_CARRAY(str, carray)
Definition: Binding.hpp:73
int getDeltaT() const
Definition: RunConfigurationDescriptor.hpp:101
void addAttribute(const openfluid::core::UnitsClass_t &ClassName, const std::string &AttrName, const std::string &DefaultValue, bool Check=true)
static void resetExtraSimulatorsPaths()
Definition: Binding.hpp:290
std::string getAsString(std::string Format) const
static void destroy(Binding *B)
Definition: Binding.hpp:235
void addVariablesExportAsCSV(const char *BindingName, const char *UnitsClass, const char *UnitsIDs, const char *VarName, int Precision)
Definition: Binding.hpp:1728
static unsigned int getExtraSimulatorsPathsCount()
Definition: Binding.hpp:345
const char * getSimulatorParamNames(const char *SimID)
Definition: Binding.hpp:969
Definition: Listener.hpp:54
const char * getSimulatorsIDs()
Definition: Binding.hpp:938
static void buildSimulationBlobFromDescriptors(const openfluid::fluidx::FluidXDescriptor &FluidXDesc, SimulationBlob &SimBlob)
static std::vector< std::string > getSimulatorsDirs()
static void resetExtraObserversPaths()
Definition: Binding.hpp:400
bool isClassNameExists(const openfluid::core::UnitsClass_t &ClassName) const
void setPeriod(const char *BeginDate, const char *EndDate)
Definition: Binding.hpp:912
std::string getAsISOString() const
void loadFromDirectory(const std::string &DirPath)
Definition: GeneratorDescriptor.hpp:54
void setGeneratorParam(const char *UnitsClass, const char *VarName, const char *ParamName, const char *ParamVal)
Definition: Binding.hpp:1185
static std::vector< std::string > getExtraObserversDirs()
Definition: Environment.hpp:408
void setAttribute(const char *UnitsClass, int UnitID, const char *AttrName, const char *AttrVal)
Definition: Binding.hpp:1673
#define INIT_OPENFLUID_APPLICATION(ac, av)
Definition: Init.hpp:54
unsigned int getUnitsIDsCount(const char *UnitsClass)
Definition: Binding.hpp:1569
openfluid::fluidx::MonitoringDescriptor & monitoring()
Definition: FluidXDescriptor.hpp:214
void removeAttribute(const char *UnitsClass, const char *AttrName)
Definition: Binding.hpp:1699
static unsigned int getObserversPathsCount()
Definition: Binding.hpp:414
openfluid::core::UnitsClass_t getUnitsClass() const
const char * what() const
Definition: Exception.hpp:87
const char * getPeriodBeginDate()
Definition: Binding.hpp:875
std::set< int > getIDsOfClass(const openfluid::core::UnitsClass_t &ClassName) const
openfluid::ware::WareID_t getID(ObserverDescriptor *Item) const
openfluid::fluidx::RunConfigurationDescriptor & runConfiguration()
Definition: FluidXDescriptor.hpp:194
const char * getObserverParam(const char *ObsID, const char *ParamName)
Definition: Binding.hpp:1406
void setDeltaT(const int DeltaT)
Definition: RunConfigurationDescriptor.hpp:106
static Binding * openDataset(const char *Path)
Definition: Binding.hpp:511
void setObserverParam(const char *ObsID, const char *ParamName, const char *ParamVal)
Definition: Binding.hpp:1444
std::set< std::string > getAttributesNames(const openfluid::core::UnitsClass_t &ClassName) const
const char * getGeneratorsVarNames(const char *UnitsClass)
Definition: Binding.hpp:1214
static Binding * make()
Definition: Binding.hpp:221
void appendItem(T *Item)
Definition: WareSetDescriptor.hpp:156
static unsigned int getExtraObserversPathsCount()
Definition: Binding.hpp:455
const char * getModelGlobalParamNames()
Definition: Binding.hpp:1246
char ** getUnitsClasses()
Definition: Binding.hpp:1494
void setAttribute(const openfluid::core::UnitsClass_t &ClassName, const openfluid::core::UnitID_t &ID, const openfluid::core::AttributeName_t &AttrName, const std::string &AttrValue)
static std::vector< std::string > getExtraSimulatorsDirs()
Definition: Environment.hpp:365