39 #ifndef __OPENFLUID_UTILS_BINDING_HPP__ 40 #define __OPENFLUID_UTILS_BINDING_HPP__ 45 #include <QCoreApplication> 47 #include <openfluid/config.hpp> 76 #define STRING_TO_ALLOCATED_CARRAY(str,carray) \ 77 char* carray = (char*)malloc((str.length()+1)*sizeof(char)); \ 78 strcpy(carray,str.c_str()); 87 #define OPENFLUID_BINDING_DEFINE(erroutclass)\ 88 bool openfluid::utils::Binding::m_Initialized = false; \ 89 int openfluid::utils::Binding::m_qapp_argc = 1; \ 90 char openfluid::utils::Binding::m_qapp_arg0[] = "OpenFLUID_Binding"; \ 91 char* openfluid::utils::Binding::m_qapp_argv[] = { openfluid::utils::Binding::m_qapp_arg0 , NULL }; \ 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 int m_qapp_argc;
132 static char m_qapp_arg0[];
133 static char* m_qapp_argv[];
135 static std::string m_LastErrorMsg;
143 bool m_IsProject =
false;
144 bool m_IsDataset =
false;
146 std::string m_SourcePath =
"";
147 std::string m_OutputDir =
"";
149 bool m_IsSimulationRun =
false;
157 m_FluidXDesc(&m_FluidXListener)
177 static void unloadAllWares()
179 openfluid::machine::SimulatorPluginsManager::instance()->unloadAllWares();
180 openfluid::machine::ObserverPluginsManager::instance()->unloadAllWares();
188 std::map<openfluid::core::UnitsClass_t,unsigned int> getUnitsCountByClasses()
190 std::map<openfluid::core::UnitsClass_t,unsigned int> RetMap;
194 RetMap[UnitsByClass.first] = UnitsByClass.second.size();
221 std::setlocale(LC_NUMERIC,
"C");
223 m_Initialized =
true;
278 return m_LastErrorMsg.c_str();
336 const unsigned int Count = SimsPaths.size();
338 char** Paths = (
char**)malloc(Count*
sizeof(
char*));
340 for (
unsigned int i=0;i<Count;i++)
342 Paths[i] = (
char*)malloc(SimsPaths[i].size()+1);
343 std::copy(SimsPaths[i].begin(), SimsPaths[i].end(), Paths[i]);
344 Paths[i][SimsPaths[i].size()] =
'\0';
377 const unsigned int Count = ExtraSimsPaths.size();
379 char** Paths = (
char**)malloc(Count*
sizeof(
char*));
381 for (
unsigned int i=0;i<Count;i++)
383 Paths[i] = (
char*)malloc(ExtraSimsPaths[i].size()+1);
384 std::copy(ExtraSimsPaths[i].begin(), ExtraSimsPaths[i].end(), Paths[i]);
385 Paths[i][ExtraSimsPaths[i].size()] =
'\0';
446 const unsigned int Count = ObsPaths.size();
448 char** Paths = (
char**)malloc(Count*
sizeof(
char*));
450 for (
unsigned int i=0;i<Count;i++)
452 Paths[i] = (
char*)malloc(ObsPaths[i].size()+1);
453 std::copy(ObsPaths[i].begin(), ObsPaths[i].end(), Paths[i]);
454 Paths[i][ObsPaths[i].size()] =
'\0';
487 const unsigned int Count = ExtraObsPaths.size();
489 char** Paths = (
char**)malloc(Count*
sizeof(
char*));
491 for (
unsigned int i=0;i<Count;i++)
493 Paths[i] = (
char*)malloc(ExtraObsPaths[i].size()+1);
494 std::copy(ExtraObsPaths[i].begin(), ExtraObsPaths[i].end(), Paths[i]);
495 Paths[i][ExtraObsPaths[i].size()] =
'\0';
512 openfluid::base::RunContextManager::instance()->setOutputDir(std::string(Path));
533 openfluid::base::RunContextManager::instance()->setInputDir(std::string(Path));
534 Data->m_FluidXDesc.
loadFromDirectory(openfluid::base::RunContextManager::instance()->getInputDir());
536 Data->m_IsSimulationRun =
false;
537 Data->m_IsDataset =
true;
538 Data->m_SourcePath = openfluid::base::RunContextManager::instance()->getInputDir();
545 m_LastErrorMsg =
"OpenFLUID ERROR: " + std::string(E.
what()) +
"\n";
547 catch (std::bad_alloc& E)
549 m_LastErrorMsg =
"MEMORY ALLOCATION ERROR: " + std::string(E.what()) +
550 ". Possibly not enough memory available\n";
552 catch (std::exception& E)
554 m_LastErrorMsg =
"SYSTEM ERROR: " + std::string(E.what()) +
"\n";
558 m_LastErrorMsg =
"UNKNOWN ERROR\n";
561 Data->m_IsProject =
false;
562 Data->m_IsDataset =
false;
563 Data->m_SourcePath =
"";
588 if (!openfluid::base::RunContextManager::instance()->
openProject(std::string(Path)))
592 std::string(Path) +
" is not a correct project path");
595 Data->m_FluidXDesc.
loadFromDirectory(openfluid::base::RunContextManager::instance()->getInputDir());
597 Data->m_IsSimulationRun =
false;
598 Data->m_IsProject =
true;
599 Data->m_SourcePath = openfluid::base::RunContextManager::instance()->getProjectPath();
606 m_LastErrorMsg =
"OpenFLUID ERROR: " + std::string(E.
what()) +
"\n";
608 catch (std::bad_alloc& E)
610 m_LastErrorMsg =
"MEMORY ALLOCATION ERROR: " + std::string(E.what()) +
611 ". Possibly not enough memory available\n";
613 catch (std::exception& E)
615 m_LastErrorMsg =
"SYSTEM ERROR: " + std::string(E.what()) +
"\n";
619 m_LastErrorMsg =
"UNKNOWN ERROR\n";
643 if (WithOriginData && !m_SourcePath.empty())
650 for (
const auto& F : FluidXToRemove)
662 m_LastErrorMsg =
"OpenFLUID ERROR: " + std::string(E.
what()) +
"\n";
664 catch (std::bad_alloc& E)
666 m_LastErrorMsg =
"MEMORY ALLOCATION ERROR: " + std::string(E.what()) +
667 ". Possibly not enough memory available\n";
669 catch (std::exception& E)
671 m_LastErrorMsg =
"SYSTEM ERROR: " + std::string(E.what()) +
"\n";
675 m_LastErrorMsg =
"UNKNOWN ERROR\n";
692 unsigned short int RetValue = 0;
702 std::unique_ptr<openfluid::machine::MachineListener> Listener;
707 Listener = std::make_unique<BindingVerboseMachineListener>(mp_OutErr);
711 Listener = std::make_unique<openfluid::machine::MachineListener>();
719 mp_OutErr->
printfOut(
"%s",
"Building spatial domain...");
735 mp_OutErr->
printfOut(
"%s",
"Building model instance...");
754 mp_OutErr->
printfOut(
"%s",
"Building monitoring instance...");
771 m_OutputDir = openfluid::base::RunContextManager::instance()->getOutputDir();
787 m_IsSimulationRun =
true;
793 m_LastErrorMsg =
"OpenFLUID ERROR: " + std::string(E.
what()) +
"\n";
795 catch (std::bad_alloc& E)
797 m_LastErrorMsg =
"MEMORY ALLOCATION ERROR: " + std::string(E.what()) +
798 ". Possibly not enough memory available\n";
800 catch (std::exception& E)
802 m_LastErrorMsg =
"SYSTEM ERROR: " + std::string(E.what()) +
"\n";
806 m_LastErrorMsg =
"UNKNOWN ERROR\n";
826 mp_OutErr->
printfOut(
"Spatial domain is made of %i spatial units\n",
831 mp_OutErr->
printfOut(
" - %i units of class %s\n",UnitsClass.second.size(),UnitsClass.first.c_str());
837 mp_OutErr->
printfOut(
"Model is made of %i simulation items\n",m_FluidXDesc.
model().
items().size());
839 for (
const auto& ModelInfos : m_FluidXDesc.
model().
items())
873 mp_OutErr->
printfOut(
" generator for variable %s on units %s\n",
880 mp_OutErr->
printfOut(
"Simulation period from %s to %s\n",
980 void setPeriod(
const char* BeginDate,
const char* EndDate)
982 std::string StrBeginDate(BeginDate);
983 std::string StrEndDate(EndDate);
1008 std::string SimIDsStr(
"");
1009 std::ostringstream ssSimIDs;
1010 std::string sep =
"";
1013 for (
const auto& Item : ModDesc.items())
1017 ssSimIDs << sep << ModDesc.
getID(Item);
1022 SimIDsStr = ssSimIDs.str();
1039 std::string SimIDStr(SimID);
1040 std::string ParamNamesStr(
"");
1041 std::ostringstream ssParamNames;
1042 std::string sep =
"";
1059 ssParamNames << sep << Param.first;
1063 ParamNamesStr = ssParamNames.str();
1082 std::string ParamValStr(
"");
1083 std::string SimIDStr(SimID);
1084 std::string ParamNameStr(ParamName);
1086 for (
const auto& ModelInfos : m_FluidXDesc.
model().
items())
1092 openfluid::ware::WareParams_t::iterator ItParam = Params.find(ParamNameStr);
1094 if (ItParam != Params.end())
1096 ParamValStr = (*ItParam).second;
1120 std::string SimIDStr(SimID);
1121 std::string ParamNameStr(ParamName);
1122 std::string ParamValStr(ParamVal);
1124 for (
auto& ModelInfos : m_FluidXDesc.
model().
items())
1129 ModelInfos->setParameter(ParamNameStr,ParamValStr);
1146 std::string SimIDStr(SimID);
1147 std::string ParamNameStr(ParamName);
1149 for (
auto& ModelInfos : m_FluidXDesc.
model().
items())
1154 ModelInfos->eraseParameter(ParamNameStr);
1172 std::string VarNameStr(VarName);
1173 std::string UnitsClassStr(UnitsClass);
1174 std::string ParamNamesStr(
"");
1175 std::ostringstream ssParamNames;
1176 std::string sep =
"";
1178 for (
const auto& Item : m_FluidXDesc.
model().
items())
1186 ssParamNames << sep << Param.first;
1193 ParamNamesStr = ssParamNames.str();
1213 std::string UnitsClassStr(UnitsClass);
1214 std::string VarNameStr(VarName);
1215 std::string ParamNameStr(ParamName);
1216 std::string ParamValStr(
"");
1218 for (
const auto& ModelInfos : m_FluidXDesc.
model().
items())
1225 openfluid::ware::WareParams_t::const_iterator ItParam = Params.find(ParamNameStr);
1227 if (ItParam != Params.end())
1229 ParamValStr = (*ItParam).second;
1253 void setGeneratorParam(
const char* UnitsClass,
const char* VarName,
const char* ParamName,
const char* ParamVal)
1255 std::string UnitsClassStr(UnitsClass);
1256 std::string VarNameStr(VarName);
1257 std::string ParamNameStr(ParamName);
1258 std::string ParamValStr(ParamVal);
1260 for (
auto& ItModelInfos : m_FluidXDesc.
model().
items())
1266 ItModelInfos->setParameter(ParamNameStr,ParamValStr);
1284 std::string VarNamesStr(
"");
1285 std::string UnitsClassStr(UnitsClass);
1286 std::ostringstream ssVarNames;
1287 std::string sep =
"";
1289 for (
const auto& Item : m_FluidXDesc.
model().
items())
1299 VarNamesStr = ssVarNames.str();
1316 std::string ParamNamesStr(
"");
1317 std::ostringstream ssParamNames;
1318 std::string sep =
"";
1322 ssParamNames << sep << Param.first;
1326 ParamNamesStr = ssParamNames.str();
1343 std::string ParamNameStr(ParamName);
1344 std::string ParamValStr(
"");
1347 openfluid::ware::WareParams_t::const_iterator ItParam = Params.find(ParamNameStr);
1349 if (ItParam != Params.end())
1351 ParamValStr = (*ItParam).second;
1372 std::string ParamNameStr(ParamName);
1373 std::string ParamValStr(ParamVal);
1389 std::string ParamNameStr(ParamName);
1405 std::string ObsIDsStr(
"");
1406 std::ostringstream ssObsIDs;
1407 std::string sep =
"";
1410 for (
auto& ItItem : MonDesc.
items())
1412 ssObsIDs << sep << MonDesc.
getID(ItItem);
1416 ObsIDsStr = ssObsIDs.str();
1433 std::string ObsIDStr(ObsID);
1434 std::string ParamNamesStr(
"");
1435 std::ostringstream ssParamNames;
1436 std::string sep =
"";
1453 ssParamNames << sep << Param.first;
1457 ParamNamesStr = ssParamNames.str();
1476 std::string ParamValStr(
"");
1477 std::string ObsIDStr(ObsID);
1478 std::string ParamNameStr(ParamName);
1486 openfluid::ware::WareParams_t::const_iterator ItParam = Params.find(ParamNameStr);
1488 if (ItParam != Params.end())
1490 ParamValStr = (*ItParam).second;
1514 std::string ObsIDStr(ObsID);
1515 std::string ParamNameStr(ParamName);
1516 std::string ParamValStr(ParamVal);
1523 ObsInfos->setParameter(ParamNameStr,ParamValStr);
1540 std::string ObsIDStr(ObsID);
1541 std::string ParamNameStr(ParamName);
1548 ObsInfos->eraseParameter(ParamNameStr);
1564 std::map<openfluid::core::UnitsClass_t,unsigned int> UnitsCountByClasses;
1565 UnitsCountByClasses = getUnitsCountByClasses();
1567 const unsigned int Count = UnitsCountByClasses.size();
1569 char** Classes = (
char**)malloc(Count*
sizeof(
char*));
1572 for (
auto& ItUCC : UnitsCountByClasses)
1574 Classes[i] = (
char*)malloc(ItUCC.first.size()+1);
1575 std::copy(ItUCC.first.begin(), ItUCC.first.end(), Classes[i]);
1576 Classes[i][ItUCC.first.size()] =
'\0';
1595 return getUnitsCountByClasses().size();
1615 IDs = (
int*)malloc(IDsOfClass.size()*
sizeof(int));
1617 for (
const auto& ID : IDsOfClass)
1659 std::string UnitClassStr(UnitsClass);
1660 std::string AttrNamesStr(
"");
1661 std::ostringstream ssAttrNames;
1662 std::string sep =
"";
1666 ssAttrNames << sep << Name;
1670 AttrNamesStr = ssAttrNames.str();
1688 std::string UnitsClassStr(UnitsClass);
1689 std::string AttrNameStr(AttrName);
1690 std::string AttrValStr(AttrVal);
1710 const char*
getAttribute(
const char* UnitsClass,
int UnitID,
const char* AttrName)
1712 std::string UnitClassStr(UnitsClass);
1713 std::string AttrNameStr(AttrName);
1714 std::string AttrValStr(
"");
1741 void setAttribute(
const char* UnitsClass,
int UnitID,
const char* AttrName,
const char* AttrVal)
1743 std::string UnitClassStr(UnitsClass);
1744 std::string AttrNameStr(AttrName);
1745 std::string AttrValStr(AttrVal);
1769 std::string UnitClassStr(UnitsClass);
1770 std::string AttrNameStr(AttrName);
1797 const char* UnitsClass,
const char* UnitsIDs,
1798 const char* VarName,
int Precision)
1800 std::string BindingNameStr(BindingName);
1801 std::string UnitsClassStr(UnitsClass);
1802 std::string UnitsIDsStr(UnitsIDs);
1803 std::string VarNameStr(VarName);
1821 std::ostringstream ssPrec;
1822 ssPrec << Precision;
1823 std::string PrecStr(ssPrec.str());
1828 ObsDesc.
setParameter(
"set."+BindingNameStr+UnitsClassStr+
".unitsclass",
1830 ObsDesc.
setParameter(
"set."+BindingNameStr+UnitsClassStr+
".unitsIDs",
1832 ObsDesc.
setParameter(
"set."+BindingNameStr+UnitsClassStr+
".vars",
1834 ObsDesc.
setParameter(
"set."+BindingNameStr+UnitsClassStr+
".format",
Definition: FluidXDescriptor.hpp:70
char ** getUnitsClasses()
Definition: Binding.hpp:1562
const char * getSimulatorParamNames(const char *SimID)
Definition: Binding.hpp:1037
Definition: Engine.hpp:76
Class for easier binding with other programming languages.
Definition: Binding.hpp:125
const char * getPeriodEndDate()
Definition: Binding.hpp:961
void appendItem(T *Item)
Definition: WareSetDescriptor.hpp:156
void writeToManyFiles(const std::string &DirPath)
Definition: ModelItemDescriptor.hpp:51
const char * getObserversIDs()
Definition: Binding.hpp:1403
const char * getGeneratorParamNames(const char *UnitsClass, const char *VarName)
Definition: Binding.hpp:1170
static char ** getSimulatorsPaths()
Definition: Binding.hpp:332
Definition: ApplicationException.hpp:47
int getDeltaT() const
Definition: RunConfigurationDescriptor.hpp:101
Definition: IOListener.hpp:53
const char * getSimulatorParam(const char *SimID, const char *ParamName)
Definition: Binding.hpp:1080
static char ** getExtraObserversPaths()
Definition: Binding.hpp:483
Definition: GeneratorDescriptor.hpp:54
Definition: Exception.hpp:52
Definition: MonitoringInstance.hpp:58
T & itemAt(unsigned int Index) const
Definition: WareSetDescriptor.hpp:198
void setAttribute(const char *UnitsClass, int UnitID, const char *AttrName, const char *AttrVal)
Definition: Binding.hpp:1741
void addVariablesExportAsCSV(const char *BindingName, const char *UnitsClass, const char *UnitsIDs, const char *VarName, int Precision)
Definition: Binding.hpp:1796
void setModelGlobalParam(const char *ParamName, const char *ParamVal)
Definition: Binding.hpp:1370
Definition: BindingVerboseMachineListener.hpp:50
Definition: StringValue.hpp:76
const char * getPeriodBeginDate()
Definition: Binding.hpp:943
void setSimulatorParam(const char *SimID, const char *ParamName, const char *ParamVal)
Definition: Binding.hpp:1118
static void resetExtraObserversDirs()
void removeAttribute(const char *UnitsClass, const char *AttrName)
Definition: Binding.hpp:1767
const char * getObserverParamNames(const char *ObsID)
Definition: Binding.hpp:1431
static unsigned int getObserversPathsCount()
Definition: Binding.hpp:428
openfluid::fluidx::RunConfigurationDescriptor & runConfiguration()
Definition: FluidXDescriptor.hpp:194
#define STRING_TO_ALLOCATED_CARRAY(str, carray)
Definition: Binding.hpp:76
void setGeneratorParam(const char *UnitsClass, const char *VarName, const char *ParamName, const char *ParamVal)
Definition: Binding.hpp:1253
void setAttribute(const openfluid::core::UnitsClass_t &ClassName, const openfluid::core::UnitID_t &ID, const openfluid::core::AttributeName_t &AttrName, const std::string &AttrValue)
Definition: FrameworkException.hpp:50
const char * getModelGlobalParam(const char *ParamName)
Definition: Binding.hpp:1341
bool isClassNameExists(const openfluid::core::UnitsClass_t &ClassName) const
static bool removeFile(const std::string &Path)
int * getUnitsIDs(const char *UnitsClass)
Definition: Binding.hpp:1607
static unsigned int getSimulatorsPathsCount()
Definition: Binding.hpp:318
Definition: GeneratorDescriptor.hpp:54
bool OPENFLUID_API emptyDirectoryRecursively(const std::string &Path)
Definition: CoupledModelDescriptor.hpp:52
Definition: Listener.hpp:54
void loadFromDirectory(const std::string &DirPath)
bool setFromISOString(const std::string &DateTimeStr)
std::vector< std::string > OPENFLUID_API findFilesByExtension(const std::string &Path, const std::string &Ext, bool WithPath=false, bool ExtIncludeDot=false)
static void buildMonitoringInstanceFromDescriptor(const openfluid::fluidx::MonitoringDescriptor &MonDesc, MonitoringInstance &MonInstance)
static void addExtraObserversDirs(const std::string &Paths)
void removeObserverParam(const char *ObsID, const char *ParamName)
Definition: Binding.hpp:1538
const char * getObserverParam(const char *ObsID, const char *ParamName)
Definition: Binding.hpp:1474
SetDescription_t & items()
Definition: WareSetDescriptor.hpp:90
static ExceptionContext computeContext(const std::string &AppName)
Definition: ApplicationException.hpp:76
static void init()
Definition: Binding.hpp:210
openfluid::core::UnitsClass_t getUnitsClass() const
const char * what() const
Definition: Exception.hpp:87
openfluid::fluidx::CoupledModelDescriptor & model()
Definition: FluidXDescriptor.hpp:174
void deleteAttribute(const openfluid::core::UnitsClass_t &ClassName, const std::string &AttrName)
GeneratorMethod getGeneratorMethod() const
void eraseGlobalParameter(const openfluid::ware::WareParamKey_t &Key)
Definition: WareSetDescriptor.hpp:146
void createAttribute(const char *UnitsClass, const char *AttrName, const char *AttrVal)
Definition: Binding.hpp:1686
void printSimulationInfo()
Definition: Binding.hpp:822
const char * getSimulatorsIDs()
Definition: Binding.hpp:1006
void setParameter(const openfluid::ware::WareParamKey_t &Key, const openfluid::ware::WareParamValue_t &Value)
static void buildSimulationBlobFromDescriptors(const openfluid::fluidx::FluidXDescriptor &FluidXDesc, SimulationBlob &SimBlob)
int getDefaultDeltaT()
Definition: Binding.hpp:914
openfluid::ware::WareID_t getID(ModelItemDescriptor *Item) const
bool isType(openfluid::ware::WareType MIType) const
void removeSimulatorParam(const char *SimID, const char *ParamName)
Definition: Binding.hpp:1144
virtual void printfOut(const char *fmt,...) const =0
openfluid::ware::WareID_t getID(ObserverDescriptor *Item) const
void setPeriod(const char *BeginDate, const char *EndDate)
Definition: Binding.hpp:980
int findFirstItem(const openfluid::ware::WareID_t &ID) const
Definition: WareSetDescriptor.hpp:321
static unsigned int getExtraObserversPathsCount()
Definition: Binding.hpp:469
static std::vector< std::string > getExtraObserversDirs()
Definition: Environment.hpp:419
unsigned int getUnitsCount() const
void setDeltaT(const int DeltaT)
Definition: RunConfigurationDescriptor.hpp:106
std::set< int > getIDsOfClass(const openfluid::core::UnitsClass_t &ClassName) const
unsigned short int runSimulation(int IsVerbose=false)
Definition: Binding.hpp:690
openfluid::fluidx::SpatialDomainDescriptor & spatialDomain()
Definition: FluidXDescriptor.hpp:184
void setGlobalParameter(const openfluid::ware::WareParamKey_t &Key, const openfluid::ware::WareParamValue_t &Value)
Definition: WareSetDescriptor.hpp:110
static char ** getExtraSimulatorsPaths()
Definition: Binding.hpp:373
std::string getAsISOString() const
static void addExtraSimulatorsDirs(const std::string &Paths)
static void resetExtraSimulatorsDirs()
const char * getAttributesNames(const char *UnitsClass)
Definition: Binding.hpp:1657
const char * getGeneratorParam(const char *UnitsClass, const char *VarName, const char *ParamName)
Definition: Binding.hpp:1211
static void buildModelInstanceFromDescriptor(const openfluid::fluidx::CoupledModelDescriptor &ModelDesc, ModelInstance &MInstance)
Definition: ObserverDescriptor.hpp:50
const char * getModelGlobalParamNames()
Definition: Binding.hpp:1314
static const char * getVersion()
Definition: Binding.hpp:262
openfluid::core::VariableName_t getVariableName() const
Definition: GeneratorDescriptor.hpp:51
static const char * getLastError()
Definition: Binding.hpp:276
void setEndDate(const openfluid::core::DateTime EndDate)
Definition: RunConfigurationDescriptor.hpp:96
int writeDataset(const char *Path, bool WithOriginData=false)
Definition: Binding.hpp:639
openfluid::core::DateTime getBeginDate() const
Definition: RunConfigurationDescriptor.hpp:81
std::map< WareParamKey_t, WareParamValue_t > WareParams_t
Definition: TypeDefs.hpp:128
const char * getAttribute(const char *UnitsClass, int UnitID, const char *AttrName)
Definition: Binding.hpp:1710
std::set< std::string > getAttributesNames(const openfluid::core::UnitsClass_t &ClassName) const
static char ** getObserversPaths()
Definition: Binding.hpp:442
void setObserverParam(const char *ObsID, const char *ParamName, const char *ParamVal)
Definition: Binding.hpp:1512
SpatialUnitsByIDByClass_t & spatialUnits()
Definition: SpatialDomainDescriptor.hpp:101
Definition: BindingAbstractOutErr.hpp:46
Definition: ModelInstance.hpp:65
Definition: SimulatorDescriptor.hpp:51
static void resetExtraObserversPaths()
Definition: Binding.hpp:414
void setDefaultDeltaT(int DeltaT)
Definition: Binding.hpp:928
static Binding * openProject(const char *Path)
Definition: Binding.hpp:580
static void destroy(Binding *B)
Definition: Binding.hpp:249
const char * getGeneratorsVarNames(const char *UnitsClass)
Definition: Binding.hpp:1282
static std::vector< std::string > getObserversDirs()
static void addExtraSimulatorsPaths(const char *Paths)
Definition: Binding.hpp:291
static Binding * openDataset(const char *Path)
Definition: Binding.hpp:525
void addAttribute(const openfluid::core::UnitsClass_t &ClassName, const std::string &AttrName, const std::string &DefaultValue, bool Check=true)
const char * getSimulationOutputDir()
Definition: Binding.hpp:899
openfluid::ware::WareParams_t getGlobalParameters() const
Definition: WareSetDescriptor.hpp:136
Definition: GeneratorDescriptor.hpp:54
static void setCurrentOutputDir(const char *Path)
Definition: Binding.hpp:510
void removeModelGlobalParam(const char *ParamName)
Definition: Binding.hpp:1387
std::string getAsString(std::string Format) const
#define INIT_OPENFLUID_APPLICATION(ac, av)
Definition: Init.hpp:54
static std::vector< std::string > getSimulatorsDirs()
static void resetExtraSimulatorsPaths()
Definition: Binding.hpp:304
void OPENFLUID_API copyDirectoryContentsRecursively(const std::string &SrcPath, const std::string &DestPath, const bool DontCopyDotDirs=false)
Definition: GeneratorDescriptor.hpp:54
std::string getAttribute(const openfluid::core::UnitsClass_t &ClassName, const openfluid::core::UnitID_t &ID, const openfluid::core::AttributeName_t &AttrName) const
static std::vector< std::string > getExtraSimulatorsDirs()
Definition: Environment.hpp:376
unsigned int getUnitsIDsCount(const char *UnitsClass)
Definition: Binding.hpp:1637
static void addExtraObserversPaths(const char *Paths)
Definition: Binding.hpp:401
openfluid::core::DateTime getEndDate() const
Definition: RunConfigurationDescriptor.hpp:91
Definition: MonitoringDescriptor.hpp:52
Definition: SimulationBlob.hpp:53
Class for management of date and time information.
Definition: DateTime.hpp:87
static unsigned int getExtraSimulatorsPathsCount()
Definition: Binding.hpp:359
void setBeginDate(const openfluid::core::DateTime BeginDate)
Definition: RunConfigurationDescriptor.hpp:86
static Binding * make()
Definition: Binding.hpp:235
openfluid::ware::WareParams_t & parameters()
unsigned int getUnitsClassesCount()
Definition: Binding.hpp:1593
openfluid::fluidx::MonitoringDescriptor & monitoring()
Definition: FluidXDescriptor.hpp:214
Definition: ApplicationException.hpp:50