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 #include <boost/crc.hpp>
23 #include <vlutil/vlFilename.h>
24 #include <vlpi/entityType.h>
29 #include <tbb/spin_rw_mutex.h>
37 typedef bool (*
DtEncryptDecryptFcn)(
const std::string& scriptId,
char* input,
int inputLen,
char** output,
int& outputLen,
bool encrypt,
74 virtual bool load(
const DtFilename&);
77 virtual bool load(
const std::string&);
80 virtual bool load(std::istream&);
83 virtual bool hasUserEntryVariables()
const;
87 virtual bool save(
const DtFilename&)
const;
90 virtual bool save(std::string&)
const;
93 virtual bool save(std::ostream&)
const;
96 virtual bool save()
const;
99 virtual void setFilename(
const DtFilename&);
103 virtual const DtFilename&
filename()
const;
107 virtual const std::string& scriptId()
const;
111 virtual void setScriptId(
const std::string&,
bool makeAliasIfSystemScript =
true);
114 virtual void setScriptType(
int);
117 virtual int scriptType()
const;
121 virtual bool usesBehaviorEngine()
const;
122 virtual void setUsesBehaviorEngine(
const bool uses);
125 virtual int commandLevel()
const;
126 virtual void setCommandLevel(
int);
130 virtual void setMenuText(
const std::string&);
131 virtual const std::string& menuText()
const;
136 virtual void setExtendedMenuText(
const std::string&);
137 virtual const std::string& extendedMenuText()
const;
142 virtual void setToolTip(
const std::string&);
143 virtual const std::string& toolTip()
const;
148 virtual void setMenuIcon(
const std::string&);
149 virtual const std::string& menuIcon()
const;
154 virtual void setUseUiFile(
bool);
155 virtual bool useUiFile()
const;
157 virtual void setUiLayout(
const std::string&);
158 virtual const std::string& uiLayout()
const;
163 virtual void setMagicCommand(
bool);
164 virtual bool magicCommand()
const;
171 virtual void setVersion(
double);
172 virtual double version()
const;
178 virtual void setPriority(
int);
179 virtual int priority()
const;
185 virtual void setEnabled(
bool);
186 virtual bool enabled()
const;
193 virtual void setShortDescription(
const std::string&);
194 virtual const std::string& shortDescription()
const;
203 virtual void setScriptEngine(
const std::string&);
204 virtual const std::string& scriptEngine()
const;
209 virtual bool isInterpretedScript()
const;
214 static void addInterpretedScriptEngine(
const std::string&);
215 static bool isInterpretedScriptEngine(
const std::string&);
220 virtual void setComments(
const std::string&);
221 virtual const std::string& comments()
const;
227 virtual void setDescription(
const std::string&);
228 virtual const std::string& description()
const;
233 virtual void setShowDescriptionInDialog(
bool);
234 virtual bool showDescriptionInDialog()
const;
240 virtual void setRespectScriptLocation(
bool);
241 virtual bool respectScriptLocation()
const;
247 virtual void setScriptLocation(
const std::string&);
248 virtual const std::string& scriptLocation()
const;
252 virtual std::string uiLayoutLocation()
const;
257 virtual void setMenuLocations(
const std::vector<std::string>&);
258 virtual void addMenuLocation(
const std::string&);
259 virtual void removeMenuLocation(
const std::string&);
260 virtual void removeMenuLocation(
int);
261 virtual const std::vector<std::string>& menuLocations()
const;
262 virtual void setShowInMenu(
bool);
263 virtual bool showInMenu()
const;
268 virtual void setToolbarLocation(
const std::string&);
269 virtual const std::string& toolbarLocation()
const;
270 virtual void setShowInToolbar(
bool);
271 virtual bool showInToolbar()
const;
277 virtual void setEntityTypes(
const std::vector<DtEntityType>&);
278 virtual void addEntityType(
const DtEntityType&);
279 virtual void removeEntityType(
const DtEntityType&);
280 virtual void removeEntityType(
int);
281 virtual std::vector<DtEntityType> entityTypes()
const;
282 virtual bool supportsEntityType(
const DtEntityType&)
const;
285 virtual bool hasEntityType(
const DtEntityType&)
const;
292 virtual void setVariables(
const std::vector<DtScriptedTaskVariable>&);
296 virtual void removeVariable(
const std::string&);
297 virtual void removeVariable(
int);
301 virtual std::vector<DtScriptedTaskVariable> variables()
const;
304 virtual std::vector<DtScriptedTaskVariable> scriptedTaskVariables()
const;
318 virtual void setScript(
const std::string&);
319 virtual const std::string& script()
const;
323 virtual bool loadScript();
326 virtual bool loadScript(
const std::string&);
330 virtual bool loadUiLayout();
333 virtual bool loadUiLayout(
const std::string&);
337 virtual void setIsSystemScript(
bool);
338 virtual bool isSystemScript()
const;
343 virtual void setActionCategories(
const std::set<std::string>&);
344 virtual void addActionCategory(
const std::string&);
345 virtual void removeActionCategory(
const std::string&);
346 virtual bool hasActionCategory(
const std::string&)
const;
347 virtual const std::set<std::string>& actionCategories()
const;
352 virtual void setCanBeExecutedConcurrently(
bool);
353 virtual bool canBeExecutedConcurrently()
const;
358 virtual void setDoctrines(
const std::set<std::string>&);
359 virtual bool addDoctrine(
const std::string&);
360 virtual bool removeDoctrine(
const std::string&);
361 virtual bool supportsDoctrine(
const std::string&)
const;
362 virtual const std::set<std::string>& doctrines()
const;
363 virtual bool renameDoctrine(
const std::string& from,
const std::string& to);
364 virtual void setAvailableToAllDoctrines(
bool);
365 virtual bool availableToAllDoctrines()
const;
370 virtual void setShowOnTopLevelRightClickMenu(
bool);
371 virtual bool showOnTopLevelRightClickMenu()
const;
377 virtual void setDirectoryPath(
const std::string&);
378 virtual const std::string& directoryPath()
const;
384 virtual const std::set<std::string>& aliases()
const;
385 virtual void addAlias(
const std::string&);
386 virtual void removeAlias(
const std::string&);
387 virtual void clearAliases();
388 virtual void setAliases(
const std::set<std::string>&);
389 virtual bool isAliased(
const std::string&)
const;
393 virtual void assignNewScriptId();
396 virtual bool supports(
const DtEntityType&)
const;
407 virtual bool encrypt(
const std::string&
source, std::string&
dest)
const;
410 virtual bool encryptScript();
413 virtual bool encryptSize(
const std::string&
source,
int&
size)
const;
416 virtual bool decrypt(
const std::string&
source, std::string&
dest)
const;
420 virtual bool decryptScript();
424 virtual std::auto_ptr<DtRwVariableBindings> upgradeVariables(
const DtRwVariableBindings&)
const;
430 virtual void setEncrypted(
bool);
431 virtual bool encrypted()
const;
436 virtual void setFlag(
int,
bool);
437 virtual bool flagSet(
int)
const;
445 virtual void loadTranslationFile(
const std::string& lang);
446 virtual void translationData(
char*& data,
unsigned int& len)
const;
447 virtual std::string translationLanguage()
const;
448 virtual void clearTranslationData();
452 virtual std::string removeTrailingLinefeeds(
const std::string&);
455 virtual void makeAllIdsLowercase();
458 virtual unsigned scriptChecksum()
const;
461 virtual void setScriptChecksum(
unsigned checksum);
465 static unsigned calculateChecksum(std::istream& strm);
466 static unsigned calculateChecksum(std::vector<std::istream*>& strms);
469 virtual std::string readFile(
const std::string&)
const;
474 friend class boost::serialization::access;
479 template<
class Archive>
480 void serialize(Archive & ar,
const unsigned int version)
482 ar & BOOST_SERIALIZATION_NVP(myScriptId);
483 ar & BOOST_SERIALIZATION_NVP(myMenuText);
484 ar & BOOST_SERIALIZATION_NVP(myToolTip);
485 ar & BOOST_SERIALIZATION_NVP(myMenuIcon);
486 ar & BOOST_SERIALIZATION_NVP(myVersion);
487 ar & BOOST_SERIALIZATION_NVP(myScriptEngine);
488 ar & BOOST_SERIALIZATION_NVP(myComments);
489 ar & BOOST_SERIALIZATION_NVP(myMenuLocations);
490 ar & BOOST_SERIALIZATION_NVP(myIsSystemScript);
491 ar & BOOST_SERIALIZATION_NVP(myDescription);
492 ar & BOOST_SERIALIZATION_NVP(myScriptLocation);
493 ar & BOOST_SERIALIZATION_NVP(myDirectoryPath);
494 ar & BOOST_SERIALIZATION_NVP(myEntityTypes);
495 ar & BOOST_SERIALIZATION_NVP(myVariables);
496 ar & BOOST_SERIALIZATION_NVP(myScript);
500 ar & BOOST_SERIALIZATION_NVP(myActionCategories);
504 ar & BOOST_SERIALIZATION_NVP(myShowInMenu);
509 ar & BOOST_SERIALIZATION_NVP(myEncrypted);
514 ar & BOOST_SERIALIZATION_NVP(myScriptType);
523 ar & BOOST_SERIALIZATION_NVP(myDoctrines);
524 ar & BOOST_SERIALIZATION_NVP(myFlags);
533 ar & BOOST_SERIALIZATION_NVP(myShowInToolbar);
534 ar & BOOST_SERIALIZATION_NVP(myToolbarLocation);
539 ar & BOOST_SERIALIZATION_NVP(myExtendedMenuText);
544 ar & BOOST_SERIALIZATION_NVP(myShortDescription);
549 ar & BOOST_SERIALIZATION_NVP(myUiLayout);
554 ar & BOOST_SERIALIZATION_NVP(myAliases);
559 ar & BOOST_SERIALIZATION_NVP(myCanBeExecutedConcurrently);
564 ar & BOOST_SERIALIZATION_NVP(myRespectScriptLocation);
569 ar & BOOST_SERIALIZATION_NVP(myShowDescriptionInDialog);
574 ar & BOOST_SERIALIZATION_NVP(myUsesBehaviorEngine);
579 ar & BOOST_SERIALIZATION_NVP(myCommandLevel);
582 if (Archive::is_loading::value && (version <= 11))
584 makeAllIdsLowercase();
649 namespace DtBufferSerialize
DT_DLL_readerWriter int getSize(const DtString &val)
The number of bytes required to encode the value.
BOOST_CLASS_VERSION(makArchives::DtDiGuySettingsRecord, 3)
const char * filename
Definition: ioapi.h:38
voidpf void uLong size
Definition: ioapi.h:39
DT_DLL_terrainCS bool operator==(const DtDegMinSec &lhs, const DtDegMinSec &rhs)
ReaderWriter object that maintains a list of reader-writer variable bindings. It keeps a list of name...
Definition: rwVariableBindings.h:27
A class for keeping track of meta data for variables of scripted tasks. The information is currently ...
Definition: scriptedTaskVariable.h:34
DT_DLL_readerWriter char * encode(const DtFilename &val, char *buffer)
Serializes the provided value val into buffer. buffer must have at least the number of bytes returned...
const char * source
Definition: lz4.h:442
#define DT_DLL_vrfutil
This file is used to determine how to build Disable inconsistent dll linkage warning Visual Studio 6...
Definition: vrfutilDefines.h:34
DT_DLL_readerWriter const char * decode(DtString &val, const char *buffer)
Decodes a value from buffer and places the result in val of the type specified by val...
char * dest
Definition: lz4.h:440