C++ mpi module for stochmagnet_main Package
EXPR_ClassFactory.h
1 #ifndef EXPR_ClassFactory_H
2 #define EXPR_ClassFactory_H
3 
4 
5 #include "CORE_ClassFactory.h"
6 
7 #include "EXPR_ElementaryGeometryNode.h"
8 #include "EXPR_OperatorNode.h"
9 #include "EXPR_Function.h"
10 
11 ;
17 
18 class EXPR_ClassFactory : public CORE_ClassFactory{ // class
19 
20 
21 
22  // ASSOCIATION
23 
24 
25 
26  // ATTRIBUTES
27 
28 private:
29 
30 
31  // ASSOCIATIONS
32 
33 
34  // METHODS
35 
36 
37 protected:
38  // CONSTRUCTORS
42 
43 
44 
45 
46  // DESTRUCTORS
50  virtual ~EXPR_ClassFactory(void);
51 
52 
53 
54 
55 
56 public:
57  // NEW
60  inline static CORE_UniquePointer<EXPR_ClassFactory> New() {
61  CORE_UniquePointer<EXPR_ClassFactory> p(new EXPR_ClassFactory(),
63  return p;
64  }
65 
66  // SET
67 
68 
69 
70 
71  // GET
72 
76  static void GetAvailableGeometries(std::vector<CORE_UniquePointer<EXPR_ElementaryGeometryNode>>& geometries);
77 
81  static void GetAvailableUnaryOperators(std::vector<CORE_UniquePointer<EXPR_OperatorNode>>& operators);
82 
87  static void GetAvailableBinaryOperators(const tUCInt& priority,
88  std::vector<CORE_UniquePointer<EXPR_OperatorNode>>& operators);
89 
90 
94  static void GetAvailableFunctions( std::vector<CORE_UniquePointer<EXPR_Function>>& functions);
95 
96  // OTHERS
103  virtual CORE_UniquePointer<CORE_Object> NewInstance(const tString& name,
104  const CORE_OptionsList& newParameters) const override;
105 
106 
107 
108 
109 
110 };
111 
112 #endif
this class describes a class factory to generate classes
Definition: CORE_ClassFactory.h:24
class Free introduced for deleting a smart pointer
Definition: CORE_Object.h:113
This class is an list of options.
Definition: CORE_OptionsList.h:36
this class describes a class factory to generate classes for the math/geometry/expr Package
Definition: EXPR_ClassFactory.h:18
static void GetAvailableFunctions(std::vector< CORE_UniquePointer< EXPR_Function >> &functions)
return all the functions available
Definition: EXPR_ClassFactory.cpp:61
static void GetAvailableUnaryOperators(std::vector< CORE_UniquePointer< EXPR_OperatorNode >> &operators)
return all the unary operators available
Definition: EXPR_ClassFactory.cpp:43
virtual CORE_UniquePointer< CORE_Object > NewInstance(const tString &name, const CORE_OptionsList &newParameters) const override
create an instance of a class
Definition: EXPR_ClassFactory.cpp:70
static void GetAvailableBinaryOperators(const tUCInt &priority, std::vector< CORE_UniquePointer< EXPR_OperatorNode >> &operators)
return all the binary operators with the priority available
Definition: EXPR_ClassFactory.cpp:47
virtual ~EXPR_ClassFactory(void)
destroy a EXPR_ClassFactory
Definition: EXPR_ClassFactory.cpp:30
static void GetAvailableGeometries(std::vector< CORE_UniquePointer< EXPR_ElementaryGeometryNode >> &geometries)
return all the geometries available
Definition: EXPR_ClassFactory.cpp:33
EXPR_ClassFactory()
build a EXPR_ClassFactory
Definition: EXPR_ClassFactory.cpp:26
static CORE_UniquePointer< EXPR_ClassFactory > New()
create a shared pointer to the class factory
Definition: EXPR_ClassFactory.h:60