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 
32 typedef bool (*DtEncryptDecryptFcn)(const std::string& scriptId, char* input, int inputLen, char** output, int& outputLen, bool encrypt,
33  void* usr);
34 
40 
42 
44 {
45 public:
46 
49 
51  virtual ~DtScriptedTaskMetaData();
52 
55 
57  DtScriptedTaskMetaData& operator=(const DtScriptedTaskMetaData& orig);
58 
60  virtual bool load(const DtFilename&);
61 
63  virtual bool load(const std::string&);
64 
66  virtual bool load(std::istream&);
67 
69  virtual bool hasUserEntryVariables() const;
70 
73  virtual bool save(const DtFilename&) const;
74 
76  virtual bool save(std::string&) const;
77 
79  virtual bool save(std::ostream&) const;
80 
82  virtual bool save() const;
83 
86  virtual const DtFilename& filename() const;
87 
90  virtual const std::string& scriptId() const;
91 
93  virtual void setScriptId(const std::string&);
94 
96  virtual void setScriptType(int);
97 
99  virtual int scriptType() const;
100 
103  virtual void setMenuText(const std::string&);
104  virtual const std::string& menuText() const;
106 
109  virtual void setExtendedMenuText(const std::string&);
110  virtual const std::string& extendedMenuText() const;
112 
115  virtual void setToolTip(const std::string&);
116  virtual const std::string& toolTip() const;
118 
121  virtual void setMenuIcon(const std::string&);
122  virtual const std::string& menuIcon() const;
124 
129  virtual void setVersion(double);
130  virtual double version() const;
132 
136  virtual void setPriority(int);
137  virtual int priority() const;
139 
143  virtual void setEnabled(bool);
144  virtual bool enabled() const;
146 
149  virtual bool variable(const std::string& s, DtScriptedTaskVariable& var) const;
150 
153  virtual void setScriptEngine(const std::string&);
154  virtual const std::string& scriptEngine() const;
155 
159  virtual bool isInterpretedScript() const;
161 
164  static void addInterpretedScriptEngine(const std::string&);
165  static bool isInterpretedScriptEngine(const std::string&);
167 
170  virtual void setComments(const std::string&);
171  virtual const std::string& comments() const;
173 
177  virtual void setDescription(const std::string&);
178  virtual const std::string& description() const;
180 
184  virtual void setScriptLocation(const std::string&);
185  virtual const std::string& scriptLocation() const;
187 
191  virtual void setMenuLocations(const std::vector<std::string>&);
192  virtual void addMenuLocation(const std::string&);
193  virtual void removeMenuLocation(const std::string&);
194  virtual void removeMenuLocation(int);
195  virtual const std::vector<std::string>& menuLocations() const;
196  virtual void setShowInMenu(bool);
197  virtual bool showInMenu() const;
199 
202  virtual void setToolbarLocation(const std::string&);
203  virtual const std::string& toolbarLocation() const;
204  virtual void setShowInToolbar(bool);
205  virtual bool showInToolbar() const;
207 
211  virtual void setEntityTypes(const std::vector<DtEntityType>&);
212  virtual void addEntityType(const DtEntityType&);
213  virtual void removeEntityType(const DtEntityType&);
214  virtual void removeEntityType(int);
215  virtual std::vector<DtEntityType> entityTypes() const;
216  virtual bool supportsEntityType(const DtEntityType&) const;
217 
219  virtual bool hasEntityType(const DtEntityType&) const;
221 
226  virtual void setVariables(const std::vector<DtScriptedTaskVariable>&);
227  virtual void addVariable(const DtScriptedTaskVariable&);
228  virtual void insertVariableBefore(const DtScriptedTaskVariable&, const std::string& variable);
229  virtual void insertVariableBefore(const DtScriptedTaskVariable&, int i);
230  virtual void removeVariable(const std::string&);
231  virtual void removeVariable(int);
232  virtual std::vector<DtScriptedTaskVariable> variables() const;
233 
237  virtual DtRwVariableBindings* defaultVariableBindings() const;
238 
240  virtual void setupDefaultsFromBindings(const DtRwVariableBindings&);
241 
243 
246  virtual void setScript(const std::string&);
247  virtual const std::string& script() const;
248 
251  virtual bool loadScript();
252 
254  virtual bool loadScript(const std::string&);
255 
258  virtual void setIsSystemScript(bool);
259  virtual bool isSystemScript() const;
261 
264  virtual void setActionCategories(const std::set<std::string>&);
265  virtual void addActionCategory(const std::string&);
266  virtual void removeActionCategory(const std::string&);
267  virtual bool hasActionCategory(const std::string&) const;
268  virtual const std::set<std::string>& actionCategories() const;
270 
273  virtual void setDoctrines(const std::set<std::string>&);
274  virtual bool addDoctrine(const std::string&);
275  virtual bool removeDoctrine(const std::string&);
276  virtual bool supportsDoctrine(const std::string&) const;
277  virtual const std::set<std::string>& doctrines() const;
278  virtual bool renameDoctrine(const std::string& from, const std::string& to);
279  virtual void setAvailableToAllDoctrines(bool);
280  virtual bool availableToAllDoctrines() const;
282 
286  virtual void setDirectoryPath(const std::string&);
287  virtual const std::string& directoryPath() const;
289 
291  virtual void assignNewScriptId();
292 
294  virtual bool supports(const DtEntityType&) const;
295 
297  bool operator==(const DtScriptedTaskMetaData&) const;
298  bool operator!=(const DtScriptedTaskMetaData& rhs) const { return !(*this == rhs); };
299 
301  static void setEncryptDecryptFunction(DtEncryptDecryptFcn, void* usr);
302  static void getEncryptDecryptFunction(DtEncryptDecryptFcn&, void*& usr);
303 
305  virtual bool encrypt(const std::string& source, std::string& dest) const;
306 
308  virtual bool encryptScript();
309 
311  virtual bool encryptSize(const std::string& source, int& size) const;
312 
314  virtual bool decrypt(const std::string& source, std::string& dest) const;
315 
318  virtual bool decryptScript();
319 
324  virtual void setEncrypted(bool);
325  virtual bool encrypted() const;
327 
330  virtual void setFlag(int, bool);
331  virtual bool flagSet(int) const;
333 
339  virtual void loadTranslationFile(const std::string& lang);
340  virtual void translationData(char*& data, unsigned int& len) const;
341  virtual std::string translationLanguage() const;
342  virtual void clearTranslationData();
344 
345 protected:
346 
348  friend class boost::serialization::access;
349 
353  template<class Archive>
354  void serialize(Archive & ar, const unsigned int version)
355  {
356  ar & BOOST_SERIALIZATION_NVP(myScriptId);
357  ar & BOOST_SERIALIZATION_NVP(myMenuText);
358  ar & BOOST_SERIALIZATION_NVP(myToolTip);
359  ar & BOOST_SERIALIZATION_NVP(myMenuIcon);
360  ar & BOOST_SERIALIZATION_NVP(myVersion);
361  ar & BOOST_SERIALIZATION_NVP(myScriptEngine);
362  ar & BOOST_SERIALIZATION_NVP(myComments);
363  ar & BOOST_SERIALIZATION_NVP(myMenuLocations);
364  ar & BOOST_SERIALIZATION_NVP(myIsSystemScript);
365  ar & BOOST_SERIALIZATION_NVP(myDescription);
366  ar & BOOST_SERIALIZATION_NVP(myScriptLocation);
367  ar & BOOST_SERIALIZATION_NVP(myDirectoryPath);
368  ar & BOOST_SERIALIZATION_NVP(myEntityTypes);
369  ar & BOOST_SERIALIZATION_NVP(myVariables);
370  ar & BOOST_SERIALIZATION_NVP(myScript);
371 
372  if (version >= 2)
373  {
374  ar & BOOST_SERIALIZATION_NVP(myActionCategories);
375 
376  if (version >= 3)
377  {
378  ar & BOOST_SERIALIZATION_NVP(myShowInMenu);
379  }
380 
381  if (version >= 4)
382  {
383  ar & BOOST_SERIALIZATION_NVP(myEncrypted);
384  }
385 
386  if (version >= 5)
387  {
388  ar & BOOST_SERIALIZATION_NVP(myScriptType);
389  }
390  else
391  {
392  myScriptType = DtScriptedTaskScriptedTask;
393  }
394 
395  if (version >= 6)
396  {
397  ar & BOOST_SERIALIZATION_NVP(myDoctrines);
398  ar & BOOST_SERIALIZATION_NVP(myFlags);
399  }
400  else
401  {
403  }
404 
405  if (version >= 7)
406  {
407  ar & BOOST_SERIALIZATION_NVP(myShowInToolbar);
408  ar & BOOST_SERIALIZATION_NVP(myToolbarLocation);
409  }
410 
411  if (version >= 8)
412  {
413  ar & BOOST_SERIALIZATION_NVP(myExtendedMenuText);
414  }
415  }
416  }
417 
418 public:
419  std::string myScriptId;
420  std::string myMenuText;
421  std::string myExtendedMenuText;
422  std::string myToolTip;
423  std::string myMenuIcon;
424  std::string myScriptEngine;
425  std::string myComments;
426  std::string myDescription;
427  std::string myScriptLocation;
428  mutable std::string myScript;
429  std::string myDirectoryPath;
430  std::vector<std::string> myMenuLocations;
431  std::vector<std::string> myEntityTypes;
432  std::vector<std::string> myVariables;
433  std::string myActionCategories;
434  std::string myDoctrines;
436 
437  std::string myToolbarLocation;
439 
440  mutable std::set<std::string> myActionCategoriesSet;
441  mutable std::set<std::string> myDoctrinesSet;
442 
443  double myVersion;
444  mutable DtFilename myFile;
446  mutable bool myEncrypted;
447 
450 
452  int myFlags;
453 
457 
458  static std::vector<std::string> theInterpretedScriptEngines;
459 };
460 
461 namespace DtBufferSerialize
462 {
464  DT_DLL_vrfutil char *encode(const DtScriptedTaskMetaData& val, char *buffer);
465  DT_DLL_vrfutil const char *decode(DtScriptedTaskMetaData& val, const char *buffer);
466 }
467 

Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)