VR-Forces 4.1.1 Class Documentation
scriptedTaskMetaData.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2012 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 
38 {
39 public:
40 
43 
45  virtual ~DtScriptedTaskMetaData();
46 
49 
51  DtScriptedTaskMetaData& operator=(const DtScriptedTaskMetaData& orig);
52 
54  virtual bool load(const DtFilename&);
55 
57  virtual bool load(const std::string&);
58 
60  virtual bool load(std::istream&);
61 
64  virtual bool save(const DtFilename&) const;
65 
67  virtual bool save(std::string&) const;
68 
70  virtual bool save(std::ostream&) const;
71 
73  virtual bool save() const;
74 
77  virtual const DtFilename& filename() const;
78 
81  virtual const std::string& scriptId() const;
82 
84  virtual void setScriptId(const std::string&);
85 
88  virtual void setMenuText(const std::string&);
89  virtual const std::string& menuText() const;
91 
94  virtual void setToolTip(const std::string&);
95  virtual const std::string& toolTip() const;
97 
100  virtual void setMenuIcon(const std::string&);
101  virtual const std::string& menuIcon() const;
103 
108  virtual void setVersion(double);
109  virtual double version() const;
111 
114  virtual void setScriptEngine(const std::string&);
115  virtual const std::string& scriptEngine() const;
117 
120  virtual void setComments(const std::string&);
121  virtual const std::string& comments() const;
123 
127  virtual void setDescription(const std::string&);
128  virtual const std::string& description() const;
130 
134  virtual void setScriptLocation(const std::string&);
135  virtual const std::string& scriptLocation() const;
137 
141  virtual void setMenuLocations(const std::vector<std::string>&);
142  virtual void addMenuLocation(const std::string&);
143  virtual void removeMenuLocation(const std::string&);
144  virtual void removeMenuLocation(int);
145  virtual const std::vector<std::string>& menuLocations() const;
146  virtual void setShowInMenu(bool);
147  virtual bool showInMenu() const;
149 
153  virtual void setEntityTypes(const std::vector<DtEntityType>&);
154  virtual void addEntityType(const DtEntityType&);
155  virtual void removeEntityType(const DtEntityType&);
156  virtual void removeEntityType(int);
157  virtual std::vector<DtEntityType> entityTypes() const;
159 
164  virtual void setVariables(const std::vector<DtScriptedTaskVariable>&);
165  virtual void addVariable(const DtScriptedTaskVariable&);
166  virtual void insertVariableBefore(const DtScriptedTaskVariable&, const std::string& variable);
167  virtual void insertVariableBefore(const DtScriptedTaskVariable&, int i);
168  virtual void removeVariable(const std::string&);
169  virtual void removeVariable(int);
170  virtual std::vector<DtScriptedTaskVariable> variables() const;
172 
175  virtual void setScript(const std::string&);
176  virtual const std::string& script() const;
177 
180  virtual bool loadScript();
181 
183  virtual bool loadScript(const std::string&);
184 
187  virtual void setIsSystemScript(bool);
188  virtual bool isSystemScript() const;
190 
193  virtual void setActionCategories(const std::set<std::string>&);
194  virtual void addActionCategory(const std::string&);
195  virtual void removeActionCategory(const std::string&);
196  virtual bool hasActionCategory(const std::string&) const;
197  virtual const std::set<std::string>& actionCategories() const;
199 
203  virtual void setDirectoryPath(const std::string&);
204  virtual const std::string& directoryPath() const;
206 
208  virtual void assignNewScriptId();
209 
211  virtual bool supports(const DtEntityType&) const;
212 
214  bool operator==(const DtScriptedTaskMetaData&) const;
215  bool operator!=(const DtScriptedTaskMetaData& rhs) const { return !(*this == rhs); };
216 
218  static void setEncryptDecryptFunction(DtEncryptDecryptFcn, void* usr);
219  static void getEncryptDecryptFunction(DtEncryptDecryptFcn&, void*& usr);
220 
222  virtual bool encrypt(const std::string& source, std::string& dest) const;
223 
225  virtual bool encryptScript();
226 
228  virtual bool encryptSize(const std::string& source, int& size) const;
229 
231  virtual bool decrypt(const std::string& source, std::string& dest) const;
232 
235  virtual bool decryptScript();
236 
241  virtual void setEncrypted(bool);
242  virtual bool encrypted() const;
244 
245 protected:
246 
248  friend class boost::serialization::access;
249 
253  template<class Archive>
254  void serialize(Archive & ar, const unsigned int version)
255  {
256  ar & BOOST_SERIALIZATION_NVP(myScriptId);
257  ar & BOOST_SERIALIZATION_NVP(myMenuText);
258  ar & BOOST_SERIALIZATION_NVP(myToolTip);
259  ar & BOOST_SERIALIZATION_NVP(myMenuIcon);
260  ar & BOOST_SERIALIZATION_NVP(myVersion);
261  ar & BOOST_SERIALIZATION_NVP(myScriptEngine);
262  ar & BOOST_SERIALIZATION_NVP(myComments);
263  ar & BOOST_SERIALIZATION_NVP(myMenuLocations);
264  ar & BOOST_SERIALIZATION_NVP(myIsSystemScript);
265  ar & BOOST_SERIALIZATION_NVP(myDescription);
266  ar & BOOST_SERIALIZATION_NVP(myScriptLocation);
267  ar & BOOST_SERIALIZATION_NVP(myDirectoryPath);
268  ar & BOOST_SERIALIZATION_NVP(myEntityTypes);
269  ar & BOOST_SERIALIZATION_NVP(myVariables);
270  ar & BOOST_SERIALIZATION_NVP(myScript);
271 
272  if (version >= 2)
273  {
274  ar & BOOST_SERIALIZATION_NVP(myActionCategories);
275 
276  if (version >= 3)
277  {
278  ar & BOOST_SERIALIZATION_NVP(myShowInMenu);
279  }
280 
281  if (version >= 4)
282  {
283  ar & BOOST_SERIALIZATION_NVP(myEncrypted);
284  }
285  }
286  }
287 
288 public:
289  std::string myScriptId;
290  std::string myMenuText;
291  std::string myToolTip;
292  std::string myMenuIcon;
293  std::string myScriptEngine;
294  std::string myComments;
295  std::string myDescription;
296  std::string myScriptLocation;
297  mutable std::string myScript;
298  std::string myDirectoryPath;
299  std::vector<std::string> myMenuLocations;
300  std::vector<std::string> myEntityTypes;
301  std::vector<std::string> myVariables;
302  std::string myActionCategories;
304 
305  mutable std::set<std::string> myActionCategoriesSet;
306 
307  double myVersion;
308  mutable DtFilename myFile;
310  mutable bool myEncrypted;
311 
314 };
315 
316 namespace DtBufferSerialize
317 {
319  DT_DLL_vrfutil char *encode(const DtScriptedTaskMetaData& val, char *buffer);
320  DT_DLL_vrfutil const char *decode(DtScriptedTaskMetaData& val, const char *buffer);
321 }
322 

Document ID: Generated on Mon Apr 8 19:24:01 EDT 2013 from SVN revision 125877
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)