cpp_tags.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
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
This file is part of the documentation for KDevelop Version 3.1.2.