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;
210 virtual void setScriptLocation(
const std::string&);
211 virtual const std::string& scriptLocation()
const;
215 virtual std::string uiLayoutLocation()
const;
220 virtual void setMenuLocations(
const std::vector<std::string>&);
221 virtual void addMenuLocation(
const std::string&);
222 virtual void removeMenuLocation(
const std::string&);
223 virtual void removeMenuLocation(
int);
224 virtual const std::vector<std::string>& menuLocations()
const;
225 virtual void setShowInMenu(
bool);
226 virtual bool showInMenu()
const;
231 virtual void setToolbarLocation(
const std::string&);
232 virtual const std::string& toolbarLocation()
const;
233 virtual void setShowInToolbar(
bool);
234 virtual bool showInToolbar()
const;
240 virtual void setEntityTypes(
const std::vector<DtEntityType>&);
241 virtual void addEntityType(
const DtEntityType&);
242 virtual void removeEntityType(
const DtEntityType&);
243 virtual void removeEntityType(
int);
244 virtual std::vector<DtEntityType> entityTypes()
const;
245 virtual bool supportsEntityType(
const DtEntityType&)
const;
248 virtual bool hasEntityType(
const DtEntityType&)
const;
255 virtual void setVariables(
const std::vector<DtScriptedTaskVariable>&);
259 virtual void removeVariable(
const std::string&);
260 virtual void removeVariable(
int);
264 virtual std::vector<DtScriptedTaskVariable> variables()
const;
267 virtual std::vector<DtScriptedTaskVariable> scriptedTaskVariables()
const;
281 virtual void setScript(
const std::string&);
282 virtual const std::string& script()
const;
286 virtual bool loadScript();
289 virtual bool loadScript(
const std::string&);
293 virtual bool loadUiLayout();
296 virtual bool loadUiLayout(
const std::string&);
300 virtual void setIsSystemScript(
bool);
301 virtual bool isSystemScript()
const;
306 virtual void setActionCategories(
const std::set<std::string>&);
307 virtual void addActionCategory(
const std::string&);
308 virtual void removeActionCategory(
const std::string&);
309 virtual bool hasActionCategory(
const std::string&)
const;
310 virtual const std::set<std::string>& actionCategories()
const;
315 virtual void setDoctrines(
const std::set<std::string>&);
316 virtual bool addDoctrine(
const std::string&);
317 virtual bool removeDoctrine(
const std::string&);
318 virtual bool supportsDoctrine(
const std::string&)
const;
319 virtual const std::set<std::string>& doctrines()
const;
320 virtual bool renameDoctrine(
const std::string& from,
const std::string& to);
321 virtual void setAvailableToAllDoctrines(
bool);
322 virtual bool availableToAllDoctrines()
const;
327 virtual void setShowOnTopLevelRightClickMenu(
bool);
328 virtual bool showOnTopLevelRightClickMenu()
const;
334 virtual void setDirectoryPath(
const std::string&);
335 virtual const std::string& directoryPath()
const;
341 virtual const std::set<std::string>& aliases()
const;
342 virtual void addAlias(
const std::string&);
343 virtual void removeAlias(
const std::string&);
344 virtual void clearAliases();
345 virtual void setAliases(
const std::set<std::string>&);
346 virtual bool isAliased(
const std::string&)
const;
350 virtual void assignNewScriptId();
353 virtual bool supports(
const DtEntityType&)
const;
364 virtual bool encrypt(
const std::string& source, std::string& dest)
const;
367 virtual bool encryptScript();
370 virtual bool encryptSize(
const std::string& source,
int&
size)
const;
373 virtual bool decrypt(
const std::string& source, std::string& dest)
const;
377 virtual bool decryptScript();
381 virtual std::auto_ptr<DtRwVariableBindings> upgradeVariables(
const DtRwVariableBindings&)
const;
387 virtual void setEncrypted(
bool);
388 virtual bool encrypted()
const;
393 virtual void setFlag(
int,
bool);
394 virtual bool flagSet(
int)
const;
402 virtual void loadTranslationFile(
const std::string& lang);
403 virtual void translationData(
char*& data,
unsigned int& len)
const;
404 virtual std::string translationLanguage()
const;
405 virtual void clearTranslationData();
409 virtual std::string removeTrailingLinefeeds(
const std::string&);
412 virtual void makeAllIdsLowercase();
415 virtual std::string readFile(
const std::string&)
const;
420 friend class boost::serialization::access;
425 template<
class Archive>
426 void serialize(Archive & ar,
const unsigned int version)
428 ar & BOOST_SERIALIZATION_NVP(myScriptId);
429 ar & BOOST_SERIALIZATION_NVP(myMenuText);
430 ar & BOOST_SERIALIZATION_NVP(myToolTip);
431 ar & BOOST_SERIALIZATION_NVP(myMenuIcon);
432 ar & BOOST_SERIALIZATION_NVP(myVersion);
433 ar & BOOST_SERIALIZATION_NVP(myScriptEngine);
434 ar & BOOST_SERIALIZATION_NVP(myComments);
435 ar & BOOST_SERIALIZATION_NVP(myMenuLocations);
436 ar & BOOST_SERIALIZATION_NVP(myIsSystemScript);
437 ar & BOOST_SERIALIZATION_NVP(myDescription);
438 ar & BOOST_SERIALIZATION_NVP(myScriptLocation);
439 ar & BOOST_SERIALIZATION_NVP(myDirectoryPath);
440 ar & BOOST_SERIALIZATION_NVP(myEntityTypes);
441 ar & BOOST_SERIALIZATION_NVP(myVariables);
442 ar & BOOST_SERIALIZATION_NVP(myScript);
446 ar & BOOST_SERIALIZATION_NVP(myActionCategories);
450 ar & BOOST_SERIALIZATION_NVP(myShowInMenu);
455 ar & BOOST_SERIALIZATION_NVP(myEncrypted);
460 ar & BOOST_SERIALIZATION_NVP(myScriptType);
469 ar & BOOST_SERIALIZATION_NVP(myDoctrines);
470 ar & BOOST_SERIALIZATION_NVP(myFlags);
479 ar & BOOST_SERIALIZATION_NVP(myShowInToolbar);
480 ar & BOOST_SERIALIZATION_NVP(myToolbarLocation);
485 ar & BOOST_SERIALIZATION_NVP(myExtendedMenuText);
490 ar & BOOST_SERIALIZATION_NVP(myShortDescription);
495 ar & BOOST_SERIALIZATION_NVP(myUiLayout);
500 ar & BOOST_SERIALIZATION_NVP(myAliases);
503 if (Archive::is_loading::value && (version <= 11))
505 makeAllIdsLowercase();
559 namespace DtBufferSerialize