41 #ifndef __OPENFLUID_UTILS_BINDING_HPP__
42 #define __OPENFLUID_UTILS_BINDING_HPP__
47 #include <openfluid/config.hpp>
79 #define STRING_TO_ALLOCATED_CARRAY(str,carray) \
80 char* carray = (char*)malloc((str.length()+1)*sizeof(char)); \
81 strcpy(carray,str.c_str());
90 #define OPENFLUID_BINDING_DEFINE(erroutclass)\
91 bool openfluid::utils::Binding::m_Initialized = false; \
92 std::string openfluid::utils::Binding::m_LastErrorMsg = ""; \
93 const openfluid::utils::BindingAbstractOutErr* openfluid::utils::Binding::mp_OutErr = new erroutclass();
129 static bool m_Initialized;
131 static std::string m_LastErrorMsg;
137 bool m_IsProject =
false;
138 bool m_IsDataset =
false;
140 std::string m_SourcePath =
"";
141 std::string m_OutputDir =
"";
143 bool m_IsSimulationRun =
false;
166 static void unloadAllWares()
168 openfluid::machine::SimulatorRegistry::instance()->clear();
169 openfluid::machine::ObserverRegistry::instance()->clear();
170 openfluid::machine::SimulatorPluginsManager::instance()->unloadAll();
171 openfluid::machine::ObserverPluginsManager::instance()->unloadAll();
179 std::map<openfluid::core::UnitsClass_t,unsigned int> getUnitsCountByClasses()
181 std::map<openfluid::core::UnitsClass_t,unsigned int> RetMap;
185 RetMap[UnitsByClass.first] = UnitsByClass.second.size();
212 std::setlocale(LC_NUMERIC,
"C");
214 m_Initialized =
true;
269 return m_LastErrorMsg.c_str();
327 const unsigned int Count = SimsPaths.size();
329 char** Paths = (
char**)malloc(Count*
sizeof(
char*));
331 for (
unsigned int i=0;i<Count;i++)
333 Paths[i] = (
char*)malloc(SimsPaths[i].size()+1);
334 std::copy(SimsPaths[i].begin(), SimsPaths[i].end(), Paths[i]);
335 Paths[i][SimsPaths[i].size()] =
'\0';
368 const unsigned int Count = ExtraSimsPaths.size();
370 char** Paths = (
char**)malloc(Count*
sizeof(
char*));
372 for (
unsigned int i=0;i<Count;i++)
374 Paths[i] = (
char*)malloc(ExtraSimsPaths[i].size()+1);
375 std::copy(ExtraSimsPaths[i].begin(), ExtraSimsPaths[i].end(), Paths[i]);
376 Paths[i][ExtraSimsPaths[i].size()] =
'\0';
437 const unsigned int Count = ObsPaths.size();
439 char** Paths = (
char**)malloc(Count*
sizeof(
char*));
441 for (
unsigned int i=0;i<Count;i++)
443 Paths[i] = (
char*)malloc(ObsPaths[i].size()+1);
444 std::copy(ObsPaths[i].begin(), ObsPaths[i].end(), Paths[i]);
445 Paths[i][ObsPaths[i].size()] =
'\0';
478 const unsigned int Count = ExtraObsPaths.size();
480 char** Paths = (
char**)malloc(Count*
sizeof(
char*));
482 for (
unsigned int i=0;i<Count;i++)
484 Paths[i] = (
char*)malloc(ExtraObsPaths[i].size()+1);
485 std::copy(ExtraObsPaths[i].begin(), ExtraObsPaths[i].end(), Paths[i]);
486 Paths[i][ExtraObsPaths[i].size()] =
'\0';
503 openfluid::base::RunContextManager::instance()->setOutputDir(std::string(
Path));
526 openfluid::base::RunContextManager::instance()->setInputDir(std::string(
Path));
528 .
loadFromDirectory(openfluid::base::RunContextManager::instance()->getInputDir());
530 Data->m_IsSimulationRun =
false;
531 Data->m_IsDataset =
true;
532 Data->m_SourcePath = openfluid::base::RunContextManager::instance()->getInputDir();
539 m_LastErrorMsg =
"OpenFLUID ERROR: " + std::string(E.
what()) +
"\n";
541 catch (std::bad_alloc& E)
543 m_LastErrorMsg =
"MEMORY ALLOCATION ERROR: " + std::string(E.
what()) +
544 ". Possibly not enough memory available\n";
546 catch (std::exception& E)
548 m_LastErrorMsg =
"SYSTEM ERROR: " + std::string(E.
what()) +
"\n";
552 m_LastErrorMsg =
"UNKNOWN ERROR\n";
555 Data->m_IsProject =
false;
556 Data->m_IsDataset =
false;
557 Data->m_SourcePath =
"";
581 openfluid::base::RunContextManager::instance()->closeProject();
585 if (!openfluid::base::RunContextManager::instance()->
openProject(std::string(
Path)))
589 std::string(
Path) +
" is not a correct project path");
593 .
loadFromDirectory(openfluid::base::RunContextManager::instance()->getInputDir());
595 Data->m_IsSimulationRun =
false;
596 Data->m_IsProject =
true;
597 Data->m_SourcePath = openfluid::base::RunContextManager::instance()->getProjectPath();
604 m_LastErrorMsg =
"OpenFLUID ERROR: " + std::string(E.
what()) +
"\n";
606 catch (std::bad_alloc& E)
608 m_LastErrorMsg =
"MEMORY ALLOCATION ERROR: " + std::string(E.
what()) +
609 ". Possibly not enough memory available\n";
611 catch (std::exception& E)
613 m_LastErrorMsg =
"SYSTEM ERROR: " + std::string(E.
what()) +
"\n";
617 m_LastErrorMsg =
"UNKNOWN ERROR\n";
641 if (WithOriginData && !m_SourcePath.empty())
647 for (
const auto& F : FluidXToRemove)
661 m_LastErrorMsg =
"OpenFLUID ERROR: " + std::string(E.
what()) +
"\n";
663 catch (std::bad_alloc& E)
665 m_LastErrorMsg =
"MEMORY ALLOCATION ERROR: " + std::string(E.
what()) +
666 ". Possibly not enough memory available\n";
668 catch (std::exception& E)
670 m_LastErrorMsg =
"SYSTEM ERROR: " + std::string(E.
what()) +
"\n";
674 m_LastErrorMsg =
"UNKNOWN ERROR\n";
691 unsigned short int RetValue = 0;
701 std::unique_ptr<openfluid::machine::MachineListener> Listener;
706 Listener = std::make_unique<BindingVerboseMachineListener>(mp_OutErr);
710 Listener = std::make_unique<openfluid::machine::MachineListener>();
718 mp_OutErr->
printfOut(
"%s",
"Building spatial domain...");
734 mp_OutErr->
printfOut(
"%s",
"Building model instance...");
752 mp_OutErr->
printfOut(
"%s",
"Building monitoring instance...");
769 m_OutputDir = openfluid::base::RunContextManager::instance()->getOutputDir();
784 m_IsSimulationRun =
true;
790 m_LastErrorMsg =
"OpenFLUID ERROR: " + std::string(E.
what()) +
"\n";
792 catch (std::bad_alloc& E)
794 m_LastErrorMsg =
"MEMORY ALLOCATION ERROR: " + std::string(E.
what()) +
795 ". Possibly not enough memory available\n";
797 catch (std::exception& E)
799 m_LastErrorMsg =
"SYSTEM ERROR: " + std::string(E.
what()) +
"\n";
803 m_LastErrorMsg =
"UNKNOWN ERROR\n";
823 mp_OutErr->
printfOut(
"Spatial domain is made of %i spatial units\n",
828 mp_OutErr->
printfOut(
" - %i units of class %s\n",UnitsClass.second.size(),UnitsClass.first.c_str());
834 mp_OutErr->
printfOut(
"Model is made of %i simulation items\n",m_FluidXDesc.
model().
items().size());
836 for (
const auto& ModelInfos : m_FluidXDesc.
model().
items())
876 mp_OutErr->
printfOut(
" generator for variable %s on units %s\n",
883 mp_OutErr->
printfOut(
"Simulation period from %s to %s\n",
983 void setPeriod(
const char* BeginDate,
const char* EndDate)
985 std::string StrBeginDate(BeginDate);
986 std::string StrEndDate(EndDate);
1011 std::string SimIDsStr(
"");
1012 std::ostringstream ssSimIDs;
1013 std::string sep =
"";
1016 for (
const auto& Item : ModDesc.
items())
1020 ssSimIDs << sep << ModDesc.
getID(Item);
1025 SimIDsStr = ssSimIDs.str();
1042 std::string SimIDStr(SimID);
1043 std::string ParamNamesStr(
"");
1044 std::ostringstream ssParamNames;
1045 std::string sep =
"";
1062 ssParamNames << sep << Param.first;
1066 ParamNamesStr = ssParamNames.str();
1085 std::string ParamValStr(
"");
1086 std::string SimIDStr(SimID);
1087 std::string ParamNameStr(ParamName);
1089 for (
const auto& ModelInfos : m_FluidXDesc.
model().
items())
1095 openfluid::ware::WareParams_t::iterator ItParam = Params.find(ParamNameStr);
1097 if (ItParam != Params.end())
1099 ParamValStr = (*ItParam).second;
1123 std::string SimIDStr(SimID);
1124 std::string ParamNameStr(ParamName);
1125 std::string ParamValStr(ParamVal);
1127 for (
auto& ModelInfos : m_FluidXDesc.
model().
items())
1149 std::string SimIDStr(SimID);
1150 std::string ParamNameStr(ParamName);
1152 for (
auto& ModelInfos : m_FluidXDesc.
model().
items())
1175 std::string VarNameStr(VarName);
1176 std::string UnitsClassStr(UnitsClass);
1177 std::string ParamNamesStr(
"");
1178 std::ostringstream ssParamNames;
1179 std::string sep =
"";
1181 for (
const auto& Item : m_FluidXDesc.
model().
items())
1189 ssParamNames << sep << Param.first;
1196 ParamNamesStr = ssParamNames.str();
1216 std::string UnitsClassStr(UnitsClass);
1217 std::string VarNameStr(VarName);
1218 std::string ParamNameStr(ParamName);
1219 std::string ParamValStr(
"");
1221 for (
const auto& ModelInfos : m_FluidXDesc.
model().
items())
1228 openfluid::ware::WareParams_t::const_iterator ItParam = Params.find(ParamNameStr);
1230 if (ItParam != Params.end())
1232 ParamValStr = (*ItParam).second;
1256 void setGeneratorParam(
const char* UnitsClass,
const char* VarName,
const char* ParamName,
const char* ParamVal)
1258 std::string UnitsClassStr(UnitsClass);
1259 std::string VarNameStr(VarName);
1260 std::string ParamNameStr(ParamName);
1261 std::string ParamValStr(ParamVal);
1263 for (
auto& ItModelInfos : m_FluidXDesc.
model().
items())
1287 std::string VarNamesStr(
"");
1288 std::string UnitsClassStr(UnitsClass);
1289 std::ostringstream ssVarNames;
1290 std::string sep =
"";
1292 for (
const auto& Item : m_FluidXDesc.
model().
items())
1302 VarNamesStr = ssVarNames.str();
1319 std::string ParamNamesStr(
"");
1320 std::ostringstream ssParamNames;
1321 std::string sep =
"";
1325 ssParamNames << sep << Param.first;
1329 ParamNamesStr = ssParamNames.str();
1346 std::string ParamNameStr(ParamName);
1347 std::string ParamValStr(
"");
1350 openfluid::ware::WareParams_t::const_iterator ItParam = Params.find(ParamNameStr);
1352 if (ItParam != Params.end())
1354 ParamValStr = (*ItParam).second;
1375 std::string ParamNameStr(ParamName);
1376 std::string ParamValStr(ParamVal);
1392 std::string ParamNameStr(ParamName);
1408 std::string ObsIDsStr(
"");
1409 std::ostringstream ssObsIDs;
1410 std::string sep =
"";
1413 for (
auto& ItItem : MonDesc.
items())
1415 ssObsIDs << sep << MonDesc.
getID(ItItem);
1419 ObsIDsStr = ssObsIDs.str();
1436 std::string ObsIDStr(ObsID);
1437 std::string ParamNamesStr(
"");
1438 std::ostringstream ssParamNames;
1439 std::string sep =
"";
1456 ssParamNames << sep << Param.first;
1460 ParamNamesStr = ssParamNames.str();
1479 std::string ParamValStr(
"");
1480 std::string ObsIDStr(ObsID);
1481 std::string ParamNameStr(ParamName);
1489 openfluid::ware::WareParams_t::const_iterator ItParam = Params.find(ParamNameStr);
1491 if (ItParam != Params.end())
1493 ParamValStr = (*ItParam).second;
1517 std::string ObsIDStr(ObsID);
1518 std::string ParamNameStr(ParamName);
1519 std::string ParamValStr(ParamVal);
1543 std::string ObsIDStr(ObsID);
1544 std::string ParamNameStr(ParamName);
1567 std::map<openfluid::core::UnitsClass_t,unsigned int> UnitsCountByClasses;
1568 UnitsCountByClasses = getUnitsCountByClasses();
1570 const unsigned int Count = UnitsCountByClasses.size();
1572 char** Classes = (
char**)malloc(Count*
sizeof(
char*));
1575 for (
auto& ItUCC : UnitsCountByClasses)
1577 Classes[i] = (
char*)malloc(ItUCC.first.size()+1);
1578 std::copy(ItUCC.first.begin(), ItUCC.first.end(), Classes[i]);
1579 Classes[i][ItUCC.first.size()] =
'\0';
1598 return getUnitsCountByClasses().size();
1618 IDs = (
int*)malloc(IDsOfClass.size()*
sizeof(int));
1620 for (
const auto& ID : IDsOfClass)
1662 std::string UnitClassStr(UnitsClass);
1663 std::string AttrNamesStr(
"");
1664 std::ostringstream ssAttrNames;
1665 std::string sep =
"";
1669 ssAttrNames << sep << Name;
1673 AttrNamesStr = ssAttrNames.str();
1691 std::string UnitsClassStr(UnitsClass);
1692 std::string AttrNameStr(AttrName);
1693 std::string AttrValStr(AttrVal);
1713 const char*
getAttribute(
const char* UnitsClass,
int UnitID,
const char* AttrName)
1715 std::string UnitClassStr(UnitsClass);
1716 std::string AttrNameStr(AttrName);
1717 std::string AttrValStr(
"");
1744 void setAttribute(
const char* UnitsClass,
int UnitID,
const char* AttrName,
const char* AttrVal)
1746 std::string UnitClassStr(UnitsClass);
1747 std::string AttrNameStr(AttrName);
1748 std::string AttrValStr(AttrVal);
1772 std::string UnitClassStr(UnitsClass);
1773 std::string AttrNameStr(AttrName);
1800 const char* UnitsClass,
const char* UnitsIDs,
1801 const char* VarName,
int Precision)
1803 std::string BindingNameStr(BindingName);
1804 std::string UnitsClassStr(UnitsClass);
1805 std::string UnitsIDsStr(UnitsIDs);
1806 std::string VarNameStr(VarName);
1824 std::ostringstream ssPrec;
1825 ssPrec << Precision;
1826 std::string PrecStr(ssPrec.str());
1831 ObsDesc.
setParameter(
"set."+BindingNameStr+UnitsClassStr+
".unitsclass",
1833 ObsDesc.
setParameter(
"set."+BindingNameStr+UnitsClassStr+
".unitsIDs",
1835 ObsDesc.
setParameter(
"set."+BindingNameStr+UnitsClassStr+
".vars",
1837 ObsDesc.
setParameter(
"set."+BindingNameStr+UnitsClassStr+
".format",
#define STRING_TO_ALLOCATED_CARRAY(str, carray)
Definition: Binding.hpp:79
#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:402
static void addExtraObserversDirs(const std::string &Paths)
static void resetExtraObserversDirs()
static std::vector< std::string > getExtraSimulatorsDirs()
Definition: Environment.hpp:359
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:126
static const char * getVersion()
Definition: Binding.hpp:253
const char * getModelGlobalParam(const char *ParamName)
Definition: Binding.hpp:1344
const char * getSimulationOutputDir()
Definition: Binding.hpp:902
static void resetExtraSimulatorsPaths()
Definition: Binding.hpp:295
static Binding * openDataset(const char *Path)
Definition: Binding.hpp:516
void removeModelGlobalParam(const char *ParamName)
Definition: Binding.hpp:1390
void setGeneratorParam(const char *UnitsClass, const char *VarName, const char *ParamName, const char *ParamVal)
Definition: Binding.hpp:1256
const char * getSimulatorParam(const char *SimID, const char *ParamName)
Definition: Binding.hpp:1083
const char * getPeriodBeginDate()
Definition: Binding.hpp:946
static unsigned int getExtraSimulatorsPathsCount()
Definition: Binding.hpp:350
const char * getPeriodEndDate()
Definition: Binding.hpp:964
const char * getAttributesNames(const char *UnitsClass)
Definition: Binding.hpp:1660
const char * getAttribute(const char *UnitsClass, int UnitID, const char *AttrName)
Definition: Binding.hpp:1713
static void init()
Definition: Binding.hpp:201
static unsigned int getSimulatorsPathsCount()
Definition: Binding.hpp:309
static void addExtraSimulatorsPaths(const char *Paths)
Definition: Binding.hpp:282
void setDefaultDeltaT(int DeltaT)
Definition: Binding.hpp:931
void setAttribute(const char *UnitsClass, int UnitID, const char *AttrName, const char *AttrVal)
Definition: Binding.hpp:1744
static void setCurrentOutputDir(const char *Path)
Definition: Binding.hpp:501
unsigned int getUnitsClassesCount()
Definition: Binding.hpp:1596
const char * getGeneratorParamNames(const char *UnitsClass, const char *VarName)
Definition: Binding.hpp:1173
static Binding * make()
Definition: Binding.hpp:226
const char * getObserverParamNames(const char *ObsID)
Definition: Binding.hpp:1434
const char * getGeneratorParam(const char *UnitsClass, const char *VarName, const char *ParamName)
Definition: Binding.hpp:1214
static void resetExtraObserversPaths()
Definition: Binding.hpp:405
const char * getSimulatorParamNames(const char *SimID)
Definition: Binding.hpp:1040
unsigned int getUnitsIDsCount(const char *UnitsClass)
Definition: Binding.hpp:1640
void removeObserverParam(const char *ObsID, const char *ParamName)
Definition: Binding.hpp:1541
char ** getUnitsClasses()
Definition: Binding.hpp:1565
const char * getObserversIDs()
Definition: Binding.hpp:1406
void setPeriod(const char *BeginDate, const char *EndDate)
Definition: Binding.hpp:983
static char ** getSimulatorsPaths()
Definition: Binding.hpp:323
const char * getModelGlobalParamNames()
Definition: Binding.hpp:1317
void setModelGlobalParam(const char *ParamName, const char *ParamVal)
Definition: Binding.hpp:1373
void removeAttribute(const char *UnitsClass, const char *AttrName)
Definition: Binding.hpp:1770
static const char * getLastError()
Definition: Binding.hpp:267
static void addExtraObserversPaths(const char *Paths)
Definition: Binding.hpp:392
int getDefaultDeltaT()
Definition: Binding.hpp:917
static Binding * openProject(const char *Path)
Definition: Binding.hpp:574
static char ** getObserversPaths()
Definition: Binding.hpp:433
void setSimulatorParam(const char *SimID, const char *ParamName, const char *ParamVal)
Definition: Binding.hpp:1121
int writeDataset(const char *Path, bool WithOriginData=false)
Definition: Binding.hpp:637
void createAttribute(const char *UnitsClass, const char *AttrName, const char *AttrVal)
Definition: Binding.hpp:1689
void printSimulationInfo()
Definition: Binding.hpp:819
const char * getObserverParam(const char *ObsID, const char *ParamName)
Definition: Binding.hpp:1477
static void destroy(Binding *B)
Definition: Binding.hpp:240
const char * getSimulatorsIDs()
Definition: Binding.hpp:1009
static char ** getExtraSimulatorsPaths()
Definition: Binding.hpp:364
static unsigned int getObserversPathsCount()
Definition: Binding.hpp:419
unsigned short int runSimulation(int IsVerbose=false)
Definition: Binding.hpp:689
const char * getGeneratorsVarNames(const char *UnitsClass)
Definition: Binding.hpp:1285
static unsigned int getExtraObserversPathsCount()
Definition: Binding.hpp:460
void removeSimulatorParam(const char *SimID, const char *ParamName)
Definition: Binding.hpp:1147
void setObserverParam(const char *ObsID, const char *ParamName, const char *ParamVal)
Definition: Binding.hpp:1515
static char ** getExtraObserversPaths()
Definition: Binding.hpp:474
void addVariablesExportAsCSV(const char *BindingName, const char *UnitsClass, const char *UnitsIDs, const char *VarName, int Precision)
Definition: Binding.hpp:1799
int * getUnitsIDs(const char *UnitsClass)
Definition: Binding.hpp:1610
std::map< WareParamKey_t, WareParamValue_t > WareParams_t
Definition: TypeDefs.hpp:146
Definition: ApplicationException.hpp:47