Documentation for OpenFLUID 2.2.2
Loading...
Searching...
No Matches
SimulationContributorWare.hpp
Go to the documentation of this file.
1/*
2
3 This file is part of OpenFLUID software
4 Copyright(c) 2021-2026, INRAE
5
6
7 == GNU General Public License Usage ==
8
9 OpenFLUID is free software: you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation, either version 3 of the License, or
12 (at your option) any later version.
13
14 OpenFLUID is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
18
19 You should have received a copy of the GNU General Public License
20 along with OpenFLUID. If not, see <http://www.gnu.org/licenses/>.
21
22
23 == Other Usage ==
24
25 Other Usage means a use of OpenFLUID that is inconsistent with the GPL
26 license, and requires a written agreement between You and INRA.
27 Licensees for Other Usage of OpenFLUID may use this file in accordance
28 with the terms contained in the written agreement between You and INRA.
29
30*/
31
32
33/**
34 @file SimulationContributorWare.hpp
35
36 @author Jean-Christophe FABRE <jean-christophe.fabre@inra.fr>
37*/
38
39
40#ifndef __OPENFLUID_WARE_SIMULATIONCONTRIBUTORWARE_HPP__
41#define __OPENFLUID_WARE_SIMULATIONCONTRIBUTORWARE_HPP__
42
43
46
47
48namespace openfluid { namespace ware {
49
50
52{
53 private:
54
55 protected:
56
57 /**
58 Sets attribute for a unit
59 @param[in] UnitPtr a Unit
60 @param[in] AttrName the name of the set attribute
61 @param[in] Val the value of the set attribute
62
63 @cond OpenFLUID:completion
64 {
65 "contexts" : ["SIMULATOR"],
66 "menupath" : ["Attributes"],
67 "title" : "Set attribute value",
68 "text" : "OPENFLUID_SetAttribute(%%SEL_START%%UnitPtr%%SEL_END%%,\"attrname\",Val)"
69 }
70 @endcond
71 */
74 const openfluid::core::Value& Val);
75
76 /**
77 Sets attribute for a unit, as a double
78 @param[in] UnitPtr a Unit
79 @param[in] AttrName the name of the set attribute
80 @param[in] Val the value of the set attribute
81 */
84 const double& Val);
85
86 /**
87 Sets attribute for a unit, as a boolean
88 @param[in] UnitPtr a Unit
89 @param[in] AttrName the name of the set attribute
90 @param[in] Val the value of the set attribute
91 */
94 bool Val);
95
96 /**
97 Sets attribute for a unit, as a long integer
98 @param[in] UnitPtr a Unit
99 @param[in] AttrName the name of the set attribute
100 @param[in] Val the value of the set attribute
101 */
103 const openfluid::core::AttributeName_t& AttrName,
104 const long& Val);
105
106 /**
107 Sets attribute for a unit, as a string
108 @param[in] UnitPtr a Unit
109 @param[in] AttrName the name of the set attribute
110 @param[out] Val the value of the set attribute
111 */
113 const openfluid::core::AttributeName_t& AttrName,
114 const std::string& Val);
115
116
117 /**
118 Initializes a distributed variable value for a unit
119 @param[in] UnitPtr a Unit
120 @param[in] VarName the name of the variable
121 @param[in] Val the added value of the variable
122 */
124 const openfluid::core::VariableName_t& VarName,
125 const openfluid::core::Value& Val);
126
127 /**
128 Initializes a distributed variable value for a unit
129 @param[in] aUnit a Unit
130 @param[in] VarName the name of the variable
131 @param[in] Val the added value of the variable
132
133 @cond OpenFLUID:completion
134 {
135 "contexts" : ["SIMULATOR"],
136 "menupath" : ["Variables"],
137 "title" : "Initialize variable with value",
138 "text" : "OPENFLUID_InitializeVariable(%%SEL_START%%UnitPtr%%SEL_END%%,\"varname\",Val)"
139 }
140 @endcond
141 */
143 const openfluid::core::VariableName_t& VarName,
144 const openfluid::core::Value& Val);
145
146 /**
147 Initializes a distributed double variable value for a unit
148 @param[in] UnitPtr a Unit
149 @param[in] VarName the name of the variable
150 @param[in] Val the added value of the variable (double)
151 */
153 const openfluid::core::VariableName_t& VarName,
154 const double& Val);
155
156 /**
157 Initializes a distributed long variable value for a unit
158 @param[in] UnitPtr a Unit
159 @param[in] VarName the name of the variable
160 @param[in] Val the added value of the variable (long)
161 */
163 const openfluid::core::VariableName_t& VarName,
164 const long& Val);
165
166 /**
167 Initializes a distributed boolean variable value for a unit
168 @param[in] UnitPtr a Unit
169 @param[in] VarName the name of the variable
170 @param[in] Val the added value of the variable (bool)
171 */
173 const openfluid::core::VariableName_t& VarName,
174 const bool& Val);
175
176 /**
177 Initializes a distributed string variable value for a unit
178 @param[in] UnitPtr a Unit
179 @param[in] VarName the name of the variable
180 @param[in] Val the added value of the variable (string)
181 @warning Use std::string("text") instead of "text" as a value for the Val parameter
182 to avoid the automatic overloading between char* and bool types
183 */
185 const openfluid::core::VariableName_t& VarName,
186 const std::string& Val);
187
188 /**
189 Appends a distributed variable value for a unit at the end
190 of the previously added values for this variable
191 @param[in] UnitPtr a Unit
192 @param[in] VarName the name of the variable
193 @param[in] Val the added value of the variable
194
195 @cond OpenFLUID:completion
196 {
197 "contexts" : ["SIMULATOR"],
198 "menupath" : ["Variables"],
199 "title" : "Append value to a variable",
200 "text" : "OPENFLUID_AppendVariable(%%SEL_START%%UnitPtr%%SEL_END%%,\"varname\",Val)"
201 }
202 @endcond
203 */
205 const openfluid::core::VariableName_t& VarName,
206 const openfluid::core::Value& Val);
207
208 /**
209 Appends a distributed variable value for a unit at the end
210 of the previously added values for this variable
211 @param[in] aUnit a Unit
212 @param[in] VarName the name of the variable
213 @param[in] Val the added value of the variable
214 */
216 const openfluid::core::VariableName_t& VarName,
217 const openfluid::core::Value& Val);
218
219 /**
220 Appends a distributed double variable value for a unit at the end
221 of the previously added values for this variable
222 @param[in] UnitPtr a Unit
223 @param[in] VarName the name of the variable
224 @param[in] Val the added value of the variable (double)
225 */
227 const openfluid::core::VariableName_t& VarName,
228 const double& Val);
229
230 /**
231 Appends a distributed long variable value for a unit at the end
232 of the previously added values for this variable
233 @param[in] UnitPtr a Unit
234 @param[in] VarName the name of the variable
235 @param[in] Val the added value of the variable (long)
236 */
238 const openfluid::core::VariableName_t& VarName,
239 const long& Val);
240
241 /**
242 Appends a distributed boolean variable value for a unit at the end
243 of the previously added values for this variable
244 @param[in] UnitPtr a Unit
245 @param[in] VarName the name of the variable
246 @param[in] Val the added value of the variable (bool)
247 */
249 const openfluid::core::VariableName_t& VarName,
250 const bool& Val);
251
252 /**
253 Appends a distributed string variable value for a unit at the end
254 of the previously added values for this variable
255 @param[in] UnitPtr a Unit
256 @param[in] VarName the name of the variable
257 @param[in] Val the added value of the variable (string)
258 @warning Use std::string("text") instead of "text" as a value for the Val parameter
259 to avoid the automatic overloading between char* and bool types
260 */
262 const openfluid::core::VariableName_t& VarName,
263 const std::string& Val);
264
265
266 /**
267 Sets a distributed variable value for a unit at the current time index
268 @param[in] UnitPtr a Unit
269 @param[in] VarName the name of the variable
270 @param[in] Val the added value of the variable
271
272 @cond OpenFLUID:completion
273 {
274 "contexts" : ["SIMULATOR"],
275 "menupath" : ["Variables"],
276 "title" : "Update current value of a variable",
277 "text" : "OPENFLUID_SetVariable(%%SEL_START%%UnitPtr%%SEL_END%%,\"varname\",Val)"
278 }
279 @endcond
280 */
282 const openfluid::core::VariableName_t& VarName,
283 const openfluid::core::Value& Val);
284
285 /**
286 Sets a distributed double variable value for a unit at the current time index
287 @param[in] UnitPtr a Unit
288 @param[in] VarName the name of the variable
289 @param[in] Val the added value of the variable (double)
290 */
292 const openfluid::core::VariableName_t& VarName,
293 const double& Val);
294
295 /**
296 Sets a distributed double variable value for a unit at the current time index
297 @param[in] UnitPtr a Unit
298 @param[in] VarName the name of the variable
299 @param[in] Val the added value of the variable (long)
300 */
302 const openfluid::core::VariableName_t& VarName,
303 const long& Val);
304
305 /**
306 Sets a distributed double variable value for a unit at the current time index
307 @param[in] UnitPtr a Unit
308 @param[in] VarName the name of the variable
309 @param[in] Val the added value of the variable (bool)
310 */
312 const openfluid::core::VariableName_t& VarName,
313 const bool& Val);
314
315 /**
316 Sets a distributed double variable value for a unit at the current time index
317 @param[in] UnitPtr a Unit
318 @param[in] VarName the name of the variable
319 @param[in] Val the added value of the variable (string)
320 */
322 const openfluid::core::VariableName_t& VarName,
323 const std::string& Val);
324
325 /**
326 Appends an event on a unit
327 @param[in] UnitPtr a Unit
328 @param[in] Ev the event to append
329
330 @cond OpenFLUID:completion
331 {
332 "contexts" : ["SIMULATOR"],
333 "menupath" : ["Events"],
334 "title" : "Append an event",
335 "text" : "OPENFLUID_AppendEvent(%%SEL_START%%UnitPtr%%SEL_END%%,Event)"
336 }
337 @endcond
338 */
341
342
343 /**
344 Adds a unit to the set of units if not already exists
345 @param[in] ClassName class name of the added unit
346 @param[in] ID ID of the added unit
347 @param[in] PcsOrder Process order of the added unit
348
349 @cond OpenFLUID:completion
350 {
351 "contexts" : ["SIMULATOR"],
352 "menupath" : ["Spatial structure"],
353 "title" : "Add a spatial unit to the spatial graph",
354 "text" : "OPENFLUID_AddUnit(%%SEL_START%%ClassName%%SEL_END%%,UnitID,PcsOrder)"
355 }
356 @endcond
357 */
361
362 /**
363 Deletes a unit from the set of units if exists
364 @param[in] ClassName class name of the removed unit
365 @param[in] ID ID of the added unit
366
367 @cond OpenFLUID:completion
368 {
369 "contexts" : ["SIMULATOR"],
370 "menupath" : ["Spatial structure"],
371 "title" : "Delete a spatial unit of the spatial graph",
372 "text" : "OPENFLUID_DeleteUnit(%%SEL_START%%ClassName%%SEL_END%%,ID)"
373 }
374 @endcond
375 */
378
379
380 /**
381 Adds a from-to connection between two units
382 @param[in] ClassNameFrom class name of the "from" unit
383 @param[in] IDFrom ID of the "from" unit
384 @param[in] ClassNameTo class name of the "to" unit
385 @param[in] IDTo ID of the "to" unit
386 @return false if the unit connection already exists
387
388 @cond OpenFLUID:completion
389 {
390 "contexts" : ["SIMULATOR"],
391 "menupath" : ["Spatial structure"],
392 "title" : "Add a From-To connection using classes names and IDs",
393 "text" : "OPENFLUID_AddFromToConnection(%%SEL_START%%ClassNameFrom%%SEL_END%%,UnitIDFrom,ClassNameTo,UnitIDTo)"
394 }
395 @endcond
396 */
399 const openfluid::core::UnitsClass_t& ClassNameTo,
401
402 /**
403 Adds a from-to connection between two units
404 @param[in] FromUnit pointer to the "from" unit
405 @param[in] ToUnit pointer to the "to" unit
406 @return false if the connection already exists
407
408 @cond OpenFLUID:completion
409 {
410 "contexts" : ["SIMULATOR"],
411 "menupath" : ["Spatial structure"],
412 "title" : "Add a From-To connection using pointers to spatial units",
413 "text" : "OPENFLUID_AddFromToConnection(%%SEL_START%%FromUnitPtr%%SEL_END%%,ToUnitPtr)"
414 }
415 @endcond
416 */
419
420 /**
421 Removes a from-to connection between two units
422 @param[in] ClassNameFrom class name of the "from" unit
423 @param[in] IDFrom ID of the "from" unit
424 @param[in] ClassNameTo class name of the "to" unit
425 @param[in] IDTo ID of the "to" unit
426 @return false if the unit connection does not exist
427
428 @cond OpenFLUID:completion
429 {
430 "contexts" : ["SIMULATOR"],
431 "menupath" : ["Spatial structure"],
432 "title" : "Remove a From-To connection using classes names and IDs",
433 "text" : ["OPENFLUID_RemoveFromToConnection(%%SEL_START%%ClassNameFrom%%SEL_END%%,",
434 "UnitIDFrom,ClassNameTo,UnitIDTo)"]
435 }
436 @endcond
437 */
440 const openfluid::core::UnitsClass_t& ClassNameTo,
442
443 /**
444 Removes a from-to connection between two units
445 @param[in] FromUnit pointer to the "from" unit
446 @param[in] ToUnit pointer to the "to" unit
447 @return false if the connection does not exist
448
449 @cond OpenFLUID:completion
450 {
451 "contexts" : ["SIMULATOR"],
452 "menupath" : ["Spatial structure"],
453 "title" : "Remove a From-To connection using spatial units pointers",
454 "text" : "OPENFLUID_RemoveFromToConnection(%%SEL_START%%FromUnitPtr%%SEL_END%%,ToUnitPtr)"
455 }
456 @endcond
457 */
460
461
462 /**
463 Adds a child-parent connection between two units
464 @param[in] ClassNameChild class name of the "child" unit
465 @param[in] IDChild ID of the "child" unit
466 @param[in] ClassNameParent class name of the "parent" unit
467 @param[in] IDParent ID of the "parent" unit
468 @return false if the connection already exists
469
470 @cond OpenFLUID:completion
471 {
472 "contexts" : ["SIMULATOR"],
473 "menupath" : ["Spatial structure"],
474 "title" : "Add a Child-parent connection using classes names and IDs",
475 "text" : ["OPENFLUID_AddChildParentConnection(%%SEL_START%%ClassNameChild%%SEL_END%%,",
476 "UnitIDChild,ClassNameParent,UnitIDParent)"]
477 }
478 @endcond
479 */
482 const openfluid::core::UnitsClass_t& ClassNameParent,
484
485 /**
486 Adds a child-parent connection between two units
487 @param[in] ChildUnit pointer to the "child" unit
488 @param[in] ParentUnit pointer to the "parent" unit
489 @return false if the connection already exists
490
491 @cond OpenFLUID:completion
492 {
493 "contexts" : ["SIMULATOR"],
494 "menupath" : ["Spatial structure"],
495 "title" : "Add a Child-parent connection using pointers to spatial units",
496 "text" : "OPENFLUID_AddChildParentConnection(%%SEL_START%%ChildUnitPtr%%SEL_END%%,ParentUnitPtr)"
497 }
498 @endcond
499 */
501 openfluid::core::SpatialUnit* ParentUnit);
502
503
504 /**
505 Removes a child-parent connection between two units
506 @param[in] ClassNameChild class name of the "child" unit
507 @param[in] IDChild ID of the "child" unit
508 @param[in] ClassNameParent class name of the "parent" unit
509 @param[in] IDParent ID of the "parent" unit
510 @return false if the connection does not exist
511
512 @cond OpenFLUID:completion
513 {
514 "contexts" : ["SIMULATOR"],
515 "menupath" : ["Spatial structure"],
516 "title" : "Remove a Child-parent connection using classes names and IDs",
517 "text" : ["OPENFLUID_RemoveChildParentConnection(%%SEL_START%%ClassNameChild%%SEL_END%%,",
518 "UnitIDChild,ClassNameParent,UnitIDParent)"]
519 }
520 @endcond
521 */
524 const openfluid::core::UnitsClass_t& ClassNameParent,
526
527 /**
528 Removes a child-parent connection between two units
529 @param[in] ChildUnit pointer to the "child" unit
530 @param[in] ParentUnit pointer to the "parent" unit
531 @return false if the connection does not exist
532
533 @cond OpenFLUID:completion
534 {
535 "contexts" : ["SIMULATOR"],
536 "menupath" : ["Spatial structure"],
537 "title" : "Remove a Child-parent connection using pointers to spatial units",
538 "text" : "OPENFLUID_RemoveChildParentConnection(%%SEL_START%%ChildUnitPtr%%SEL_END%%,ParentUnitPtr)"
539 }
540 @endcond
541 */
543 openfluid::core::SpatialUnit* ParentUnit);
544
545 /**
546 Builds a ColsNbr x RowsNbr unix matrix with bi-directionnal connections
547 @param[in] UnitsClass the name of units class
548 @param[in] ColsNbr the number of units on the X axis
549 @param[in] RowsNbr the number of units on the Y axis
550
551 @cond OpenFLUID:completion
552 {
553 "contexts" : ["SIMULATOR"],
554 "menupath" : ["Spatial structure"],
555 "title" : "Build a matrix of spatial units",
556 "text" : "OPENFLUID_BuildUnitsMatrix(%%SEL_START%%ClassName%%SEL_END%%,ColsNbr,RowsNbr)"
557 }
558 @endcond
559 */
561 const unsigned int& ColsNbr,
562 const unsigned int& RowsNbr);
563
566
567
568 public:
569
571 { }
572
573};
574
575
576} } // openfluid::ware
577
578
579#endif /* __OPENFLUID_WARE_SIMULATIONCONTRIBUTORWARE_HPP__ */
Definition Event.hpp:69
Definition SpatialUnit.hpp:111
Definition Value.hpp:63
Definition SimulationContributorWare.hpp:52
void OPENFLUID_AddUnit(const openfluid::core::UnitsClass_t &ClassName, openfluid::core::UnitID_t ID, openfluid::core::PcsOrd_t PcsOrder)
void OPENFLUID_AppendVariable(openfluid::core::SpatialUnit *UnitPtr, const openfluid::core::VariableName_t &VarName, const std::string &Val)
bool OPENFLUID_RemoveFromToConnection(openfluid::core::SpatialUnit *FromUnit, openfluid::core::SpatialUnit *ToUnit)
void OPENFLUID_AppendVariable(openfluid::core::SpatialUnit *UnitPtr, const openfluid::core::VariableName_t &VarName, const bool &Val)
void OPENFLUID_InitializeVariable(openfluid::core::SpatialUnit *UnitPtr, const openfluid::core::VariableName_t &VarName, const std::string &Val)
void OPENFLUID_InitializeVariable(openfluid::core::SpatialUnit *UnitPtr, const openfluid::core::VariableName_t &VarName, const bool &Val)
void OPENFLUID_SetAttribute(openfluid::core::SpatialUnit *UnitPtr, const openfluid::core::AttributeName_t &AttrName, const long &Val)
void OPENFLUID_AppendVariable(openfluid::core::SpatialUnit *UnitPtr, const openfluid::core::VariableName_t &VarName, const long &Val)
void OPENFLUID_SetAttribute(openfluid::core::SpatialUnit *UnitPtr, const openfluid::core::AttributeName_t &AttrName, const openfluid::core::Value &Val)
void OPENFLUID_AppendEvent(openfluid::core::SpatialUnit *UnitPtr, openfluid::core::Event &Ev)
void OPENFLUID_InitializeVariable(openfluid::core::SpatialUnit *UnitPtr, const openfluid::core::VariableName_t &VarName, const long &Val)
bool OPENFLUID_AddChildParentConnection(openfluid::core::SpatialUnit *ChildUnit, openfluid::core::SpatialUnit *ParentUnit)
void OPENFLUID_SetAttribute(openfluid::core::SpatialUnit *UnitPtr, const openfluid::core::AttributeName_t &AttrName, const std::string &Val)
void OPENFLUID_DeleteUnit(const openfluid::core::UnitsClass_t &ClassName, openfluid::core::UnitID_t ID)
void OPENFLUID_BuildUnitsMatrix(const openfluid::core::UnitsClass_t &UnitsClass, const unsigned int &ColsNbr, const unsigned int &RowsNbr)
bool OPENFLUID_RemoveFromToConnection(const openfluid::core::UnitsClass_t &ClassNameFrom, openfluid::core::UnitID_t IDFrom, const openfluid::core::UnitsClass_t &ClassNameTo, openfluid::core::UnitID_t IDTo)
void OPENFLUID_AppendVariable(openfluid::core::SpatialUnit *UnitPtr, const openfluid::core::VariableName_t &VarName, const openfluid::core::Value &Val)
void OPENFLUID_SetAttribute(openfluid::core::SpatialUnit *UnitPtr, const openfluid::core::AttributeName_t &AttrName, const double &Val)
void OPENFLUID_SetVariable(openfluid::core::SpatialUnit *UnitPtr, const openfluid::core::VariableName_t &VarName, const bool &Val)
bool OPENFLUID_AddChildParentConnection(const openfluid::core::UnitsClass_t &ClassNameChild, openfluid::core::UnitID_t IDChild, const openfluid::core::UnitsClass_t &ClassNameParent, openfluid::core::UnitID_t IDParent)
bool OPENFLUID_AddFromToConnection(const openfluid::core::UnitsClass_t &ClassNameFrom, openfluid::core::UnitID_t IDFrom, const openfluid::core::UnitsClass_t &ClassNameTo, openfluid::core::UnitID_t IDTo)
void OPENFLUID_SetVariable(openfluid::core::SpatialUnit *UnitPtr, const openfluid::core::VariableName_t &VarName, const std::string &Val)
void OPENFLUID_AppendVariable(openfluid::core::SpatialUnit *UnitPtr, const openfluid::core::VariableName_t &VarName, const double &Val)
void OPENFLUID_InitializeVariable(openfluid::core::SpatialUnit *UnitPtr, const openfluid::core::VariableName_t &VarName, const openfluid::core::Value &Val)
virtual ~SimulationContributorWare()
Definition SimulationContributorWare.hpp:570
void OPENFLUID_SetVariable(openfluid::core::SpatialUnit *UnitPtr, const openfluid::core::VariableName_t &VarName, const openfluid::core::Value &Val)
SimulationContributorWare(WareType WType)
Definition SimulationContributorWare.hpp:564
void OPENFLUID_SetAttribute(openfluid::core::SpatialUnit *UnitPtr, const openfluid::core::AttributeName_t &AttrName, bool Val)
bool OPENFLUID_AddFromToConnection(openfluid::core::SpatialUnit *FromUnit, openfluid::core::SpatialUnit *ToUnit)
void OPENFLUID_InitializeVariable(openfluid::core::SpatialUnit &aUnit, const openfluid::core::VariableName_t &VarName, const openfluid::core::Value &Val)
void OPENFLUID_SetVariable(openfluid::core::SpatialUnit *UnitPtr, const openfluid::core::VariableName_t &VarName, const long &Val)
void OPENFLUID_AppendVariable(openfluid::core::SpatialUnit &aUnit, const openfluid::core::VariableName_t &VarName, const openfluid::core::Value &Val)
bool OPENFLUID_RemoveChildParentConnection(const openfluid::core::UnitsClass_t &ClassNameChild, openfluid::core::UnitID_t IDChild, const openfluid::core::UnitsClass_t &ClassNameParent, openfluid::core::UnitID_t IDParent)
bool OPENFLUID_RemoveChildParentConnection(openfluid::core::SpatialUnit *ChildUnit, openfluid::core::SpatialUnit *ParentUnit)
void OPENFLUID_InitializeVariable(openfluid::core::SpatialUnit *UnitPtr, const openfluid::core::VariableName_t &VarName, const double &Val)
void OPENFLUID_SetVariable(openfluid::core::SpatialUnit *UnitPtr, const openfluid::core::VariableName_t &VarName, const double &Val)
Definition SimulationInspectorWare.hpp:56
#define OPENFLUID_API
Definition dllexport.hpp:86
unsigned int UnitID_t
Definition TypeDefs.hpp:70
std::string VariableName_t
Definition TypeDefs.hpp:131
std::string UnitsClass_t
Definition TypeDefs.hpp:98
std::string AttributeName_t
Definition TypeDefs.hpp:117
int PcsOrd_t
Definition TypeDefs.hpp:84
WareType
Definition TypeDefs.hpp:61
Definition ApplicationException.hpp:47