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,
75 virtual bool load(
const DtFilename&);
78 virtual bool load(
const std::string&);
81 virtual bool load(std::istream&);
84 virtual bool hasUserEntryVariables()
const;
88 virtual bool save(
const DtFilename&)
const;
91 virtual bool save(std::string&)
const;
94 virtual bool save(std::ostream&)
const;
97 virtual bool save()
const;
100 virtual void setFilename(
const DtFilename&);
104 virtual const DtFilename&
filename()
const;
108 virtual const std::string& scriptId()
const;
112 virtual void setScriptId(
const std::string&,
bool makeAliasIfSystemScript =
true);
115 virtual void setScriptType(
int);
118 virtual int scriptType()
const;
122 virtual bool usesBehaviorEngine()
const;
123 virtual void setUsesBehaviorEngine(
const bool uses);
126 virtual int commandLevel()
const;
127 virtual void setCommandLevel(
int);
131 virtual void setMenuText(
const std::string&);
132 virtual const std::string& menuText()
const;
137 virtual void setExtendedMenuText(
const std::string&);
138 virtual const std::string& extendedMenuText()
const;
143 virtual void setToolTip(
const std::string&);
144 virtual const std::string& toolTip()
const;
149 virtual void setMenuIcon(
const std::string&);
150 virtual const std::string& menuIcon()
const;
155 virtual void setUseUiFile(
bool);
156 virtual bool useUiFile()
const;
158 virtual void setUiLayout(
const std::string&);
159 virtual const std::string& uiLayout()
const;
164 virtual void setMagicCommand(
bool);
165 virtual bool magicCommand()
const;
172 virtual void setVersion(
double);
173 virtual double version()
const;
179 virtual void setPriority(
int);
180 virtual int priority()
const;
186 virtual void setEnabled(
bool);
187 virtual bool enabled()
const;
194 virtual void setShortDescription(
const std::string&);
195 virtual const std::string& shortDescription()
const;
204 virtual void setScriptEngine(
const std::string&);
205 virtual const std::string& scriptEngine()
const;
210 virtual bool isInterpretedScript()
const;
215 static void addInterpretedScriptEngine(
const std::string&);
216 static bool isInterpretedScriptEngine(
const std::string&);
221 virtual void setComments(
const std::string&);
222 virtual const std::string& comments()
const;
228 virtual void setDescription(
const std::string&);
229 virtual const std::string& description()
const;
234 virtual void setShowDescriptionInDialog(
bool);
235 virtual bool showDescriptionInDialog()
const;
241 virtual void setRespectScriptLocation(
bool);
242 virtual bool respectScriptLocation()
const;
248 virtual void setScriptLocation(
const std::string&);
249 virtual const std::string& scriptLocation()
const;
253 virtual std::string uiLayoutLocation()
const;
258 virtual void setMenuLocations(
const std::vector<std::string>&);
259 virtual void addMenuLocation(
const std::string&);
260 virtual void removeMenuLocation(
const std::string&);
261 virtual void removeMenuLocation(
int);
262 virtual const std::vector<std::string>& menuLocations()
const;
263 virtual void setShowInMenu(
bool);
264 virtual bool showInMenu()
const;
269 virtual void setToolbarLocation(
const std::string&);
270 virtual const std::string& toolbarLocation()
const;
271 virtual void setShowInToolbar(
bool);
272 virtual bool showInToolbar()
const;
278 virtual void setEntityTypes(
const std::vector<DtEntityType>&);
279 virtual void addEntityType(
const DtEntityType&);
280 virtual void removeEntityType(
const DtEntityType&);
281 virtual void removeEntityType(
int);
282 virtual std::vector<DtEntityType> entityTypes()
const;
283 virtual bool supportsEntityType(
const DtEntityType&)
const;
286 virtual bool hasEntityType(
const DtEntityType&)
const;
293 virtual void setVariables(
const std::vector<DtScriptedTaskVariable>&);
297 virtual void removeVariable(
const std::string&);
298 virtual void removeVariable(
int);
302 virtual std::vector<DtScriptedTaskVariable> variables()
const;
305 virtual std::vector<DtScriptedTaskVariable> scriptedTaskVariables()
const;
319 virtual void setScript(
const std::string&);
320 virtual const std::string& script()
const;
324 virtual bool loadScript();
327 virtual bool loadScript(
const std::string&);
331 virtual bool loadUiLayout();
334 virtual bool loadUiLayout(
const std::string&);
338 virtual void setIsSystemScript(
bool);
339 virtual bool isSystemScript()
const;
344 virtual void setActionCategories(
const std::set<std::string>&);
345 virtual void addActionCategory(
const std::string&);
346 virtual void removeActionCategory(
const std::string&);
347 virtual bool hasActionCategory(
const std::string&)
const;
348 virtual const std::set<std::string>& actionCategories()
const;
353 virtual void setCanBeExecutedConcurrently(
bool);
354 virtual bool canBeExecutedConcurrently()
const;
359 virtual void setDoctrines(
const std::set<std::string>&);
360 virtual bool addDoctrine(
const std::string&);
361 virtual bool removeDoctrine(
const std::string&);
362 virtual bool supportsDoctrine(
const std::string&)
const;
363 virtual const std::set<std::string>& doctrines()
const;
364 virtual bool renameDoctrine(
const std::string& from,
const std::string& to);
365 virtual void setAvailableToAllDoctrines(
bool);
366 virtual bool availableToAllDoctrines()
const;
371 virtual void setShowOnTopLevelRightClickMenu(
bool);
372 virtual bool showOnTopLevelRightClickMenu()
const;
377 virtual void setSupportsOneClick(
bool);
378 virtual bool supportsOneClick()
const;
384 virtual void setDirectoryPath(
const std::string&);
385 virtual const std::string& directoryPath()
const;
391 virtual const std::set<std::string>& aliases()
const;
392 virtual void addAlias(
const std::string&);
393 virtual void removeAlias(
const std::string&);
394 virtual void clearAliases();
395 virtual void setAliases(
const std::set<std::string>&);
396 virtual bool isAliased(
const std::string&)
const;
400 virtual void assignNewScriptId();
403 virtual bool supports(
const DtEntityType&)
const;
414 virtual bool encrypt(
const std::string&
source, std::string&
dest)
const;
417 virtual bool encryptScript();
420 virtual bool encryptSize(
const std::string&
source,
int&
size)
const;
423 virtual bool decrypt(
const std::string&
source, std::string&
dest)
const;
427 virtual bool decryptScript();
431 virtual std::unique_ptr<DtRwVariableBindings> upgradeVariables(
const DtRwVariableBindings&)
const;
437 virtual void setEncrypted(
bool);
438 virtual bool encrypted()
const;
443 virtual void setFlag(
int,
bool);
444 virtual bool flagSet(
int)
const;
452 virtual void loadTranslationFile(
const std::string& lang);
453 virtual void translationData(
char*& data,
unsigned int& len)
const;
454 virtual std::string translationLanguage()
const;
455 virtual void clearTranslationData();
459 virtual std::string removeTrailingLinefeeds(
const std::string&);
462 virtual void makeAllIdsLowercase();
465 virtual unsigned scriptChecksum()
const;
468 virtual void setScriptChecksum(
unsigned checksum);
472 static unsigned calculateChecksum(std::istream& strm);
473 static unsigned calculateChecksum(std::vector<std::istream*>& strms);
476 virtual std::string readFile(
const std::string&)
const;
481 friend class boost::serialization::access;
486 template<
class Archive>
487 void serialize(Archive & ar,
const unsigned int version)
489 ar & BOOST_SERIALIZATION_NVP(myScriptId);
490 ar & BOOST_SERIALIZATION_NVP(myMenuText);
491 ar & BOOST_SERIALIZATION_NVP(myToolTip);
492 ar & BOOST_SERIALIZATION_NVP(myMenuIcon);
493 ar & BOOST_SERIALIZATION_NVP(myVersion);
494 ar & BOOST_SERIALIZATION_NVP(myScriptEngine);
495 ar & BOOST_SERIALIZATION_NVP(myComments);
496 ar & BOOST_SERIALIZATION_NVP(myMenuLocations);
497 ar & BOOST_SERIALIZATION_NVP(myIsSystemScript);
498 ar & BOOST_SERIALIZATION_NVP(myDescription);
499 ar & BOOST_SERIALIZATION_NVP(myScriptLocation);
500 ar & BOOST_SERIALIZATION_NVP(myDirectoryPath);
501 ar & BOOST_SERIALIZATION_NVP(myEntityTypes);
502 ar & BOOST_SERIALIZATION_NVP(myVariables);
503 ar & BOOST_SERIALIZATION_NVP(myScript);
507 ar & BOOST_SERIALIZATION_NVP(myActionCategories);
511 ar & BOOST_SERIALIZATION_NVP(myShowInMenu);
516 ar & BOOST_SERIALIZATION_NVP(myEncrypted);
521 ar & BOOST_SERIALIZATION_NVP(myScriptType);
530 ar & BOOST_SERIALIZATION_NVP(myDoctrines);
531 ar & BOOST_SERIALIZATION_NVP(myFlags);
540 ar & BOOST_SERIALIZATION_NVP(myShowInToolbar);
541 ar & BOOST_SERIALIZATION_NVP(myToolbarLocation);
546 ar & BOOST_SERIALIZATION_NVP(myExtendedMenuText);
551 ar & BOOST_SERIALIZATION_NVP(myShortDescription);
556 ar & BOOST_SERIALIZATION_NVP(myUiLayout);
561 ar & BOOST_SERIALIZATION_NVP(myAliases);
566 ar & BOOST_SERIALIZATION_NVP(myCanBeExecutedConcurrently);
571 ar & BOOST_SERIALIZATION_NVP(myRespectScriptLocation);
576 ar & BOOST_SERIALIZATION_NVP(myShowDescriptionInDialog);
581 ar & BOOST_SERIALIZATION_NVP(myUsesBehaviorEngine);
586 ar & BOOST_SERIALIZATION_NVP(myCommandLevel);
589 if (Archive::is_loading::value && (version <= 11))
591 makeAllIdsLowercase();
656 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