language/duchain
classmemberdeclaration.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef CLASSMEMBERDECLARATION_H
00023 #define CLASSMEMBERDECLARATION_H
00024
00025 #include "declaration.h"
00026
00027 namespace KDevelop
00028 {
00029 class ClassMemberDeclarationData;
00033 class KDEVPLATFORMLANGUAGE_EXPORT ClassMemberDeclaration : public Declaration
00034 {
00035 public:
00036 ClassMemberDeclaration(const ClassMemberDeclaration& rhs);
00037 ClassMemberDeclaration(const SimpleRange& range, DUContext* context);
00038 ClassMemberDeclaration(ClassMemberDeclarationData& dd);
00039 ~ClassMemberDeclaration();
00040
00041 AccessPolicy accessPolicy() const;
00042 void setAccessPolicy(AccessPolicy accessPolicy);
00043
00044 enum StorageSpecifier {
00045 StaticSpecifier = 0x1 ,
00046 AutoSpecifier = 0x2 ,
00047 FriendSpecifier = 0x4 ,
00048 ExternSpecifier = 0x8 ,
00049 RegisterSpecifier = 0x10 ,
00050 MutableSpecifier = 0x20 ,
00051 FinalSpecifier = 0x40 ,
00052 NativeSpecifier = 0x80,
00053 SynchronizedSpecifier = 0x100,
00054 StrictFPSpecifier = 0x200,
00055 AbstractSpecifier = 0x400
00056 };
00057 Q_DECLARE_FLAGS(StorageSpecifiers, StorageSpecifier)
00058
00059 void setStorageSpecifiers(StorageSpecifiers specifiers);
00060
00061 bool isStatic() const;
00062 void setStatic(bool isStatic);
00063
00064 bool isAuto() const;
00065 void setAuto(bool isAuto);
00066
00067 bool isFriend() const;
00068 void setFriend(bool isFriend);
00069
00070 bool isRegister() const;
00071 void setRegister(bool isRegister);
00072
00073 bool isExtern() const;
00074 void setExtern(bool isExtern);
00075
00076 bool isMutable() const;
00077 void setMutable(bool isMutable);
00078
00079 bool isNative() const;
00080 void setNative(bool native);
00081
00082 bool isSynchronized() const;
00083 void setSynchronized(bool synchronized);
00084
00085 bool isStrictFP() const;
00086 void setStrictFP(bool strictFP);
00087
00088 bool isAbstract() const;
00089 void setAbstract(bool abstract);
00090
00091 enum {
00092 Identity = 9
00093 };
00094
00095 protected:
00096 ClassMemberDeclaration(ClassMemberDeclarationData& dd, const SimpleRange& range);
00097
00098 DUCHAIN_DECLARE_DATA(ClassMemberDeclaration)
00099 private:
00100 virtual Declaration* clonePrivate() const;
00101
00102 };
00103 }
00104
00105 Q_DECLARE_OPERATORS_FOR_FLAGS(KDevelop::ClassMemberDeclaration::StorageSpecifiers)
00106
00107 #endif // CLASSMEMBERDECLARATION_H
00108
00109