VHISTlib  1.84.0.3018
/daten/ahuesgen/projects/vhist/code/vhistlib/include/arglib/argfile.h
00001 /* $HEADERS
00002  $Id: argfile.h 2179 2011-06-24 09:03:24Z ahuesgen $
00003  */
00004 
00005 #ifndef ARGFILE_INCLUDED
00006 #define ARGFILE_INCLUDED
00007 
00008 #include "../shared/misc_defines.h"
00009 #include "wsfile.h"
00010 
00011 #include <QString>
00012 #include <QHash>
00013 #include <QList>
00014 
00015 namespace vhist
00016 {
00017 
00018 typedef QPair<QString, QString> UserAttribute;
00019 
00029 class VHIST_EXTERN ArgFile
00030 {
00031     public:
00036         enum Verbosity
00037         {
00039             QUIET,
00041             NORMAL,
00043             VERBOSE
00044         };
00045     
00046     public: // construction, destruction
00047         ArgFile();
00048         ArgFile(const QString& outVhistfile, const QString& rootfile = QString());
00049         ArgFile(const ArgFile& rhs);
00050         ~ArgFile();
00051     
00052     public: // main functionality
00053         QString toCommandline(bool supportVariables = true) const;
00054     
00055     public: // getter and setter
00056         void setPretend(bool pretend);
00057         bool pretend() const;
00058         void setDebugMode(bool debug);
00059         bool debugMode() const;
00060         void setVerbosity(Verbosity verbosity);
00061         Verbosity verbosity() const;
00062         void setShowHelp(bool showHelp);
00063         bool showHelp() const;
00064         void setShowVersion(bool showVersion);
00065         bool showVersion() const;
00066         
00067         void setRootfile(const QString& rootfile);
00068         QString rootfile() const;
00069         void setRootIsOptional(bool optional);
00070         bool rootIsOptional() const;
00071         
00072         void setTitle(const QString& title);
00073         QString title() const;
00074         void setDescription(const QString& description);
00075         QString description() const;
00076         void setComment(const QString& comment);
00077         QString comment() const;
00078         void setTool(const QString& tool);
00079         QString tool() const;
00080         void setToolpath(const QString& toolpath);
00081         QString toolpath() const;
00082         void setHost(const QString& host);
00083         QString host() const;
00084         void setUser(const QString& user);
00085         QString user() const;
00086         void setCommand(const QString& command);
00087         QString command() const;
00088         
00089         void setPdfTitle(const QString& pdfTitle);
00090         QString pdfTitle() const;
00091         void setPdfProducer(const QString& pdfProducer);
00092         QString pdfProducer() const;
00093         void setPdfCreator(const QString& pdfCreator);
00094         QString pdfCreator() const;
00095         void setPdfAuthor(const QString& pdfAuthor);
00096         QString pdfAuthor() const;
00097         void setPdfKeywords(const QString& pdfKeywords);
00098         QString pdfKeywords() const;
00099         void setPdfSubject(const QString& pdfSubject);
00100         QString pdfSubject() const;
00101         
00102         void setReadme(const QString& readmeFile);
00103         QString readme() const;
00104         void setFirstpage(const QString& firstPageFile);
00105         QString firstpage() const;
00106 
00107         void clearVariables();
00108         void clearRootVhistfiles();
00109 
00110     public: // in-/outfile methods
00111         WSFile* lastFile();
00112         WSFile* addFile(const WSFile& file);
00113         int numFiles() const;
00114         WSFile* getFile(int index);
00115         WSFile getConstFile(int index) const;
00116         void clearFilelist();
00117         void removeFile(int index);
00118     
00119     public: // user attribute methods
00120         void addUserAttribute(const QString& key, const QString& value);
00121         void clearUserAttributes();
00122         QStringList userAttributeKeys() const;
00123         QString userAttribute(const QString& key) const;
00124     
00125     public: // output vhistfile methods
00126         void addOutputVhistfile(const QString& filename);
00127         void clearOutputVhistfiles();
00128         int numOutputVhistfiles() const;
00129         QString outputVhistfile(int index) const;
00130         QString getUndoWorkflowStep() const;
00131     
00132     private: // list/hash options
00133         QHash<QString, QString> m_userAttributes;
00134         QStringList m_userAttributesOrder;
00135         QList<WSFile> m_files;
00136         QStringList m_outVhistfiles;
00137     
00138     private: // misc options
00139         Verbosity m_verbosity;
00140         bool m_rootIsOptional;
00141         bool m_pretend;
00142         bool m_debugMode;
00143         bool m_showHelp;
00144         bool m_showVersion;
00145         
00146         QString m_firstpage;
00147         QString m_readme;
00148         
00149         QString m_rootfile;
00150     
00151     private: // -s options
00152         QString m_title;
00153         QString m_description;
00154         QString m_comment;
00155         QString m_tool;
00156         QString m_toolpath;
00157         QString m_host;
00158         QString m_user;
00159         QString m_command;
00160     
00161     private: // -d options
00162         QString m_pdfTitle;
00163         QString m_pdfProducer;
00164         QString m_pdfCreator;
00165         QString m_pdfAuthor;
00166         QString m_pdfKeywords;
00167         QString m_pdfSubject;
00168 };
00169 
00170 } // namespace
00171 
00172 #endif // ARGFILE_INCLUDED
00173 

VHISTlib 1.84.0.3018 of Jun 28 2013, generated by doxygen.