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

qt/qtout.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_QTOUT_H
00007 #define WOC_QTOUT_H
00008 
00009 #include "processor.h"
00010 
00011 #include "mfile.h"
00012 
00013 class QDomElement;
00014 
00015 class WocQtOut;
00016 
00018 class WocQtTransaction:public QObject
00019 {
00020         Q_OBJECT
00021         public:
00023                 explicit WocQtTransaction(WocQtOut*);
00024                 virtual ~WocQtTransaction(){}
00026                 virtual void newTransaction(const WocTransaction&)=0;
00028                 virtual void finalize()=0;
00029         signals:
00031                 void errorFound();
00032         protected:
00033                 WocQtOut*m_parent;
00034 };
00035 
00036 class WocQtClass;
00037 class WocQtTable;
00038 
00044 class WocQtOut:public WocOutput
00045 {
00046         public:
00049                 explicit WocQtOut(QDomElement&);
00051                 ~WocQtOut()=0;
00052                 
00055                 void addIfaceHeaderPrefix(const QString&s){m_iface_prefix+=s;}
00058                 void addIfaceHeaderClass(const QString&s){m_iface_class+=s;}
00060                 void addIfaceImpl(const QString&);
00061                 
00062         protected:
00064                 virtual void finalize();
00066                 virtual void newClass(const WocClass&);
00068                 virtual void newTable(const WocTable&);
00070                 virtual void newTransaction(const WocTransaction&);
00071         
00072         public:
00074                 enum FileType{
00075                         Header,
00076                         Source
00077                 };
00078                 
00080                 QString qttype(const WocClass&,QString,bool dolist=true);
00081                 enum InOut{In,Out};
00083                 QString qttype(const WocTransaction&,QString,InOut);
00085                 QString qtobjtype(const WocTransaction&,QString,InOut);
00088                 void addFile(QString basename);
00092                 void addFile(FileType kind,QString fname);
00094                 void addProjectLine(QString);
00096                 void addPostIface(QString);
00098                 QString ifaceClassName()const{return m_prefix+"Interface";}
00100                 void addScriptInit(QString s){m_scriptcode+=s;}
00102                 inline bool doGenerateScripting()const{return m_genscript;}
00103                 
00105                 inline QString namePrefix()const{return m_prefix;}
00107                 inline QString languageSpec()const{return m_lang;}
00109                 inline QString baseDir()const{return m_basedir;}
00111                 inline QString subDir()const{return m_subdir;}
00113                 inline QString destinationPath()const{return m_basedir+"/"+m_subdir;}
00115                 inline QString transactionBase()const{return m_transbase;}
00116                 
00117         private:
00119                 void initScripting();
00121                 void initVersionH();
00122                 
00123         private:
00124                 QString m_basedir,m_subdir,m_prefix,m_transbase,m_postiface,m_scriptcode;
00125                 bool m_clean,m_genscript;
00126                 MFile m_pri,m_iface,m_ifacecpp,m_hdr;
00127                 QString m_iface_prefix,m_iface_class;
00128         protected:
00129                 QString m_lang;
00130                 WocQtClass*qclass;
00131                 WocQtTable*qtable;
00132                 WocQtTransaction*qtrans;
00133 };
00134 
00136 class WocQtClientOut:public WocQtOut
00137 {
00138         public:
00139                 explicit WocQtClientOut(QDomElement&);
00140 };
00141 
00143 class WocQtServerOut:public WocQtOut
00144 {
00145         public:
00146                 explicit WocQtServerOut(QDomElement&);
00147 };
00148 
00149 #endif

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