VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
scriptedTaskMetaData.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2014 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 #include <map>
26 
33 typedef bool (*DtEncryptDecryptFcn)(const std::string& scriptId, char* input, int inputLen, char** output, int& outputLen, bool encrypt,
34  void* usr);
35 
41 
43 
45 {
46 public:
47 
50 
52  virtual ~DtScriptedTaskMetaData();
53 
56 
58  DtScriptedTaskMetaData& operator=(const DtScriptedTaskMetaData& orig);
59 
61  virtual bool load(const DtFilename&);
62 
64  virtual bool load(const std::string&);
65 
67  virtual bool load(std::istream&);
68 
70  virtual bool hasUserEntryVariables() const;
71 
74  virtual bool save(const DtFilename&) const;
75 
77  virtual bool save(std::string&) const;
78 
80  virtual bool save(std::ostream&) const;
81 
83  virtual bool save() const;
84 
87  virtual const DtFilename& filename() const;
88 
91  virtual const std::string& scriptId() const;
92 
94  virtual void setScriptId(const std::string&);
95 
97  virtual void setScriptType(int);
98 
100  virtual int scriptType() const;
101 
104  virtual void setMenuText(const std::string&);
105  virtual const std::string& menuText() const;
107 
110  virtual void setExtendedMenuText(const std::string&);
111  virtual const std::string& extendedMenuText() const;
113 
116  virtual void setToolTip(const std::string&);
117  virtual const std::string& toolTip() const;
119 
122  virtual void setMenuIcon(const std::string&);
123  virtual const std::string& menuIcon() const;
125 
130  virtual void setVersion(double);
131  virtual double version() const;
133 
137  virtual void setPriority(int);
138  virtual int priority() const;
140 
144  virtual void setEnabled(bool);
145  virtual bool enabled() const;
147 
150  virtual bool variable(const std::string& s, DtScriptedTaskVariable& var) const;
151 
154  virtual void setScriptEngine(const std::string&);
155  virtual const std::string& scriptEngine() const;
156 
160  virtual bool isInterpretedScript() const;
162 
165  static void addInterpretedScriptEngine(const std::string&);
166  static bool isInterpretedScriptEngine(const std::string&);
168 
171  virtual void setComments(const std::string&);
172  virtual const std::string& comments() const;
174 
178  virtual void setDescription(const std::string&);
179  virtual const std::string& description() const;
181 
185  virtual void setScriptLocation(const std::string&);
186  virtual const std::string& scriptLocation() const;
188 
192  virtual void setMenuLocations(const std::vector<std::string>&);
193  virtual void addMenuLocation(const std::string&);
194  virtual void removeMenuLocation(const std::string&);
195  virtual void removeMenuLocation(int);
196  virtual const std::vector<std::string>& menuLocations() const;
197  virtual void setShowInMenu(bool);
198  virtual bool showInMenu() const;
200 
203  virtual void setToolbarLocation(const std::string&);
204  virtual const std::string& toolbarLocation() const;
205  virtual void setShowInToolbar(bool);
206  virtual bool showInToolbar() const;
208 
212  virtual void setEntityTypes(const std::vector<DtEntityType>&);
213  virtual void addEntityType(const DtEntityType&);
214  virtual void removeEntityType(const DtEntityType&);
215  virtual void removeEntityType(int);
216  virtual std::vector<DtEntityType> entityTypes() const;
217  virtual bool supportsEntityType(const DtEntityType&) const;
218 
220  virtual bool hasEntityType(const DtEntityType&) const;
222 
227  virtual void setVariables(const std::vector<DtScriptedTaskVariable>&);
228  virtual void addVariable(const DtScriptedTaskVariable&);
229  virtual void insertVariableBefore(const DtScriptedTaskVariable&, const std::string& variable);
230  virtual void insertVariableBefore(const DtScriptedTaskVariable&, int i);
231  virtual void removeVariable(const std::string&);
232  virtual void removeVariable(int);
233  virtual std::vector<DtScriptedTaskVariable> variables() const;
234 
238  virtual DtRwVariableBindings* defaultVariableBindings() const;
239 
241  virtual void setupDefaultsFromBindings(const DtRwVariableBindings&);
242 
244 
247  virtual void setScript(const std::string&);
248  virtual const std::string& script() const;
249 
252  virtual bool loadScript();
253 
255  virtual bool loadScript(const std::string&);
256 
259  virtual void setIsSystemScript(bool);
260  virtual bool isSystemScript() const;
262 
265  virtual void setActionCategories(const std::set<std::string>&);
266  virtual void addActionCategory(const std::string&);
267  virtual void removeActionCategory(const std::string&);
268  virtual bool hasActionCategory(const std::string&) const;
269  virtual const std::set<std::string>& actionCategories() const;
271 
274  virtual void setDoctrines(const std::set<std::string>&);
275  virtual bool addDoctrine(const std::string&);
276  virtual bool removeDoctrine(const std::string&);
277  virtual bool supportsDoctrine(const std::string&) const;
278  virtual const std::set<std::string>& doctrines() const;
279  virtual bool renameDoctrine(const std::string& from, const std::string& to);
280  virtual void setAvailableToAllDoctrines(bool);
281  virtual bool availableToAllDoctrines() const;
283 
287  virtual void setDirectoryPath(const std::string&);
288  virtual const std::string& directoryPath() const;
290 
292  virtual void assignNewScriptId();
293 
295  virtual bool supports(const DtEntityType&) const;
296 
298  bool operator==(const DtScriptedTaskMetaData&) const;
299  bool operator!=(const DtScriptedTaskMetaData& rhs) const { return !(*this == rhs); };
300 
302  static void setEncryptDecryptFunction(DtEncryptDecryptFcn, void* usr);
303  static void getEncryptDecryptFunction(DtEncryptDecryptFcn&, void*& usr);
304 
306  virtual bool encrypt(const std::string& source, std::string& dest) const;
307 
309  virtual bool encryptScript();
310 
312  virtual bool encryptSize(const std::string& source, int& size) const;
313 
315  virtual bool decrypt(const std::string& source, std::string& dest) const;
316 
319  virtual bool decryptScript();
320 
325  virtual void setEncrypted(bool);
326  virtual bool encrypted() const;
328 
331  virtual void setFlag(int, bool);
332  virtual bool flagSet(int) const;
334 
340  virtual void loadTranslationFile(const std::string& lang);
341  virtual void translationData(char*& data, unsigned int& len) const;
342  virtual std::string translationLanguage() const;
343  virtual void clearTranslationData();
345 
346 protected:
347 
349  friend class boost::serialization::access;
350 
354  template<class Archive>
355  void serialize(Archive & ar, const unsigned int version)
356  {
357  ar & BOOST_SERIALIZATION_NVP(myScriptId);
358  ar & BOOST_SERIALIZATION_NVP(myMenuText);
359  ar & BOOST_SERIALIZATION_NVP(myToolTip);
360  ar & BOOST_SERIALIZATION_NVP(myMenuIcon);
361  ar & BOOST_SERIALIZATION_NVP(myVersion);
362  ar & BOOST_SERIALIZATION_NVP(myScriptEngine);
363  ar & BOOST_SERIALIZATION_NVP(myComments);
364  ar & BOOST_SERIALIZATION_NVP(myMenuLocations);
365  ar & BOOST_SERIALIZATION_NVP(myIsSystemScript);
366  ar & BOOST_SERIALIZATION_NVP(myDescription);
367  ar & BOOST_SERIALIZATION_NVP(myScriptLocation);
368  ar & BOOST_SERIALIZATION_NVP(myDirectoryPath);
369  ar & BOOST_SERIALIZATION_NVP(myEntityTypes);
370  ar & BOOST_SERIALIZATION_NVP(myVariables);
371  ar & BOOST_SERIALIZATION_NVP(myScript);
372 
373  if (version >= 2)
374  {
375  ar & BOOST_SERIALIZATION_NVP(myActionCategories);
376 
377  if (version >= 3)
378  {
379  ar & BOOST_SERIALIZATION_NVP(myShowInMenu);
380  }
381 
382  if (version >= 4)
383  {
384  ar & BOOST_SERIALIZATION_NVP(myEncrypted);
385  }
386 
387  if (version >= 5)
388  {
389  ar & BOOST_SERIALIZATION_NVP(myScriptType);
390  }
391  else
392  {
393  myScriptType = DtScriptedTaskScriptedTask;
394  }
395 
396  if (version >= 6)
397  {
398  ar & BOOST_SERIALIZATION_NVP(myDoctrines);
399  ar & BOOST_SERIALIZATION_NVP(myFlags);
400  }
401  else
402  {
404  }
405 
406  if (version >= 7)
407  {
408  ar & BOOST_SERIALIZATION_NVP(myShowInToolbar);
409  ar & BOOST_SERIALIZATION_NVP(myToolbarLocation);
410  }
411 
412  if (version >= 8)
413  {
414  ar & BOOST_SERIALIZATION_NVP(myExtendedMenuText);
415  }
416  }
417  }
418 
419 public:
420  std::string myScriptId;
421  std::string myMenuText;
422  std::string myExtendedMenuText;
423  std::string myToolTip;
424  std::string myMenuIcon;
425  std::string myScriptEngine;
426  std::string myComments;
427  std::string myDescription;
428  std::string myScriptLocation;
429  mutable std::string myScript;
430  std::string myDirectoryPath;
431  std::vector<std::string> myMenuLocations;
432  std::vector<std::string> myEntityTypes;
433  std::vector<std::string> myVariables;
434  mutable std::map<std::string, DtScriptedTaskVariable> myCachedVariables;
435  std::string myActionCategories;
436  std::string myDoctrines;
438 
439  std::string myToolbarLocation;
441 
442  mutable std::set<std::string> myActionCategoriesSet;
443  mutable std::set<std::string> myDoctrinesSet;
444 
445  double myVersion;
446  mutable DtFilename myFile;
448  mutable bool myEncrypted;
449 
452 
454  int myFlags;
455 
459 
460  static std::vector<std::string> theInterpretedScriptEngines;
461 };
462 
463 namespace DtBufferSerialize
464 {
466  DT_DLL_vrfutil char *encode(const DtScriptedTaskMetaData& val, char *buffer);
467  DT_DLL_vrfutil const char *decode(DtScriptedTaskMetaData& val, const char *buffer);
468 }
469 

Document ID: Generated on Mon Jul 4 01:00:18 EDT 2016 from SVN revision 166489
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)