• Main Page
  • Classes
  • Files
  • File List
  • File Members

proc/processor.h

Go to the documentation of this file.
00001 // Copyright (C) 2009-2011 by Konrad Rosenbaum <konrad@silmor.de>
00002 // protected under the GNU GPL version 3 or at your option any newer.
00003 // See COPYING.GPL file that comes with this distribution.
00004 //
00005 
00006 #ifndef WOC_PROCESSOR_H
00007 #define WOC_PROCESSOR_H
00008 
00009 #include <QList>
00010 #include <QMap>
00011 #include <QObject>
00012 #include <QPair>
00013 #include <QStringList>
00014 
00015 class QDomElement;
00016 
00017 QList<QDomElement>elementsByTagName(const QDomElement&,QString);
00018 
00019 inline bool str2bool(QString s)
00020 {
00021         bool b;
00022         int i=s.toInt(&b,0);
00023         if(b)return i?true:false;
00024         s=s.toLower();
00025         if(s=="yes"||s=="y"||s=="on"||s=="true"||s=="t")return true;
00026         return false;
00027 }
00028 
00029 #include "procclass.h"
00030 #include "proctable.h"
00031 #include "proctrans.h"
00032 
00033 
00035 class WocOutput:public QObject
00036 {
00037         Q_OBJECT
00038         public:
00040                 WocOutput();
00042                 virtual ~WocOutput();
00043                 
00044         protected slots:
00046                 virtual void newClass(const WocClass&)=0;
00048                 virtual void newTable(const WocTable&)=0;
00050                 virtual void newTransaction(const WocTransaction&)=0;
00052                 virtual void finalize()=0;
00053         signals:
00054                 void errorFound();
00055 };
00056 
00058 class WocProcessor:public QObject
00059 {
00060         Q_OBJECT
00061         public:
00062                 WocProcessor();
00063                 
00065                 bool processFile(QString);
00067                 void finalize();
00068                 
00070                 static WocProcessor* instance(){return inst;}
00071                 
00073                 QString baseDir()const{return m_baseDir;}
00075                 QString wobDir()const{return m_wobDir;}
00077                 QString projectName()const{return m_projname;}
00079                 QString verComm()const{return m_verComm;}
00081                 QString verNeedComm()const{return m_verNeedComm;}
00083                 QString verHR()const{return m_verHR;}
00085                 QMap<QString,QString> versionInfo()const{return m_verInfo;}
00087                 QString dbInst()const{return m_dbInst;}
00089                 QString dbSchema()const{return m_dbSchema;}
00091                 QString dbVersion()const{return m_dbVer;}
00092                 
00094                 QString xmlProjectNamespace()const{return m_xmlNS;}
00096                 QString xmlPackNamespace()const{return m_xmlPackNS;}
00098                 QString xmlSoap12Namespace()const{return m_xmlSoap12NS;}
00100                 QString xmlSchemaNamespace()const{return m_xmlSchemaNS;}
00102                 QString xmlXmlNamespace()const{return m_xmlXmlNS;}
00103                 
00105                 enum MessageEncoding{
00107                         WobEncoding=0,
00109                         Soap12Encoding=1,
00111                         SoapEncoding=1,
00113                         DefaultEncoding=-1
00114                 };
00116                 MessageEncoding messageEncoding()const{return m_encmode;}
00117                 
00119                 enum AuthMode {
00121                         NoAuth=0,
00123                         SessionAuth=1,
00125                         BasicAuth=2,
00127                         UnknownAuth=-1
00128                 };
00130                 AuthMode authMode()const{return m_auth;}
00131                 
00133                 bool hasTable(QString)const;
00135                 WocTable table(QString)const;
00136                 
00138                 bool hasClass(QString)const;
00139                 
00141                 QStringList transactionNames()const;
00143                 QStringList classNames()const;
00145                 QStringList tableNames()const;
00146                 
00148                 QStringList docStrings()const{return m_docstrings;}
00149                 
00151                 QStringList privilegeNames()const;
00152                 
00154                 bool dbUpdatingDefault()const{return m_dbUpd;}
00155         signals:
00156                 void sfinalize();
00157                 void newClass(const WocClass&);
00158                 void newTable(const WocTable&);
00159                 void newTransaction(const WocTransaction&);
00160         public slots:
00161                 void errorFound();
00162         private:
00163                 QString m_baseDir,m_wobDir,m_verComm,m_verNeedComm,m_verHR,m_projname;
00164                 QString m_verTarget,m_svnExe,m_gitExe;
00165                 QMap<QString,QString>m_verInfo;
00166                 QStringList m_verSys;
00167                 QString m_dbInst,m_dbSchema,m_dbVer;
00168                 QString m_xmlNS,m_xmlPackNS,m_xmlSoap12NS,m_xmlSchemaNS,m_xmlXmlNS;
00169                 QStringList m_docstrings;
00170                 bool m_error,m_dbUpd;
00171                 MessageEncoding m_encmode;
00172                 AuthMode m_auth;
00173                 
00174                 QList<WocTable> m_tables;
00175                 QList<WocClass> m_classes;
00176                 QList<WocTransaction> m_transactions;
00177                 
00178                 static WocProcessor*inst;
00179                 
00181                 bool callSvn();
00183                 bool callGit();
00185                 bool callNoVer();
00186                 
00188                 void parseNamespaces();
00189                 
00191                 AuthMode str2AuthMode(QString);
00192 };
00193 
00194 
00195 #endif

Generated on Sun Apr 15 2012 21:13:24 for PACK WOC by  doxygen 1.7.1