VR-Forces 4.6.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties 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 #include <boost/serialization/set.hpp>
21 
22 #include <vlutil/vlFilename.h>
23 #include <vlpi/entityType.h>
24 
25 #include <set>
26 #include <map>
27 
34 typedef bool (*DtEncryptDecryptFcn)(const std::string& scriptId, char* input, int inputLen, char** output, int& outputLen, bool encrypt,
35  void* usr);
36 
43 
46 const int DtScriptedTask_UseUiFile = 0x00000004;
47 
49 {
50 public:
51 
54 
56  virtual ~DtScriptedTaskMetaData();
57 
60 
62  DtScriptedTaskMetaData& operator=(const DtScriptedTaskMetaData& orig);
63 
65  virtual bool load(const DtFilename&);
66 
68  virtual bool load(const std::string&);
69 
71  virtual bool load(std::istream&);
72 
74  virtual bool hasUserEntryVariables() const;
75 
78  virtual bool save(const DtFilename&) const;
79 
81  virtual bool save(std::string&) const;
82 
84  virtual bool save(std::ostream&) const;
85 
87  virtual bool save() const;
88 
90  virtual void setFilename(const DtFilename&);
91 
94  virtual const DtFilename& filename() const;
95 
98  virtual const std::string& scriptId() const;
99 
102  virtual void setScriptId(const std::string&, bool makeAliasIfSystemScript = true);
103 
105  virtual void setScriptType(int);
106 
108  virtual int scriptType() const;
109 
112  virtual void setMenuText(const std::string&);
113  virtual const std::string& menuText() const;
115 
118  virtual void setExtendedMenuText(const std::string&);
119  virtual const std::string& extendedMenuText() const;
121 
124  virtual void setToolTip(const std::string&);
125  virtual const std::string& toolTip() const;
127 
130  virtual void setMenuIcon(const std::string&);
131  virtual const std::string& menuIcon() const;
133 
136  virtual void setUseUiFile(bool);
137  virtual bool useUiFile() const;
138 
139  virtual void setUiLayout(const std::string&);
140  virtual const std::string& uiLayout() const;
142 
147  virtual void setVersion(double);
148  virtual double version() const;
150 
154  virtual void setPriority(int);
155  virtual int priority() const;
157 
161  virtual void setEnabled(bool);
162  virtual bool enabled() const;
164 
169  virtual void setShortDescription(const std::string&);
170  virtual const std::string& shortDescription() const;
172 
175  virtual bool variable(const std::string& s, DtScriptedTaskVariable& var) const;
176 
179  virtual void setScriptEngine(const std::string&);
180  virtual const std::string& scriptEngine() const;
181 
185  virtual bool isInterpretedScript() const;
187 
190  static void addInterpretedScriptEngine(const std::string&);
191  static bool isInterpretedScriptEngine(const std::string&);
193 
196  virtual void setComments(const std::string&);
197  virtual const std::string& comments() const;
199 
203  virtual void setDescription(const std::string&);
204  virtual const std::string& description() const;
206 
210  virtual void setScriptLocation(const std::string&);
211  virtual const std::string& scriptLocation() const;
213 
215  virtual std::string uiLayoutLocation() const;
216 
220  virtual void setMenuLocations(const std::vector<std::string>&);
221  virtual void addMenuLocation(const std::string&);
222  virtual void removeMenuLocation(const std::string&);
223  virtual void removeMenuLocation(int);
224  virtual const std::vector<std::string>& menuLocations() const;
225  virtual void setShowInMenu(bool);
226  virtual bool showInMenu() const;
228 
231  virtual void setToolbarLocation(const std::string&);
232  virtual const std::string& toolbarLocation() const;
233  virtual void setShowInToolbar(bool);
234  virtual bool showInToolbar() const;
236 
240  virtual void setEntityTypes(const std::vector<DtEntityType>&);
241  virtual void addEntityType(const DtEntityType&);
242  virtual void removeEntityType(const DtEntityType&);
243  virtual void removeEntityType(int);
244  virtual std::vector<DtEntityType> entityTypes() const;
245  virtual bool supportsEntityType(const DtEntityType&) const;
246 
248  virtual bool hasEntityType(const DtEntityType&) const;
250 
255  virtual void setVariables(const std::vector<DtScriptedTaskVariable>&);
256  virtual void addVariable(const DtScriptedTaskVariable&);
257  virtual void insertVariableBefore(const DtScriptedTaskVariable&, const std::string& variable);
258  virtual void insertVariableBefore(const DtScriptedTaskVariable&, int i);
259  virtual void removeVariable(const std::string&);
260  virtual void removeVariable(int);
261 
264  virtual std::vector<DtScriptedTaskVariable> variables() const;
265 
267  virtual std::vector<DtScriptedTaskVariable> scriptedTaskVariables() const;
268 
272  virtual DtRwVariableBindings* defaultVariableBindings() const;
273 
275  virtual void setupDefaultsFromBindings(const DtRwVariableBindings&);
276 
278 
281  virtual void setScript(const std::string&);
282  virtual const std::string& script() const;
283 
286  virtual bool loadScript();
287 
289  virtual bool loadScript(const std::string&);
290 
293  virtual bool loadUiLayout();
294 
296  virtual bool loadUiLayout(const std::string&);
297 
300  virtual void setIsSystemScript(bool);
301  virtual bool isSystemScript() const;
303 
306  virtual void setActionCategories(const std::set<std::string>&);
307  virtual void addActionCategory(const std::string&);
308  virtual void removeActionCategory(const std::string&);
309  virtual bool hasActionCategory(const std::string&) const;
310  virtual const std::set<std::string>& actionCategories() const;
312 
315  virtual void setDoctrines(const std::set<std::string>&);
316  virtual bool addDoctrine(const std::string&);
317  virtual bool removeDoctrine(const std::string&);
318  virtual bool supportsDoctrine(const std::string&) const;
319  virtual const std::set<std::string>& doctrines() const;
320  virtual bool renameDoctrine(const std::string& from, const std::string& to);
321  virtual void setAvailableToAllDoctrines(bool);
322  virtual bool availableToAllDoctrines() const;
324 
327  virtual void setShowOnTopLevelRightClickMenu(bool);
328  virtual bool showOnTopLevelRightClickMenu() const;
330 
334  virtual void setDirectoryPath(const std::string&);
335  virtual const std::string& directoryPath() const;
337 
341  virtual const std::set<std::string>& aliases() const;
342  virtual void addAlias(const std::string&);
343  virtual void removeAlias(const std::string&);
344  virtual void clearAliases();
345  virtual void setAliases(const std::set<std::string>&);
346  virtual bool isAliased(const std::string&) const;
348 
350  virtual void assignNewScriptId();
351 
353  virtual bool supports(const DtEntityType&) const;
354 
356  bool operator==(const DtScriptedTaskMetaData&) const;
357  bool operator!=(const DtScriptedTaskMetaData& rhs) const { return !(*this == rhs); };
358 
360  static void setEncryptDecryptFunction(DtEncryptDecryptFcn, void* usr);
361  static void getEncryptDecryptFunction(DtEncryptDecryptFcn&, void*& usr);
362 
364  virtual bool encrypt(const std::string& source, std::string& dest) const;
365 
367  virtual bool encryptScript();
368 
370  virtual bool encryptSize(const std::string& source, int& size) const;
371 
373  virtual bool decrypt(const std::string& source, std::string& dest) const;
374 
377  virtual bool decryptScript();
378 
381  virtual std::auto_ptr<DtRwVariableBindings> upgradeVariables(const DtRwVariableBindings&) const;
382 
387  virtual void setEncrypted(bool);
388  virtual bool encrypted() const;
390 
393  virtual void setFlag(int, bool);
394  virtual bool flagSet(int) const;
396 
402  virtual void loadTranslationFile(const std::string& lang);
403  virtual void translationData(char*& data, unsigned int& len) const;
404  virtual std::string translationLanguage() const;
405  virtual void clearTranslationData();
407 
409  virtual std::string removeTrailingLinefeeds(const std::string&);
410 
412  virtual void makeAllIdsLowercase();
413 
414 protected:
415  virtual std::string readFile(const std::string&) const;
416 
417 protected:
418 
420  friend class boost::serialization::access;
421 
425  template<class Archive>
426  void serialize(Archive & ar, const unsigned int version)
427  {
428  ar & BOOST_SERIALIZATION_NVP(myScriptId);
429  ar & BOOST_SERIALIZATION_NVP(myMenuText);
430  ar & BOOST_SERIALIZATION_NVP(myToolTip);
431  ar & BOOST_SERIALIZATION_NVP(myMenuIcon);
432  ar & BOOST_SERIALIZATION_NVP(myVersion);
433  ar & BOOST_SERIALIZATION_NVP(myScriptEngine);
434  ar & BOOST_SERIALIZATION_NVP(myComments);
435  ar & BOOST_SERIALIZATION_NVP(myMenuLocations);
436  ar & BOOST_SERIALIZATION_NVP(myIsSystemScript);
437  ar & BOOST_SERIALIZATION_NVP(myDescription);
438  ar & BOOST_SERIALIZATION_NVP(myScriptLocation);
439  ar & BOOST_SERIALIZATION_NVP(myDirectoryPath);
440  ar & BOOST_SERIALIZATION_NVP(myEntityTypes);
441  ar & BOOST_SERIALIZATION_NVP(myVariables);
442  ar & BOOST_SERIALIZATION_NVP(myScript);
443 
444  if (version >= 2)
445  {
446  ar & BOOST_SERIALIZATION_NVP(myActionCategories);
447 
448  if (version >= 3)
449  {
450  ar & BOOST_SERIALIZATION_NVP(myShowInMenu);
451  }
452 
453  if (version >= 4)
454  {
455  ar & BOOST_SERIALIZATION_NVP(myEncrypted);
456  }
457 
458  if (version >= 5)
459  {
460  ar & BOOST_SERIALIZATION_NVP(myScriptType);
461  }
462  else
463  {
464  myScriptType = DtScriptedTaskScriptedTask;
465  }
466 
467  if (version >= 6)
468  {
469  ar & BOOST_SERIALIZATION_NVP(myDoctrines);
470  ar & BOOST_SERIALIZATION_NVP(myFlags);
471  }
472  else
473  {
475  }
476 
477  if (version >= 7)
478  {
479  ar & BOOST_SERIALIZATION_NVP(myShowInToolbar);
480  ar & BOOST_SERIALIZATION_NVP(myToolbarLocation);
481  }
482 
483  if (version >= 8)
484  {
485  ar & BOOST_SERIALIZATION_NVP(myExtendedMenuText);
486  }
487 
488  if (version >= 9)
489  {
490  ar & BOOST_SERIALIZATION_NVP(myShortDescription);
491  }
492 
493  if (version >= 10)
494  {
495  ar & BOOST_SERIALIZATION_NVP(myUiLayout);
496  }
497 
498  if (version >= 11)
499  {
500  ar & BOOST_SERIALIZATION_NVP(myAliases);
501  }
502 
503  if (Archive::is_loading::value && (version <= 11))
504  {
505  makeAllIdsLowercase();
506  }
507  }
508  }
509 
510 public:
511  std::string myScriptId;
512  std::string myMenuText;
513  std::string myExtendedMenuText;
514  std::string myToolTip;
515  std::string myMenuIcon;
516  std::string myScriptEngine;
517  std::string myComments;
518  std::string myDescription;
519  mutable std::string myScriptLocation;
520  std::string myShortDescription;
521  std::string myUiLayout;
522 
523  mutable std::string myScript;
524  std::string myDirectoryPath;
525  std::vector<std::string> myMenuLocations;
526  std::vector<std::string> myEntityTypes;
527  std::vector<std::string> myVariables;
528  mutable std::map<std::string, DtScriptedTaskVariable> myCachedVariables;
529  std::string myActionCategories;
530  std::string myDoctrines;
532 
533  std::string myToolbarLocation;
535 
536  mutable std::set<std::string> myActionCategoriesSet;
537  mutable std::set<std::string> myDoctrinesSet;
538 
539  double myVersion;
540  mutable DtFilename myFile;
542  mutable bool myEncrypted;
543 
546 
548  int myFlags;
549 
553 
554  std::set<std::string> myAliases;
555 
556  static std::vector<std::string> theInterpretedScriptEngines;
557 };
558 
559 namespace DtBufferSerialize
560 {
562  DT_DLL_vrfutil char *encode(const DtScriptedTaskMetaData& val, char *buffer);
563  DT_DLL_vrfutil const char *decode(DtScriptedTaskMetaData& val, const char *buffer);
564 }
565 

Document ID: Generated on Wed Jul 25 16:57:45 EDT 2018 from SVN revision 190790
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)