VR-Forces 4.2 Class Documentation
scriptedTaskMetaData.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #pragma once
10 
11 #include "vrfutil/vrfutilDefines.h"
13 
14 #include <boost/serialization/access.hpp>
15 #include <boost/serialization/nvp.hpp>
16 #include <boost/serialization/list.hpp>
17 #include <boost/serialization/map.hpp>
18 #include <boost/serialization/vector.hpp>
19 #include <boost/serialization/string.hpp>
20 
21 #include <vlutil/vlFilename.h>
22 #include <vlpi/entityType.h>
23 
24 #include <set>
25 
32 typedef bool (*DtEncryptDecryptFcn)(const std::string& scriptId, char* input, int inputLen, char** output, int& outputLen, bool encrypt,
33  void* usr);
34 
39 
41 
43 {
44 public:
45 
48 
50  virtual ~DtScriptedTaskMetaData();
51 
54 
56  DtScriptedTaskMetaData& operator=(const DtScriptedTaskMetaData& orig);
57 
59  virtual bool load(const DtFilename&);
60 
62  virtual bool load(const std::string&);
63 
65  virtual bool load(std::istream&);
66 
68  virtual bool hasUserEntryVariables() const;
69 
72  virtual bool save(const DtFilename&) const;
73 
75  virtual bool save(std::string&) const;
76 
78  virtual bool save(std::ostream&) const;
79 
81  virtual bool save() const;
82 
85  virtual const DtFilename& filename() const;
86 
89  virtual const std::string& scriptId() const;
90 
92  virtual void setScriptId(const std::string&);
93 
95  virtual void setScriptType(int);
96 
98  virtual int scriptType() const;
99 
102  virtual void setMenuText(const std::string&);
103  virtual const std::string& menuText() const;
105 
108  virtual void setToolTip(const std::string&);
109  virtual const std::string& toolTip() const;
111 
114  virtual void setMenuIcon(const std::string&);
115  virtual const std::string& menuIcon() const;
117 
122  virtual void setVersion(double);
123  virtual double version() const;
125 
129  virtual void setPriority(int);
130  virtual int priority() const;
132 
136  virtual void setEnabled(bool);
137  virtual bool enabled() const;
139 
142  virtual bool variable(const std::string& s, DtScriptedTaskVariable& var) const;
143 
146  virtual void setScriptEngine(const std::string&);
147  virtual const std::string& scriptEngine() const;
148 
152  virtual bool isInterpretedScript() const;
154 
157  static void addInterpretedScriptEngine(const std::string&);
158  static bool isInterpretedScriptEngine(const std::string&);
160 
163  virtual void setComments(const std::string&);
164  virtual const std::string& comments() const;
166 
170  virtual void setDescription(const std::string&);
171  virtual const std::string& description() const;
173 
177  virtual void setScriptLocation(const std::string&);
178  virtual const std::string& scriptLocation() const;
180 
184  virtual void setMenuLocations(const std::vector<std::string>&);
185  virtual void addMenuLocation(const std::string&);
186  virtual void removeMenuLocation(const std::string&);
187  virtual void removeMenuLocation(int);
188  virtual const std::vector<std::string>& menuLocations() const;
189  virtual void setShowInMenu(bool);
190  virtual bool showInMenu() const;
192 
196  virtual void setEntityTypes(const std::vector<DtEntityType>&);
197  virtual void addEntityType(const DtEntityType&);
198  virtual void removeEntityType(const DtEntityType&);
199  virtual void removeEntityType(int);
200  virtual std::vector<DtEntityType> entityTypes() const;
201  virtual bool supportsEntityType(const DtEntityType&) const;
203 
208  virtual void setVariables(const std::vector<DtScriptedTaskVariable>&);
209  virtual void addVariable(const DtScriptedTaskVariable&);
210  virtual void insertVariableBefore(const DtScriptedTaskVariable&, const std::string& variable);
211  virtual void insertVariableBefore(const DtScriptedTaskVariable&, int i);
212  virtual void removeVariable(const std::string&);
213  virtual void removeVariable(int);
214  virtual std::vector<DtScriptedTaskVariable> variables() const;
215 
219  virtual DtRwVariableBindings* defaultVariableBindings() const;
220 
222  virtual void setupDefaultsFromBindings(const DtRwVariableBindings&);
223 
225 
228  virtual void setScript(const std::string&);
229  virtual const std::string& script() const;
230 
233  virtual bool loadScript();
234 
236  virtual bool loadScript(const std::string&);
237 
240  virtual void setIsSystemScript(bool);
241  virtual bool isSystemScript() const;
243 
246  virtual void setActionCategories(const std::set<std::string>&);
247  virtual void addActionCategory(const std::string&);
248  virtual void removeActionCategory(const std::string&);
249  virtual bool hasActionCategory(const std::string&) const;
250  virtual const std::set<std::string>& actionCategories() const;
252 
255  virtual void setDoctrines(const std::set<std::string>&);
256  virtual bool addDoctrine(const std::string&);
257  virtual bool removeDoctrine(const std::string&);
258  virtual bool supportsDoctrine(const std::string&) const;
259  virtual const std::set<std::string>& doctrines() const;
260  virtual void renameDoctrine(const std::string& from, const std::string& to);
261  virtual void setAvailableToAllDoctrines(bool);
262  virtual bool availableToAllDoctrines() const;
264 
268  virtual void setDirectoryPath(const std::string&);
269  virtual const std::string& directoryPath() const;
271 
273  virtual void assignNewScriptId();
274 
276  virtual bool supports(const DtEntityType&) const;
277 
279  bool operator==(const DtScriptedTaskMetaData&) const;
280  bool operator!=(const DtScriptedTaskMetaData& rhs) const { return !(*this == rhs); };
281 
283  static void setEncryptDecryptFunction(DtEncryptDecryptFcn, void* usr);
284  static void getEncryptDecryptFunction(DtEncryptDecryptFcn&, void*& usr);
285 
287  virtual bool encrypt(const std::string& source, std::string& dest) const;
288 
290  virtual bool encryptScript();
291 
293  virtual bool encryptSize(const std::string& source, int& size) const;
294 
296  virtual bool decrypt(const std::string& source, std::string& dest) const;
297 
300  virtual bool decryptScript();
301 
306  virtual void setEncrypted(bool);
307  virtual bool encrypted() const;
309 
312  virtual void setFlag(int, bool);
313  virtual bool flagSet(int) const;
315 
316 protected:
317 
319  friend class boost::serialization::access;
320 
324  template<class Archive>
325  void serialize(Archive & ar, const unsigned int version)
326  {
327  ar & BOOST_SERIALIZATION_NVP(myScriptId);
328  ar & BOOST_SERIALIZATION_NVP(myMenuText);
329  ar & BOOST_SERIALIZATION_NVP(myToolTip);
330  ar & BOOST_SERIALIZATION_NVP(myMenuIcon);
331  ar & BOOST_SERIALIZATION_NVP(myVersion);
332  ar & BOOST_SERIALIZATION_NVP(myScriptEngine);
333  ar & BOOST_SERIALIZATION_NVP(myComments);
334  ar & BOOST_SERIALIZATION_NVP(myMenuLocations);
335  ar & BOOST_SERIALIZATION_NVP(myIsSystemScript);
336  ar & BOOST_SERIALIZATION_NVP(myDescription);
337  ar & BOOST_SERIALIZATION_NVP(myScriptLocation);
338  ar & BOOST_SERIALIZATION_NVP(myDirectoryPath);
339  ar & BOOST_SERIALIZATION_NVP(myEntityTypes);
340  ar & BOOST_SERIALIZATION_NVP(myVariables);
341  ar & BOOST_SERIALIZATION_NVP(myScript);
342 
343  if (version >= 2)
344  {
345  ar & BOOST_SERIALIZATION_NVP(myActionCategories);
346 
347  if (version >= 3)
348  {
349  ar & BOOST_SERIALIZATION_NVP(myShowInMenu);
350  }
351 
352  if (version >= 4)
353  {
354  ar & BOOST_SERIALIZATION_NVP(myEncrypted);
355  }
356 
357  if (version >= 5)
358  {
359  ar & BOOST_SERIALIZATION_NVP(myScriptType);
360  }
361  else
362  {
363  myScriptType = DtScriptedTaskScriptedTask;
364  }
365 
366  if (version >= 6)
367  {
368  ar & BOOST_SERIALIZATION_NVP(myDoctrines);
369  ar & BOOST_SERIALIZATION_NVP(myFlags);
370  }
371  else
372  {
374  }
375  }
376  }
377 
378 public:
379  std::string myScriptId;
380  std::string myMenuText;
381  std::string myToolTip;
382  std::string myMenuIcon;
383  std::string myScriptEngine;
384  std::string myComments;
385  std::string myDescription;
386  std::string myScriptLocation;
387  mutable std::string myScript;
388  std::string myDirectoryPath;
389  std::vector<std::string> myMenuLocations;
390  std::vector<std::string> myEntityTypes;
391  std::vector<std::string> myVariables;
392  std::string myActionCategories;
393  std::string myDoctrines;
395 
396  mutable std::set<std::string> myActionCategoriesSet;
397  mutable std::set<std::string> myDoctrinesSet;
398 
399  double myVersion;
400  mutable DtFilename myFile;
402  mutable bool myEncrypted;
403 
406 
408  int myFlags;
409 
410  static std::vector<std::string> theInterpretedScriptEngines;
411 };
412 
413 namespace DtBufferSerialize
414 {
416  DT_DLL_vrfutil char *encode(const DtScriptedTaskMetaData& val, char *buffer);
417  DT_DLL_vrfutil const char *decode(DtScriptedTaskMetaData& val, const char *buffer);
418 }
419 

Document ID: Generated on Sun Nov 24 19:49:21 EST 2013 from SVN revision 133924
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)