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

proc/proctrans.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_TRANS_H
00007 #define WOC_PROCESSOR_TRANS_H
00008 
00009 #include <QList>
00010 #include <QMap>
00011 #include <QObject>
00012 #include <QPair>
00013 #include <QStringList>
00014 
00016 class WocTransaction
00017 {
00018         public:
00020                 WocTransaction(const QDomElement&);
00022                 bool isValid()const{return m_valid;}
00023                 
00025                 QString name()const{return m_name;}
00026                 
00028                 bool hasInput(QString v)const;
00030                 QStringList inputNames()const;
00032                 QString inputType(QString)const;
00033                 
00035                 bool hasOutput(QString v)const;
00037                 QStringList outputNames()const;
00039                 QString outputType(QString)const;
00040                 
00042                 bool hasCall(QString c)const{return m_call.contains(c);}
00044                 QString callFunction(QString c)const{return m_call[c].first;}
00046                 QString callInclude(QString c)const{return m_call[c].second.trimmed();}
00047                 
00049                 enum AuthMode {
00051                         Checked,
00053                         Auth,
00055                         Open
00056                 };
00057                 AuthMode authMode()const{return m_mode;}
00058                 
00060                 static bool isListType(QString t){return t.startsWith("List:");}
00062                 static QString plainType(QString t){
00063                         if(t.startsWith("List:"))t=t.mid(5);
00064                         QStringList l=t.split("/",QString::SkipEmptyParts);
00065                         if(l.size()>0)t=l[0];else t="unknown";
00066                         return t;
00067                 }
00069                 QString typeSerializer(QString t)const{
00070                         QStringList l=t.split("/",QString::SkipEmptyParts);
00071                         if(l.size()>1)return l[1];
00072                         else return "";
00073                 }
00075                 static bool isIntType(QString t){QString pt=plainType(t);return pt=="int" || pt=="int32" || pt=="int64";}
00077                 static bool isBoolType(QString t){return plainType(t)=="bool";}
00079                 static bool isStringType(QString t){QString p=plainType(t);return p=="astring"||p=="string";}
00081                 static bool isBlobType(QString t){QString p=plainType(t);return p=="blob";}
00083                 static bool isAttributeType(QString t){return t=="astring"||t=="int"||t=="int32"||t=="int64"||t=="bool";}
00085                 static bool isElementType(QString t){return !isAttributeType(t);}
00087                 static bool isObjectType(QString t){QString p=plainType(t);return p!="astring"&&p!="string"&&p!="int"&&p!="int32"&&p!="int64"&&p!="bool"&&p!="blob";}
00088                 
00090                 QStringList docStrings()const{return m_docstrings;}
00092                 QString inputDoc(QString v)const
00093                 {if(m_indoc.contains(v))return m_indoc[v];else return "";}
00095                 QString outputDoc(QString v)const
00096                 {if(m_outdoc.contains(v))return m_outdoc[v];else return "";}
00098                 QString privilegeDoc(QString p)const
00099                 {if(m_privdoc.contains(p))return m_privdoc[p];else return "";}
00100                 
00102                 QStringList privileges()const{return m_privileges;}
00103                 
00105                 bool isDbUpdating()const{return m_update;}
00106         private:
00107                 QString m_name;
00108                 bool m_valid,m_update;
00109                 AuthMode m_mode;
00110                 QMap<QString,QPair<QString,QString> > m_call;
00111                 QList<QPair<QString,QString> >m_input,m_output;
00112                 QStringList m_privileges;
00113                 //docu
00114                 QStringList m_docstrings;
00115                 QMap<QString,QString>m_indoc,m_outdoc,m_privdoc;
00116 };
00117 
00118 #endif

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