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>
22 #include <vlutil/vlFilename.h>
23 #include <vlpi/entityType.h>
34 typedef bool (*
DtEncryptDecryptFcn)(
const std::string& scriptId,
char* input,
int inputLen,
char** output,
int& outputLen,
bool encrypt,
65 virtual bool load(
const DtFilename&);
68 virtual bool load(
const std::string&);
71 virtual bool load(std::istream&);
74 virtual bool hasUserEntryVariables()
const;
78 virtual bool save(
const DtFilename&)
const;
81 virtual bool save(std::string&)
const;
84 virtual bool save(std::ostream&)
const;
87 virtual bool save()
const;
90 virtual void setFilename(
const DtFilename&);
94 virtual const DtFilename&
filename()
const;
98 virtual const std::string& scriptId()
const;
102 virtual void setScriptId(
const std::string&,
bool makeAliasIfSystemScript =
true);
105 virtual void setScriptType(
int);
108 virtual int scriptType()
const;
112 virtual void setMenuText(
const std::string&);
113 virtual const std::string& menuText()
const;
118 virtual void setExtendedMenuText(
const std::string&);
119 virtual const std::string& extendedMenuText()
const;
124 virtual void setToolTip(
const std::string&);
125 virtual const std::string& toolTip()
const;
130 virtual void setMenuIcon(
const std::string&);
131 virtual const std::string& menuIcon()
const;
136 virtual void setUseUiFile(
bool);
137 virtual bool useUiFile()
const;
139 virtual void setUiLayout(
const std::string&);
140 virtual const std::string& uiLayout()
const;
147 virtual void setVersion(
double);
148 virtual double version()
const;
154 virtual void setPriority(
int);
155 virtual int priority()
const;
161 virtual void setEnabled(
bool);
162 virtual bool enabled()
const;
169 virtual void setShortDescription(
const std::string&);
170 virtual const std::string& shortDescription()
const;
179 virtual void setScriptEngine(
const std::string&);
180 virtual const std::string& scriptEngine()
const;
185 virtual bool isInterpretedScript()
const;
190 static void addInterpretedScriptEngine(
const std::string&);
191 static bool isInterpretedScriptEngine(
const std::string&);
196 virtual void setComments(
const std::string&);
197 virtual const std::string& comments()
const;
203 virtual void setDescription(
const std::string&);
204 virtual const std::string& description()
const;
209 virtual void setShowDescriptionInDialog(
bool);
210 virtual bool showDescriptionInDialog()
const;
216 virtual void setRespectScriptLocation(
bool);
217 virtual bool respectScriptLocation()
const;
223 virtual void setScriptLocation(
const std::string&);
224 virtual const std::string& scriptLocation()
const;
228 virtual std::string uiLayoutLocation()
const;
233 virtual void setMenuLocations(
const std::vector<std::string>&);
234 virtual void addMenuLocation(
const std::string&);
235 virtual void removeMenuLocation(
const std::string&);
236 virtual void removeMenuLocation(
int);
237 virtual const std::vector<std::string>& menuLocations()
const;
238 virtual void setShowInMenu(
bool);
239 virtual bool showInMenu()
const;
244 virtual void setToolbarLocation(
const std::string&);
245 virtual const std::string& toolbarLocation()
const;
246 virtual void setShowInToolbar(
bool);
247 virtual bool showInToolbar()
const;
253 virtual void setEntityTypes(
const std::vector<DtEntityType>&);
254 virtual void addEntityType(
const DtEntityType&);
255 virtual void removeEntityType(
const DtEntityType&);
256 virtual void removeEntityType(
int);
257 virtual std::vector<DtEntityType> entityTypes()
const;
258 virtual bool supportsEntityType(
const DtEntityType&)
const;
261 virtual bool hasEntityType(
const DtEntityType&)
const;
268 virtual void setVariables(
const std::vector<DtScriptedTaskVariable>&);
272 virtual void removeVariable(
const std::string&);
273 virtual void removeVariable(
int);
277 virtual std::vector<DtScriptedTaskVariable> variables()
const;
280 virtual std::vector<DtScriptedTaskVariable> scriptedTaskVariables()
const;
294 virtual void setScript(
const std::string&);
295 virtual const std::string& script()
const;
299 virtual bool loadScript();
302 virtual bool loadScript(
const std::string&);
306 virtual bool loadUiLayout();
309 virtual bool loadUiLayout(
const std::string&);
313 virtual void setIsSystemScript(
bool);
314 virtual bool isSystemScript()
const;
319 virtual void setActionCategories(
const std::set<std::string>&);
320 virtual void addActionCategory(
const std::string&);
321 virtual void removeActionCategory(
const std::string&);
322 virtual bool hasActionCategory(
const std::string&)
const;
323 virtual const std::set<std::string>& actionCategories()
const;
328 virtual void setCanBeExecutedConcurrently(
bool);
329 virtual bool canBeExecutedConcurrently()
const;
334 virtual void setDoctrines(
const std::set<std::string>&);
335 virtual bool addDoctrine(
const std::string&);
336 virtual bool removeDoctrine(
const std::string&);
337 virtual bool supportsDoctrine(
const std::string&)
const;
338 virtual const std::set<std::string>& doctrines()
const;
339 virtual bool renameDoctrine(
const std::string& from,
const std::string& to);
340 virtual void setAvailableToAllDoctrines(
bool);
341 virtual bool availableToAllDoctrines()
const;
346 virtual void setShowOnTopLevelRightClickMenu(
bool);
347 virtual bool showOnTopLevelRightClickMenu()
const;
353 virtual void setDirectoryPath(
const std::string&);
354 virtual const std::string& directoryPath()
const;
360 virtual const std::set<std::string>& aliases()
const;
361 virtual void addAlias(
const std::string&);
362 virtual void removeAlias(
const std::string&);
363 virtual void clearAliases();
364 virtual void setAliases(
const std::set<std::string>&);
365 virtual bool isAliased(
const std::string&)
const;
369 virtual void assignNewScriptId();
372 virtual bool supports(
const DtEntityType&)
const;
383 virtual bool encrypt(
const std::string& source, std::string& dest)
const;
386 virtual bool encryptScript();
389 virtual bool encryptSize(
const std::string& source,
int&
size)
const;
392 virtual bool decrypt(
const std::string& source, std::string& dest)
const;
396 virtual bool decryptScript();
400 virtual std::auto_ptr<DtRwVariableBindings> upgradeVariables(
const DtRwVariableBindings&)
const;
406 virtual void setEncrypted(
bool);
407 virtual bool encrypted()
const;
412 virtual void setFlag(
int,
bool);
413 virtual bool flagSet(
int)
const;
421 virtual void loadTranslationFile(
const std::string& lang);
422 virtual void translationData(
char*& data,
unsigned int& len)
const;
423 virtual std::string translationLanguage()
const;
424 virtual void clearTranslationData();
428 virtual std::string removeTrailingLinefeeds(
const std::string&);
431 virtual void makeAllIdsLowercase();
434 virtual std::string readFile(
const std::string&)
const;
439 friend class boost::serialization::access;
444 template<
class Archive>
445 void serialize(Archive & ar,
const unsigned int version)
447 ar & BOOST_SERIALIZATION_NVP(myScriptId);
448 ar & BOOST_SERIALIZATION_NVP(myMenuText);
449 ar & BOOST_SERIALIZATION_NVP(myToolTip);
450 ar & BOOST_SERIALIZATION_NVP(myMenuIcon);
451 ar & BOOST_SERIALIZATION_NVP(myVersion);
452 ar & BOOST_SERIALIZATION_NVP(myScriptEngine);
453 ar & BOOST_SERIALIZATION_NVP(myComments);
454 ar & BOOST_SERIALIZATION_NVP(myMenuLocations);
455 ar & BOOST_SERIALIZATION_NVP(myIsSystemScript);
456 ar & BOOST_SERIALIZATION_NVP(myDescription);
457 ar & BOOST_SERIALIZATION_NVP(myScriptLocation);
458 ar & BOOST_SERIALIZATION_NVP(myDirectoryPath);
459 ar & BOOST_SERIALIZATION_NVP(myEntityTypes);
460 ar & BOOST_SERIALIZATION_NVP(myVariables);
461 ar & BOOST_SERIALIZATION_NVP(myScript);
465 ar & BOOST_SERIALIZATION_NVP(myActionCategories);
469 ar & BOOST_SERIALIZATION_NVP(myShowInMenu);
474 ar & BOOST_SERIALIZATION_NVP(myEncrypted);
479 ar & BOOST_SERIALIZATION_NVP(myScriptType);
488 ar & BOOST_SERIALIZATION_NVP(myDoctrines);
489 ar & BOOST_SERIALIZATION_NVP(myFlags);
498 ar & BOOST_SERIALIZATION_NVP(myShowInToolbar);
499 ar & BOOST_SERIALIZATION_NVP(myToolbarLocation);
504 ar & BOOST_SERIALIZATION_NVP(myExtendedMenuText);
509 ar & BOOST_SERIALIZATION_NVP(myShortDescription);
514 ar & BOOST_SERIALIZATION_NVP(myUiLayout);
519 ar & BOOST_SERIALIZATION_NVP(myAliases);
524 ar & BOOST_SERIALIZATION_NVP(myCanBeExecutedConcurrently);
529 ar & BOOST_SERIALIZATION_NVP(myRespectScriptLocation);
534 ar & BOOST_SERIALIZATION_NVP(myShowDescriptionInDialog);
537 if (Archive::is_loading::value && (version <= 11))
539 makeAllIdsLowercase();
597 namespace DtBufferSerialize