VR-Forces 4.5 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 
42 
45 
47 {
48 public:
49 
52 
54  virtual ~DtScriptedTaskMetaData();
55 
58 
60  DtScriptedTaskMetaData& operator=(const DtScriptedTaskMetaData& orig);
61 
63  virtual bool load(const DtFilename&);
64 
66  virtual bool load(const std::string&);
67 
69  virtual bool load(std::istream&);
70 
72  virtual bool hasUserEntryVariables() const;
73 
76  virtual bool save(const DtFilename&) const;
77 
79  virtual bool save(std::string&) const;
80 
82  virtual bool save(std::ostream&) const;
83 
85  virtual bool save() const;
86 
89  virtual const DtFilename& filename() const;
90 
93  virtual const std::string& scriptId() const;
94 
96  virtual void setScriptId(const std::string&);
97 
99  virtual void setScriptType(int);
100 
102  virtual int scriptType() const;
103 
106  virtual void setMenuText(const std::string&);
107  virtual const std::string& menuText() const;
109 
112  virtual void setExtendedMenuText(const std::string&);
113  virtual const std::string& extendedMenuText() const;
115 
118  virtual void setToolTip(const std::string&);
119  virtual const std::string& toolTip() const;
121 
124  virtual void setMenuIcon(const std::string&);
125  virtual const std::string& menuIcon() const;
127 
132  virtual void setVersion(double);
133  virtual double version() const;
135 
139  virtual void setPriority(int);
140  virtual int priority() const;
142 
146  virtual void setEnabled(bool);
147  virtual bool enabled() const;
149 
154  virtual void setShortDescription(const std::string&);
155  virtual const std::string& shortDescription() const;
157 
160  virtual bool variable(const std::string& s, DtScriptedTaskVariable& var) const;
161 
164  virtual void setScriptEngine(const std::string&);
165  virtual const std::string& scriptEngine() const;
166 
170  virtual bool isInterpretedScript() const;
172 
175  static void addInterpretedScriptEngine(const std::string&);
176  static bool isInterpretedScriptEngine(const std::string&);
178 
181  virtual void setComments(const std::string&);
182  virtual const std::string& comments() const;
184 
188  virtual void setDescription(const std::string&);
189  virtual const std::string& description() const;
191 
195  virtual void setScriptLocation(const std::string&);
196  virtual const std::string& scriptLocation() const;
198 
202  virtual void setMenuLocations(const std::vector<std::string>&);
203  virtual void addMenuLocation(const std::string&);
204  virtual void removeMenuLocation(const std::string&);
205  virtual void removeMenuLocation(int);
206  virtual const std::vector<std::string>& menuLocations() const;
207  virtual void setShowInMenu(bool);
208  virtual bool showInMenu() const;
210 
213  virtual void setToolbarLocation(const std::string&);
214  virtual const std::string& toolbarLocation() const;
215  virtual void setShowInToolbar(bool);
216  virtual bool showInToolbar() const;
218 
222  virtual void setEntityTypes(const std::vector<DtEntityType>&);
223  virtual void addEntityType(const DtEntityType&);
224  virtual void removeEntityType(const DtEntityType&);
225  virtual void removeEntityType(int);
226  virtual std::vector<DtEntityType> entityTypes() const;
227  virtual bool supportsEntityType(const DtEntityType&) const;
228 
230  virtual bool hasEntityType(const DtEntityType&) const;
232 
237  virtual void setVariables(const std::vector<DtScriptedTaskVariable>&);
238  virtual void addVariable(const DtScriptedTaskVariable&);
239  virtual void insertVariableBefore(const DtScriptedTaskVariable&, const std::string& variable);
240  virtual void insertVariableBefore(const DtScriptedTaskVariable&, int i);
241  virtual void removeVariable(const std::string&);
242  virtual void removeVariable(int);
243  virtual std::vector<DtScriptedTaskVariable> variables() const;
244 
248  virtual DtRwVariableBindings* defaultVariableBindings() const;
249 
251  virtual void setupDefaultsFromBindings(const DtRwVariableBindings&);
252 
254 
257  virtual void setScript(const std::string&);
258  virtual const std::string& script() const;
259 
262  virtual bool loadScript();
263 
265  virtual bool loadScript(const std::string&);
266 
269  virtual void setIsSystemScript(bool);
270  virtual bool isSystemScript() const;
272 
275  virtual void setActionCategories(const std::set<std::string>&);
276  virtual void addActionCategory(const std::string&);
277  virtual void removeActionCategory(const std::string&);
278  virtual bool hasActionCategory(const std::string&) const;
279  virtual const std::set<std::string>& actionCategories() const;
281 
284  virtual void setDoctrines(const std::set<std::string>&);
285  virtual bool addDoctrine(const std::string&);
286  virtual bool removeDoctrine(const std::string&);
287  virtual bool supportsDoctrine(const std::string&) const;
288  virtual const std::set<std::string>& doctrines() const;
289  virtual bool renameDoctrine(const std::string& from, const std::string& to);
290  virtual void setAvailableToAllDoctrines(bool);
291  virtual bool availableToAllDoctrines() const;
293 
296  virtual void setShowOnTopLevelRightClickMenu(bool);
297  virtual bool showOnTopLevelRightClickMenu() const;
299 
303  virtual void setDirectoryPath(const std::string&);
304  virtual const std::string& directoryPath() const;
306 
308  virtual void assignNewScriptId();
309 
311  virtual bool supports(const DtEntityType&) const;
312 
314  bool operator==(const DtScriptedTaskMetaData&) const;
315  bool operator!=(const DtScriptedTaskMetaData& rhs) const { return !(*this == rhs); };
316 
318  static void setEncryptDecryptFunction(DtEncryptDecryptFcn, void* usr);
319  static void getEncryptDecryptFunction(DtEncryptDecryptFcn&, void*& usr);
320 
322  virtual bool encrypt(const std::string& source, std::string& dest) const;
323 
325  virtual bool encryptScript();
326 
328  virtual bool encryptSize(const std::string& source, int& size) const;
329 
331  virtual bool decrypt(const std::string& source, std::string& dest) const;
332 
335  virtual bool decryptScript();
336 
339  virtual std::auto_ptr<DtRwVariableBindings> upgradeVariables(const DtRwVariableBindings&) const;
340 
345  virtual void setEncrypted(bool);
346  virtual bool encrypted() const;
348 
351  virtual void setFlag(int, bool);
352  virtual bool flagSet(int) const;
354 
360  virtual void loadTranslationFile(const std::string& lang);
361  virtual void translationData(char*& data, unsigned int& len) const;
362  virtual std::string translationLanguage() const;
363  virtual void clearTranslationData();
365 
367  virtual std::string removeTrailingLinefeeds(const std::string&);
368 
369 protected:
370 
372  friend class boost::serialization::access;
373 
377  template<class Archive>
378  void serialize(Archive & ar, const unsigned int version)
379  {
380  ar & BOOST_SERIALIZATION_NVP(myScriptId);
381  ar & BOOST_SERIALIZATION_NVP(myMenuText);
382  ar & BOOST_SERIALIZATION_NVP(myToolTip);
383  ar & BOOST_SERIALIZATION_NVP(myMenuIcon);
384  ar & BOOST_SERIALIZATION_NVP(myVersion);
385  ar & BOOST_SERIALIZATION_NVP(myScriptEngine);
386  ar & BOOST_SERIALIZATION_NVP(myComments);
387  ar & BOOST_SERIALIZATION_NVP(myMenuLocations);
388  ar & BOOST_SERIALIZATION_NVP(myIsSystemScript);
389  ar & BOOST_SERIALIZATION_NVP(myDescription);
390  ar & BOOST_SERIALIZATION_NVP(myScriptLocation);
391  ar & BOOST_SERIALIZATION_NVP(myDirectoryPath);
392  ar & BOOST_SERIALIZATION_NVP(myEntityTypes);
393  ar & BOOST_SERIALIZATION_NVP(myVariables);
394  ar & BOOST_SERIALIZATION_NVP(myScript);
395 
396  if (version >= 2)
397  {
398  ar & BOOST_SERIALIZATION_NVP(myActionCategories);
399 
400  if (version >= 3)
401  {
402  ar & BOOST_SERIALIZATION_NVP(myShowInMenu);
403  }
404 
405  if (version >= 4)
406  {
407  ar & BOOST_SERIALIZATION_NVP(myEncrypted);
408  }
409 
410  if (version >= 5)
411  {
412  ar & BOOST_SERIALIZATION_NVP(myScriptType);
413  }
414  else
415  {
416  myScriptType = DtScriptedTaskScriptedTask;
417  }
418 
419  if (version >= 6)
420  {
421  ar & BOOST_SERIALIZATION_NVP(myDoctrines);
422  ar & BOOST_SERIALIZATION_NVP(myFlags);
423  }
424  else
425  {
427  }
428 
429  if (version >= 7)
430  {
431  ar & BOOST_SERIALIZATION_NVP(myShowInToolbar);
432  ar & BOOST_SERIALIZATION_NVP(myToolbarLocation);
433  }
434 
435  if (version >= 8)
436  {
437  ar & BOOST_SERIALIZATION_NVP(myExtendedMenuText);
438  }
439 
440  if (version >= 9)
441  {
442  ar & BOOST_SERIALIZATION_NVP(myShortDescription);
443  }
444  }
445  }
446 
447 public:
448  std::string myScriptId;
449  std::string myMenuText;
450  std::string myExtendedMenuText;
451  std::string myToolTip;
452  std::string myMenuIcon;
453  std::string myScriptEngine;
454  std::string myComments;
455  std::string myDescription;
456  std::string myScriptLocation;
457  std::string myShortDescription;
458 
459  mutable std::string myScript;
460  std::string myDirectoryPath;
461  std::vector<std::string> myMenuLocations;
462  std::vector<std::string> myEntityTypes;
463  std::vector<std::string> myVariables;
464  mutable std::map<std::string, DtScriptedTaskVariable> myCachedVariables;
465  std::string myActionCategories;
466  std::string myDoctrines;
468 
469  std::string myToolbarLocation;
471 
472  mutable std::set<std::string> myActionCategoriesSet;
473  mutable std::set<std::string> myDoctrinesSet;
474 
475  double myVersion;
476  mutable DtFilename myFile;
478  mutable bool myEncrypted;
479 
482 
484  int myFlags;
485 
489 
490  static std::vector<std::string> theInterpretedScriptEngines;
491 };
492 
493 namespace DtBufferSerialize
494 {
496  DT_DLL_vrfutil char *encode(const DtScriptedTaskMetaData& val, char *buffer);
497  DT_DLL_vrfutil const char *decode(DtScriptedTaskMetaData& val, const char *buffer);
498 }
499 

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)