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