KDevelop API Documentation

cpp_tags.h

Go to the documentation of this file.
00001 //
00002 //
00003 // C++ Interface: cpp_tags
00004 //
00005 // Description:
00006 //
00007 //
00008 // Author: KDevelop Authors <kdevelop-devel@kdevelop.org>, (C) 2003
00009 //
00010 // Copyright: See COPYING file that comes with this distribution
00011 //
00012 //
00013 #ifndef CPP_TAGS_H
00014 #define CPP_TAGS_H
00015 
00016 #include <qstring.h>
00017 #include <qstringlist.h>
00018 
00019 template <class Tag>
00020 class CppBaseClass
00021 {
00022 public:
00023     CppBaseClass( Tag& tag )
00024     : m_tag( tag ) { m_info.flags = tag.flags(); }
00025 
00026     operator Tag& () { return asTag(); }
00027     Tag& asTag() { return m_tag; }
00028 
00029     operator const Tag& () const { return asTag(); }
00030     const Tag& asTag() const { return m_tag; }
00031 
00032     static QString format( const Tag& tag ) { return QString::null; }
00033 
00034     int access() const
00035     {
00036     return m_info.data.access;
00037     }
00038 
00039     void setAccess( int access )
00040     {
00041     m_info.data.access = access;
00042     m_tag.setFlags( m_info.flags );
00043     }
00044 
00045     bool isVirtual() const
00046     {
00047     return m_info.data.isVirtual;
00048     }
00049 
00050     void setVirtual( bool b )
00051     {
00052     m_info.data.isVirtual = b;
00053     m_tag.setFlags( m_info.flags );
00054     }
00055 
00056     QString name() const
00057     {
00058     return m_tag.name();
00059     }
00060 
00061     void setName( const QString& name )
00062     {
00063     m_tag.setName( name );
00064     }
00065 
00066     QString baseClass() const
00067     {
00068     return m_tag.attribute( "b" ).toString();
00069     }
00070 
00071     void setBaseClass( const QString& baseClass )
00072     {
00073     m_tag.setAttribute( "b", baseClass );
00074     }
00075 
00076 private:
00077     Tag& m_tag;
00078     union
00079     {
00080     unsigned long flags;
00081     struct
00082     {
00083         unsigned long access: 3;
00084         unsigned long isVirtual: 1;
00085     } data;
00086     } m_info;
00087 };
00088 
00089 template <class Tag>
00090 class CppVariable
00091 {
00092 public:
00093     CppVariable( Tag& tag )
00094     : m_tag( tag ) { m_info.flags = tag.flags(); }
00095 
00096     operator Tag& () { return asTag(); }
00097     Tag& asTag() { return m_tag; }
00098 
00099     operator const Tag& () const { return asTag(); }
00100     const Tag& asTag() const { return m_tag; }
00101 
00102     static QString format( const Tag& tag ) { return QString::null; }
00103 
00104     int access() const
00105     {
00106     return m_info.data.access;
00107     }
00108 
00109     void setAccess( int access )
00110     {
00111     m_info.data.access = access;
00112     m_tag.setFlags( m_info.flags );
00113     }
00114 
00115     bool isFriend() const
00116     {
00117     return m_info.data.isFriend;
00118     }
00119 
00120     void setFriend( bool b )
00121     {
00122     m_info.data.isFriend = b;
00123     m_tag.setFlags( m_info.flags );
00124     }
00125 
00126     bool isStatic() const
00127     {
00128     return m_info.data.isStatic;
00129     }
00130 
00131     void setStatic( bool b )
00132     {
00133     m_info.data.isStatic = b;
00134     m_tag.setFlags( m_info.flags );
00135     }
00136 
00137     QString type() const
00138     {
00139     return m_tag.attribute( "t" ).toString();
00140     }
00141 
00142     void setType( const QString& type )
00143     {
00144     m_tag.setAttribute( "t", type );
00145     }
00146 
00147     QString name() const
00148     {
00149     return m_tag.name();
00150     }
00151 
00152     void setName( const QString& name )
00153     {
00154     m_tag.setName( name );
00155     }
00156 
00157 private:
00158     Tag& m_tag;
00159     union
00160     {
00161     unsigned long flags;
00162     struct
00163     {
00164         unsigned long access: 3;
00165         unsigned long isStatic: 1;
00166         unsigned long isFriend: 1;
00167     } data;
00168     } m_info;
00169 };
00170 
00171 template <class Tag>
00172 class CppFunction
00173 {
00174 public:
00175     CppFunction( Tag& tag )
00176     : m_tag( tag ) { m_info.flags = tag.flags(); }
00177 
00178     operator Tag& () { return asTag(); }
00179     Tag& asTag() { return m_tag; }
00180 
00181     operator const Tag& () const { return asTag(); }
00182     const Tag& asTag() const { return m_tag; }
00183 
00184     static QString format( const Tag& tag ) { return QString::null; }
00185 
00186     int access() const
00187     {
00188     return m_info.data.access;
00189     }
00190 
00191     void setAccess( int access )
00192     {
00193     m_info.data.access = access;
00194     m_tag.setFlags( m_info.flags );
00195     }
00196 
00197     bool isSignal() const
00198     {
00199         return bool( m_info.data.isSignal );
00200     }
00201 
00202     void setSignal( bool isSignal )
00203     {
00204         m_info.data.isSignal = isSignal;
00205         m_tag.setFlags( m_info.flags );
00206     }
00207 
00208     bool isSlot() const
00209     {
00210         return bool( m_info.data.isSlot );
00211     }
00212 
00213     void setSlot( bool isSlot )
00214     {
00215         m_info.data.isSlot = isSlot;
00216         m_tag.setFlags( m_info.flags );
00217     }
00218 
00219     bool isInline() const
00220     {
00221     return m_info.data.isInline;
00222     }
00223 
00224     void setInline( bool b )
00225     {
00226     m_info.data.isInline = b;
00227     m_tag.setFlags( m_info.flags );
00228     }
00229 
00230     bool isPure() const
00231     {
00232     return m_info.data.isPure;
00233     }
00234 
00235     void setPure( bool b )
00236     {
00237     m_info.data.isPure = b;
00238     m_tag.setFlags( m_info.flags );
00239     }
00240 
00241     bool isFriend() const
00242     {
00243     return m_info.data.isFriend;
00244     }
00245 
00246     void setFriend( bool b )
00247     {
00248     m_info.data.isFriend = b;
00249     m_tag.setFlags( m_info.flags );
00250     }
00251 
00252     bool isConst() const
00253     {
00254     return m_info.data.isConst;
00255     }
00256 
00257     void setConst( bool b )
00258     {
00259     m_info.data.isConst = b;
00260     m_tag.setFlags( m_info.flags );
00261     }
00262 
00263     bool isVolatile() const
00264     {
00265     return m_info.data.isVolatile;
00266     }
00267 
00268     void setVolatile( bool b )
00269     {
00270     m_info.data.isVolatile = b;
00271     m_tag.setFlags( m_info.flags );
00272     }
00273 
00274     bool isVirtual() const
00275     {
00276     return m_info.data.isVirtual;
00277     }
00278 
00279     void setVirtual( bool b )
00280     {
00281     m_info.data.isVirtual = b;
00282     m_tag.setFlags( m_info.flags );
00283     }
00284 
00285     bool isStatic() const
00286     {
00287     return m_info.data.isStatic;
00288     }
00289 
00290     void setStatic( bool b )
00291     {
00292     m_info.data.isStatic = b;
00293     m_tag.setFlags( m_info.flags );
00294     }
00295 
00296 
00297     QString type() const
00298     {
00299     return m_tag.attribute( "t" ).toString();
00300     }
00301 
00302     void setType( const QString& type )
00303     {
00304     m_tag.setAttribute( "t", type );
00305     }
00306 
00307     QString name() const
00308     {
00309     return m_tag.name();
00310     }
00311 
00312     void setName( const QString& name )
00313     {
00314     m_tag.setName( name );
00315     }
00316 
00317     QStringList arguments() const
00318     {
00319     return m_tag.attribute( "a" ).toStringList();
00320     }
00321 
00322     void setArguments( const QStringList args )
00323     {
00324     m_tag.setAttribute( "a", args );
00325     }
00326 
00327     QStringList argumentNames() const
00328     {
00329     return m_tag.attribute( "an" ).toStringList();
00330     }
00331 
00332     void setArgumentNames( const QStringList args )
00333     {
00334     m_tag.setAttribute( "an", args );
00335     }
00336 
00337 private:
00338     Tag& m_tag;
00339     union
00340     {
00341     unsigned long flags;
00342     struct
00343     {
00344         unsigned long access: 3;
00345         unsigned long isInline: 1;
00346         unsigned long isVirtual: 1;
00347         unsigned long isStatic: 1;
00348         unsigned long isPure: 1;
00349         unsigned long isFriend: 1;
00350         unsigned long isConst: 1;
00351         unsigned long isValile: 1;
00352             unsigned long isSlot: 1;
00353             unsigned long isSignal: 1;
00354     } data;
00355     } m_info;
00356 };
00357 
00358 #endif
KDE Logo
This file is part of the documentation for KDevelop Version 3.1.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Tue Feb 22 09:22:28 2005 by doxygen 1.3.9.1 written by Dimitri van Heesch, © 1997-2003