Mass++ Common Libraries v2.7.5
 All Classes Namespaces Files Functions Variables Enumerations Macros
Script.h
Go to the documentation of this file.
1 
11 // >>>>>> @Date:2013/07/24 <Modify> A.Ozaki
12 //
13 // Moved the ScriptClass to DataObjects library from CoreToolkits library.
14 // ex.
15 // CORE_TOOLKITS_CLASS -> DATA_OBJECTS_CLASS
16 // core -> objects
17 //
18 // <<<<<< @Date:2013/07/24 <Modify> A.Ozaki
19 
20 #ifndef __KOME_OBJECTS_SCRIPT_H__
21 #define __KOME_OBJECTS_SCRIPT_H__
22 
23 
24 #include <vector>
25 #include <set>
26 
27 // >>>>>> @Date:2013/07/29 <Add> A.Ozaki
28 #include "Variant.h"
29 #include "Parameters.h"
30 // <<<<<< @Date:2013/07/29 <Add> A.Ozaki
31 
32 namespace kome {
33  namespace objects {
34 
39  class DATA_OBJECTS_CLASS Script {
40  public:
45  Script();
46 
51  virtual ~Script();
52 
53  protected:
55  std::string m_script;
56 
61  struct VariableInfo {
62  std::string name;
63  std::string desc;
64  };
65 
67  std::vector< VariableInfo > m_variables;
68 
70  static std::string m_filePath;
71 
72 // >>>>>> @Date:2013/07/29 <Add> A.Ozaki
75 
78 // <<<<<< @Date:2013/07/29 <Add> A.Ozaki
79 
80  public:
86  void setScript( const char* script );
87 
93  const char* getScript();
94 
95 // >>>>>> @Date:2013/07/29 <Add> A.Ozaki
101  void setVariant( kome::objects::Variant &var );
102 
108  const kome::objects::Variant &getVariant( void );
109 
115  void setParameters( kome::objects::Parameters *pParams );
116 
122  const kome::objects::Parameters *getParameters( void );
123 // <<<<<< @Date:2013/07/29 <Add> A.Ozaki
124 
125  public:
131  std::string getTemplate();
132 
133  public:
134 // >>>>>> @Date:2013/07/29 <Add> A.Ozaki
143  std::string run( const char* script, kome::objects::Variant &var, kome::objects::Parameters *pParams );
144 // <<<<<< @Date:2013/07/29 <Add> A.Ozaki
145 
151  std::string run();
152 
153  public:
158  void clearVariables();
159 
164  void addVariable( const char* name, const char* desc );
165 
171  unsigned int getNumberOfVariables();
172 
179  const char* getVariableName( const unsigned int idx );
180 
187  const char* getVariableDescription( const unsigned int idx );
188 
189  public:
195  static void setScriptFilePath( const char* path );
196 
202  static const char* getScriptFilePath();
203 
204  protected:
205 // >>>>>> @Date:2013/07/29 <Add> A.Ozaki
214  virtual std::string onRun( const char* script, kome::objects::Variant &var, kome::objects::Parameters *pParams ) = 0;
215 // <<<<<< @Date:2013/07/29 <Add> A.Ozaki
216 
222  virtual std::string onGetTemplate() = 0;
223  };
224 
230  protected:
235  ScriptManager();
236 
241  virtual ~ScriptManager();
242 
243  protected:
245  std::set< Script* > m_scriptSet;
246 
247  public:
253  void addScript( Script* script );
254 
260  void removeScript( Script* script );
261 
262  public:
268  static ScriptManager& getInstance();
269 
270  };
271 
272  }
273 }
274 
275 #endif // __KOME_OBJECTS_SCRIPT_H__
kome::objects::Variant m_refVariant
Definition: Script.h:74
void removeScript(Script *script)
removes script
Definition: Script.cpp:213
interfaces of Variant class
ScriptManager()
constructor
Definition: Script.cpp:194
std::vector< VariableInfo > m_variables
Definition: Script.h:67
script abstract class
Definition: Script.h:39
std::set< Script * > m_scriptSet
Definition: Script.h:245
script manager class
Definition: Script.h:229
class that treats data of various types
Definition: Variant.h:26
static ScriptManager & getInstance()
gets the instance. (This is the only object.)
Definition: Script.cpp:218
static std::string m_filePath
Definition: Script.h:70
variable information
Definition: Script.h:61
parameters of plug-in function management class
Definition: Parameters.h:28
std::string m_script
Definition: Script.h:55
void addScript(Script *script)
adds script
Definition: Script.cpp:206
kome::objects::Parameters * m_pParams
Definition: Script.h:77
virtual ~ScriptManager()
destructor
Definition: Script.cpp:199
interfaces of Parameters class