39 #ifndef __OPENFLUID_UTILS_BINDING_HPP__
40 #define __OPENFLUID_UTILS_BINDING_HPP__
45 #include <openfluid/config.hpp>
77 #define STRING_TO_ALLOCATED_CARRAY(str,carray) \
78 char* carray = (char*)malloc((str.length()+1)*sizeof(char)); \
79 strcpy(carray,str.c_str());
88 #define OPENFLUID_BINDING_DEFINE(erroutclass)\
89 bool openfluid::utils::Binding::m_Initialized = false; \
90 std::string openfluid::utils::Binding::m_LastErrorMsg = ""; \
91 const openfluid::utils::BindingAbstractOutErr* openfluid::utils::Binding::mp_OutErr = new erroutclass();
127 static bool m_Initialized;
129 static std::string m_LastErrorMsg;
135 bool m_IsProject =
false;
136 bool m_IsDataset =
false;
138 std::string m_SourcePath =
"";
139 std::string m_OutputDir =
"";
141 bool m_IsSimulationRun =
false;
164 static void unloadAllWares()
166 openfluid::machine::SimulatorRegistry::instance()->clear();
167 openfluid::machine::ObserverRegistry::instance()->clear();
168 openfluid::machine::SimulatorPluginsManager::instance()->unloadAll();
169 openfluid::machine::ObserverPluginsManager::instance()->unloadAll();
177 std::map<openfluid::core::UnitsClass_t,unsigned int> getUnitsCountByClasses()
179 std::map<openfluid::core::UnitsClass_t,unsigned int> RetMap;
183 RetMap[UnitsByClass.first] = UnitsByClass.second.size();
210 std::setlocale(LC_NUMERIC,
"C");
212 m_Initialized =
true;
267 return m_LastErrorMsg.c_str();
325 const unsigned int Count = SimsPaths.size();
327 char** Paths = (
char**)malloc(Count*
sizeof(
char*));
329 for (
unsigned int i=0;i<Count;i++)
331 Paths[i] = (
char*)malloc(SimsPaths[i].size()+1);
332 std::copy(SimsPaths[i].begin(), SimsPaths[i].end(), Paths[i]);
333 Paths[i][SimsPaths[i].size()] =
'\0';
366 const unsigned int Count = ExtraSimsPaths.size();
368 char** Paths = (
char**)malloc(Count*
sizeof(
char*));
370 for (
unsigned int i=0;i<Count;i++)
372 Paths[i] = (
char*)malloc(ExtraSimsPaths[i].size()+1);
373 std::copy(ExtraSimsPaths[i].begin(), ExtraSimsPaths[i].end(), Paths[i]);
374 Paths[i][ExtraSimsPaths[i].size()] =
'\0';
435 const unsigned int Count = ObsPaths.size();
437 char** Paths = (
char**)malloc(Count*
sizeof(
char*));
439 for (
unsigned int i=0;i<Count;i++)
441 Paths[i] = (
char*)malloc(ObsPaths[i].size()+1);
442 std::copy(ObsPaths[i].begin(), ObsPaths[i].end(), Paths[i]);
443 Paths[i][ObsPaths[i].size()] =
'\0';
476 const unsigned int Count = ExtraObsPaths.size();
478 char** Paths = (
char**)malloc(Count*
sizeof(
char*));
480 for (
unsigned int i=0;i<Count;i++)
482 Paths[i] = (
char*)malloc(ExtraObsPaths[i].size()+1);
483 std::copy(ExtraObsPaths[i].begin(), ExtraObsPaths[i].end(), Paths[i]);
484 Paths[i][ExtraObsPaths[i].size()] =
'\0';
501 openfluid::base::RunContextManager::instance()->setOutputDir(std::string(
Path));
524 openfluid::base::RunContextManager::instance()->setInputDir(std::string(
Path));
526 .
loadFromDirectory(openfluid::base::RunContextManager::instance()->getInputDir());
528 Data->m_IsSimulationRun =
false;
529 Data->m_IsDataset =
true;
530 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 =
"";
582 if (!openfluid::base::RunContextManager::instance()->
openProject(std::string(
Path)))
586 std::string(
Path) +
" is not a correct project path");
590 .
loadFromDirectory(openfluid::base::RunContextManager::instance()->getInputDir());
592 Data->m_IsSimulationRun =
false;
593 Data->m_IsProject =
true;
594 Data->m_SourcePath = openfluid::base::RunContextManager::instance()->getProjectPath();
601 m_LastErrorMsg =
"OpenFLUID ERROR: " + std::string(E.
what()) +
"\n";
603 catch (std::bad_alloc& E)
605 m_LastErrorMsg =
"MEMORY ALLOCATION ERROR: " + std::string(E.
what()) +
606 ". Possibly not enough memory available\n";
608 catch (std::exception& E)
610 m_LastErrorMsg =
"SYSTEM ERROR: " + std::string(E.
what()) +
"\n";
614 m_LastErrorMsg =
"UNKNOWN ERROR\n";
638 if (WithOriginData && !m_SourcePath.empty())
644 for (
const auto& F : FluidXToRemove)
658 m_LastErrorMsg =
"OpenFLUID ERROR: " + std::string(E.
what()) +
"\n";
660 catch (std::bad_alloc& E)
662 m_LastErrorMsg =
"MEMORY ALLOCATION ERROR: " + std::string(E.
what()) +
663 ". Possibly not enough memory available\n";
665 catch (std::exception& E)
667 m_LastErrorMsg =
"SYSTEM ERROR: " + std::string(E.
what()) +
"\n";
671 m_LastErrorMsg =
"UNKNOWN ERROR\n";
688 unsigned short int RetValue = 0;
698 std::unique_ptr<openfluid::machine::MachineListener> Listener;
703 Listener = std::make_unique<BindingVerboseMachineListener>(mp_OutErr);
707 Listener = std::make_unique<openfluid::machine::MachineListener>();
715 mp_OutErr->
printfOut(
"%s",
"Building spatial domain...");
731 mp_OutErr->
printfOut(
"%s",
"Building model instance...");
749 mp_OutErr->
printfOut(
"%s",
"Building monitoring instance...");
766 m_OutputDir = openfluid::base::RunContextManager::instance()->getOutputDir();
781 m_IsSimulationRun =
true;
787 m_LastErrorMsg =
"OpenFLUID ERROR: " + std::string(E.
what()) +
"\n";
789 catch (std::bad_alloc& E)
791 m_LastErrorMsg =
"MEMORY ALLOCATION ERROR: " + std::string(E.
what()) +
792 ". Possibly not enough memory available\n";
794 catch (std::exception& E)
796 m_LastErrorMsg =
"SYSTEM ERROR: " + std::string(E.
what()) +
"\n";
800 m_LastErrorMsg =
"UNKNOWN ERROR\n";
820 mp_OutErr->
printfOut(
"Spatial domain is made of %i spatial units\n",
825 mp_OutErr->
printfOut(
" - %i units of class %s\n",UnitsClass.second.size(),UnitsClass.first.c_str());
831 mp_OutErr->
printfOut(
"Model is made of %i simulation items\n",m_FluidXDesc.
model().
items().size());
833 for (
const auto& ModelInfos : m_FluidXDesc.
model().
items())
867 mp_OutErr->
printfOut(
" generator for variable %s on units %s\n",
874 mp_OutErr->
printfOut(
"Simulation period from %s to %s\n",
974 void setPeriod(
const char* BeginDate,
const char* EndDate)
976 std::string StrBeginDate(BeginDate);
977 std::string StrEndDate(EndDate);
1002 std::string SimIDsStr(
"");
1003 std::ostringstream ssSimIDs;
1004 std::string sep =
"";
1007 for (
const auto& Item : ModDesc.
items())
1011 ssSimIDs << sep << ModDesc.
getID(Item);
1016 SimIDsStr = ssSimIDs.str();
1033 std::string SimIDStr(SimID);
1034 std::string ParamNamesStr(
"");
1035 std::ostringstream ssParamNames;
1036 std::string sep =
"";
1053 ssParamNames << sep << Param.first;
1057 ParamNamesStr = ssParamNames.str();
1076 std::string ParamValStr(
"");
1077 std::string SimIDStr(SimID);
1078 std::string ParamNameStr(ParamName);
1080 for (
const auto& ModelInfos : m_FluidXDesc.
model().
items())
1086 openfluid::ware::WareParams_t::iterator ItParam = Params.find(ParamNameStr);
1088 if (ItParam != Params.end())
1090 ParamValStr = (*ItParam).second;
1114 std::string SimIDStr(SimID);
1115 std::string ParamNameStr(ParamName);
1116 std::string ParamValStr(ParamVal);
1118 for (
auto& ModelInfos : m_FluidXDesc.
model().
items())
1140 std::string SimIDStr(SimID);
1141 std::string ParamNameStr(ParamName);
1143 for (
auto& ModelInfos : m_FluidXDesc.
model().
items())
1166 std::string VarNameStr(VarName);
1167 std::string UnitsClassStr(UnitsClass);
1168 std::string ParamNamesStr(
"");
1169 std::ostringstream ssParamNames;
1170 std::string sep =
"";
1172 for (
const auto& Item : m_FluidXDesc.
model().
items())
1180 ssParamNames << sep << Param.first;
1187 ParamNamesStr = ssParamNames.str();
1207 std::string UnitsClassStr(UnitsClass);
1208 std::string VarNameStr(VarName);
1209 std::string ParamNameStr(ParamName);
1210 std::string ParamValStr(
"");
1212 for (
const auto& ModelInfos : m_FluidXDesc.
model().
items())
1219 openfluid::ware::WareParams_t::const_iterator ItParam = Params.find(ParamNameStr);
1221 if (ItParam != Params.end())
1223 ParamValStr = (*ItParam).second;
1247 void setGeneratorParam(
const char* UnitsClass,
const char* VarName,
const char* ParamName,
const char* ParamVal)
1249 std::string UnitsClassStr(UnitsClass);
1250 std::string VarNameStr(VarName);
1251 std::string ParamNameStr(ParamName);
1252 std::string ParamValStr(ParamVal);
1254 for (
auto& ItModelInfos : m_FluidXDesc.
model().
items())
1278 std::string VarNamesStr(
"");
1279 std::string UnitsClassStr(UnitsClass);
1280 std::ostringstream ssVarNames;
1281 std::string sep =
"";
1283 for (
const auto& Item : m_FluidXDesc.
model().
items())
1293 VarNamesStr = ssVarNames.str();
1310 std::string ParamNamesStr(
"");
1311 std::ostringstream ssParamNames;
1312 std::string sep =
"";
1316 ssParamNames << sep << Param.first;
1320 ParamNamesStr = ssParamNames.str();
1337 std::string ParamNameStr(ParamName);
1338 std::string ParamValStr(
"");
1341 openfluid::ware::WareParams_t::const_iterator ItParam = Params.find(ParamNameStr);
1343 if (ItParam != Params.end())
1345 ParamValStr = (*ItParam).second;
1366 std::string ParamNameStr(ParamName);
1367 std::string ParamValStr(ParamVal);
1383 std::string ParamNameStr(ParamName);
1399 std::string ObsIDsStr(
"");
1400 std::ostringstream ssObsIDs;
1401 std::string sep =
"";
1404 for (
auto& ItItem : MonDesc.
items())
1406 ssObsIDs << sep << MonDesc.
getID(ItItem);
1410 ObsIDsStr = ssObsIDs.str();
1427 std::string ObsIDStr(ObsID);
1428 std::string ParamNamesStr(
"");
1429 std::ostringstream ssParamNames;
1430 std::string sep =
"";
1447 ssParamNames << sep << Param.first;
1451 ParamNamesStr = ssParamNames.str();
1470 std::string ParamValStr(
"");
1471 std::string ObsIDStr(ObsID);
1472 std::string ParamNameStr(ParamName);
1480 openfluid::ware::WareParams_t::const_iterator ItParam = Params.find(ParamNameStr);
1482 if (ItParam != Params.end())
1484 ParamValStr = (*ItParam).second;
1508 std::string ObsIDStr(ObsID);
1509 std::string ParamNameStr(ParamName);
1510 std::string ParamValStr(ParamVal);
1534 std::string ObsIDStr(ObsID);
1535 std::string ParamNameStr(ParamName);
1558 std::map<openfluid::core::UnitsClass_t,unsigned int> UnitsCountByClasses;
1559 UnitsCountByClasses = getUnitsCountByClasses();
1561 const unsigned int Count = UnitsCountByClasses.size();
1563 char** Classes = (
char**)malloc(Count*
sizeof(
char*));
1566 for (
auto& ItUCC : UnitsCountByClasses)
1568 Classes[i] = (
char*)malloc(ItUCC.first.size()+1);
1569 std::copy(ItUCC.first.begin(), ItUCC.first.end(), Classes[i]);
1570 Classes[i][ItUCC.first.size()] =
'\0';
1589 return getUnitsCountByClasses().size();
1609 IDs = (
int*)malloc(IDsOfClass.size()*
sizeof(int));
1611 for (
const auto& ID : IDsOfClass)
1653 std::string UnitClassStr(UnitsClass);
1654 std::string AttrNamesStr(
"");
1655 std::ostringstream ssAttrNames;
1656 std::string sep =
"";
1660 ssAttrNames << sep << Name;
1664 AttrNamesStr = ssAttrNames.str();
1682 std::string UnitsClassStr(UnitsClass);
1683 std::string AttrNameStr(AttrName);
1684 std::string AttrValStr(AttrVal);
1704 const char*
getAttribute(
const char* UnitsClass,
int UnitID,
const char* AttrName)
1706 std::string UnitClassStr(UnitsClass);
1707 std::string AttrNameStr(AttrName);
1708 std::string AttrValStr(
"");
1735 void setAttribute(
const char* UnitsClass,
int UnitID,
const char* AttrName,
const char* AttrVal)
1737 std::string UnitClassStr(UnitsClass);
1738 std::string AttrNameStr(AttrName);
1739 std::string AttrValStr(AttrVal);
1763 std::string UnitClassStr(UnitsClass);
1764 std::string AttrNameStr(AttrName);
1791 const char* UnitsClass,
const char* UnitsIDs,
1792 const char* VarName,
int Precision)
1794 std::string BindingNameStr(BindingName);
1795 std::string UnitsClassStr(UnitsClass);
1796 std::string UnitsIDsStr(UnitsIDs);
1797 std::string VarNameStr(VarName);
1815 std::ostringstream ssPrec;
1816 ssPrec << Precision;
1817 std::string PrecStr(ssPrec.str());
1822 ObsDesc.
setParameter(
"set."+BindingNameStr+UnitsClassStr+
".unitsclass",
1824 ObsDesc.
setParameter(
"set."+BindingNameStr+UnitsClassStr+
".unitsIDs",
1826 ObsDesc.
setParameter(
"set."+BindingNameStr+UnitsClassStr+
".vars",
1828 ObsDesc.
setParameter(
"set."+BindingNameStr+UnitsClassStr+
".format",
#define STRING_TO_ALLOCATED_CARRAY(str, carray)
Definition: Binding.hpp:77
#define INIT_OPENFLUID_APPLICATION()
Definition: Init.hpp:55
Definition: ApplicationException.hpp:51
static ExceptionContext computeContext(const std::string &AppName)
Definition: ApplicationException.hpp:76
static void resetExtraSimulatorsDirs()
static std::vector< std::string > getObserversDirs()
static void addExtraSimulatorsDirs(const std::string &Paths)
static std::vector< std::string > getSimulatorsDirs()
static std::vector< std::string > getExtraObserversDirs()
Definition: Environment.hpp:391
static void addExtraObserversDirs(const std::string &Paths)
static void resetExtraObserversDirs()
static std::vector< std::string > getExtraSimulatorsDirs()
Definition: Environment.hpp:348
Definition: Exception.hpp:53
const char * what() const
Definition: Exception.hpp:87
Definition: FrameworkException.hpp:51
Definition: IOListener.hpp:53
Class for management of date and time information.
Definition: DateTime.hpp:88
std::string getAsISOString() const
bool setFromISOString(const std::string &DateTimeStr)
std::string getAsString(const std::string &Format) const
Definition: StringValue.hpp:83
Definition: CoupledModelDescriptor.hpp:53
openfluid::ware::WareID_t getID(const ModelItemDescriptor *Item) const
Definition: FluidXDescriptor.hpp:60
openfluid::fluidx::SpatialDomainDescriptor & spatialDomain()
Definition: FluidXDescriptor.hpp:91
openfluid::fluidx::MonitoringDescriptor & monitoring()
Definition: FluidXDescriptor.hpp:121
openfluid::fluidx::CoupledModelDescriptor & model()
Definition: FluidXDescriptor.hpp:81
openfluid::fluidx::RunConfigurationDescriptor & runConfiguration()
Definition: FluidXDescriptor.hpp:101
Definition: FluidXIO.hpp:55
FluidXDescriptor loadFromDirectory(const std::string &DirPath)
void writeToManyFiles(const FluidXDescriptor &Desc, const std::string &DirPath) const
Definition: GeneratorDescriptor.hpp:56
GeneratorMethod getGeneratorMethod() const
openfluid::core::UnitsClass_t getUnitsClass() const
openfluid::core::VariableName_t getVariableName() const
Definition: ModelItemDescriptor.hpp:52
Definition: MonitoringDescriptor.hpp:53
openfluid::ware::WareID_t getID(const ObserverDescriptor *Item) const
Definition: ObserverDescriptor.hpp:51
openfluid::core::DateTime getEndDate() const
Definition: RunConfigurationDescriptor.hpp:91
void setEndDate(const openfluid::core::DateTime EndDate)
Definition: RunConfigurationDescriptor.hpp:96
openfluid::core::DateTime getBeginDate() const
Definition: RunConfigurationDescriptor.hpp:81
void setDeltaT(const int DeltaT)
Definition: RunConfigurationDescriptor.hpp:106
int getDeltaT() const
Definition: RunConfigurationDescriptor.hpp:101
void setBeginDate(const openfluid::core::DateTime BeginDate)
Definition: RunConfigurationDescriptor.hpp:86
Definition: SimulatorDescriptor.hpp:52
bool isClassNameExists(const openfluid::core::UnitsClass_t &ClassName) const
std::string getAttribute(const openfluid::core::UnitsClass_t &ClassName, const openfluid::core::UnitID_t &ID, const openfluid::core::AttributeName_t &AttrName) const
unsigned int getUnitsCount() const
SpatialUnitsByIDByClass_t & spatialUnits()
Definition: SpatialDomainDescriptor.hpp:101
std::set< std::string > getAttributesNames(const openfluid::core::UnitsClass_t &ClassName) const
void addAttribute(const openfluid::core::UnitsClass_t &ClassName, const std::string &AttrName, const std::string &DefaultValue, bool Check=true)
void setAttribute(const openfluid::core::UnitsClass_t &ClassName, const openfluid::core::UnitID_t &ID, const openfluid::core::AttributeName_t &AttrName, const std::string &AttrValue)
void deleteAttribute(const openfluid::core::UnitsClass_t &ClassName, const std::string &AttrName)
std::set< int > getIDsOfClass(const openfluid::core::UnitsClass_t &ClassName) const
openfluid::ware::WareParams_t & parameters()
openfluid::ware::WareParams_t getParameters() const
bool isType(openfluid::ware::WareType MIType) const
void setParameter(const openfluid::ware::WareParamKey_t &Key, const openfluid::ware::WareParamValue_t &Value)
void eraseParameter(const openfluid::ware::WareParamKey_t &Key)
int findFirstItem(const openfluid::ware::WareID_t &ID) const
Definition: WareSetDescriptor.hpp:321
T & itemAt(unsigned int Index) const
Definition: WareSetDescriptor.hpp:198
openfluid::ware::WareParams_t getGlobalParameters() const
Definition: WareSetDescriptor.hpp:136
void eraseGlobalParameter(const openfluid::ware::WareParamKey_t &Key)
Definition: WareSetDescriptor.hpp:146
void setGlobalParameter(const openfluid::ware::WareParamKey_t &Key, const openfluid::ware::WareParamValue_t &Value)
Definition: WareSetDescriptor.hpp:110
void appendItem(T *Item)
Definition: WareSetDescriptor.hpp:156
SetDescription_t & items()
Definition: WareSetDescriptor.hpp:90
Definition: Engine.hpp:79
static void buildMonitoringInstanceFromDescriptor(const openfluid::fluidx::MonitoringDescriptor &MonDesc, MonitoringInstance &MonInstance)
static void buildSimulationBlobFromDescriptors(const openfluid::fluidx::FluidXDescriptor &FluidXDesc, SimulationBlob &SimBlob)
static void buildModelInstanceFromDescriptor(const openfluid::fluidx::CoupledModelDescriptor &ModelDesc, ModelInstance &MInstance)
Definition: ModelInstance.hpp:66
Definition: MonitoringInstance.hpp:59
Definition: SimulationBlob.hpp:54
Definition: BindingAbstractOutErr.hpp:50
virtual void printfOut(const char *fmt,...) const =0
Definition: BindingVerboseMachineListener.hpp:51
Class for easier binding with other programming languages.
Definition: Binding.hpp:124
static const char * getVersion()
Definition: Binding.hpp:251
const char * getModelGlobalParam(const char *ParamName)
Definition: Binding.hpp:1335
const char * getSimulationOutputDir()
Definition: Binding.hpp:893
static void resetExtraSimulatorsPaths()
Definition: Binding.hpp:293
static Binding * openDataset(const char *Path)
Definition: Binding.hpp:514
void removeModelGlobalParam(const char *ParamName)
Definition: Binding.hpp:1381
void setGeneratorParam(const char *UnitsClass, const char *VarName, const char *ParamName, const char *ParamVal)
Definition: Binding.hpp:1247
const char * getSimulatorParam(const char *SimID, const char *ParamName)
Definition: Binding.hpp:1074
const char * getPeriodBeginDate()
Definition: Binding.hpp:937
static unsigned int getExtraSimulatorsPathsCount()
Definition: Binding.hpp:348
const char * getPeriodEndDate()
Definition: Binding.hpp:955
const char * getAttributesNames(const char *UnitsClass)
Definition: Binding.hpp:1651
const char * getAttribute(const char *UnitsClass, int UnitID, const char *AttrName)
Definition: Binding.hpp:1704
static void init()
Definition: Binding.hpp:199
static unsigned int getSimulatorsPathsCount()
Definition: Binding.hpp:307
static void addExtraSimulatorsPaths(const char *Paths)
Definition: Binding.hpp:280
void setDefaultDeltaT(int DeltaT)
Definition: Binding.hpp:922
void setAttribute(const char *UnitsClass, int UnitID, const char *AttrName, const char *AttrVal)
Definition: Binding.hpp:1735
static void setCurrentOutputDir(const char *Path)
Definition: Binding.hpp:499
unsigned int getUnitsClassesCount()
Definition: Binding.hpp:1587
const char * getGeneratorParamNames(const char *UnitsClass, const char *VarName)
Definition: Binding.hpp:1164
static Binding * make()
Definition: Binding.hpp:224
const char * getObserverParamNames(const char *ObsID)
Definition: Binding.hpp:1425
const char * getGeneratorParam(const char *UnitsClass, const char *VarName, const char *ParamName)
Definition: Binding.hpp:1205
static void resetExtraObserversPaths()
Definition: Binding.hpp:403
const char * getSimulatorParamNames(const char *SimID)
Definition: Binding.hpp:1031
unsigned int getUnitsIDsCount(const char *UnitsClass)
Definition: Binding.hpp:1631
void removeObserverParam(const char *ObsID, const char *ParamName)
Definition: Binding.hpp:1532
char ** getUnitsClasses()
Definition: Binding.hpp:1556
const char * getObserversIDs()
Definition: Binding.hpp:1397
void setPeriod(const char *BeginDate, const char *EndDate)
Definition: Binding.hpp:974
static char ** getSimulatorsPaths()
Definition: Binding.hpp:321
const char * getModelGlobalParamNames()
Definition: Binding.hpp:1308
void setModelGlobalParam(const char *ParamName, const char *ParamVal)
Definition: Binding.hpp:1364
void removeAttribute(const char *UnitsClass, const char *AttrName)
Definition: Binding.hpp:1761
static const char * getLastError()
Definition: Binding.hpp:265
static void addExtraObserversPaths(const char *Paths)
Definition: Binding.hpp:390
int getDefaultDeltaT()
Definition: Binding.hpp:908
static Binding * openProject(const char *Path)
Definition: Binding.hpp:572
static char ** getObserversPaths()
Definition: Binding.hpp:431
void setSimulatorParam(const char *SimID, const char *ParamName, const char *ParamVal)
Definition: Binding.hpp:1112
int writeDataset(const char *Path, bool WithOriginData=false)
Definition: Binding.hpp:634
void createAttribute(const char *UnitsClass, const char *AttrName, const char *AttrVal)
Definition: Binding.hpp:1680
void printSimulationInfo()
Definition: Binding.hpp:816
const char * getObserverParam(const char *ObsID, const char *ParamName)
Definition: Binding.hpp:1468
static void destroy(Binding *B)
Definition: Binding.hpp:238
const char * getSimulatorsIDs()
Definition: Binding.hpp:1000
static char ** getExtraSimulatorsPaths()
Definition: Binding.hpp:362
static unsigned int getObserversPathsCount()
Definition: Binding.hpp:417
unsigned short int runSimulation(int IsVerbose=false)
Definition: Binding.hpp:686
const char * getGeneratorsVarNames(const char *UnitsClass)
Definition: Binding.hpp:1276
static unsigned int getExtraObserversPathsCount()
Definition: Binding.hpp:458
void removeSimulatorParam(const char *SimID, const char *ParamName)
Definition: Binding.hpp:1138
void setObserverParam(const char *ObsID, const char *ParamName, const char *ParamVal)
Definition: Binding.hpp:1506
static char ** getExtraObserversPaths()
Definition: Binding.hpp:472
void addVariablesExportAsCSV(const char *BindingName, const char *UnitsClass, const char *UnitsIDs, const char *VarName, int Precision)
Definition: Binding.hpp:1790
int * getUnitsIDs(const char *UnitsClass)
Definition: Binding.hpp:1601
std::map< WareParamKey_t, WareParamValue_t > WareParams_t
Definition: TypeDefs.hpp:146
Definition: ApplicationException.hpp:47