source: dev/trunk/ab5.0/abdev/ab_common/include/Lexical/Prototype.h@ 637

Last change on this file since 637 was 637, checked in by dai_9181, 16 years ago

リンカの依存関係解決モジュールを製作中

File size: 2.0 KB
Line 
1#pragma once
2
3namespace ActiveBasic{ namespace Common{ namespace Lexical{
4
5
6class Prototype
7 : public RelationalObjectModuleItem
8{
9public:
10 enum Accessibility{
11 None,
12 Private,
13 Protected,
14 Public,
15 };
16
17private:
18 mutable bool isUsing;
19
20
21 // XMLシリアライズ用
22private:
23 friend class boost::serialization::access;
24 template<class Archive> void serialize(Archive& ar, const unsigned int version)
25 {
26 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP( RelationalObjectModuleItem );
27 ar & BOOST_SERIALIZATION_NVP( isUsing );
28 }
29
30
31public:
32
33 Prototype( const Symbol &symbol )
34 : RelationalObjectModuleItem( symbol )
35 , isUsing( false )
36 {
37 }
38 Prototype()
39 {
40 }
41 ~Prototype()
42 {
43 }
44
45 //自身と等しいかどうかを確認
46 bool IsEquals( const Prototype *prototype ) const
47 {
48 if( this == prototype ){
49 return true;
50 }
51 return false;
52 }
53
54 // 利用状況
55 bool IsUsing() const
56 {
57 return isUsing;
58 }
59 virtual void Using() const
60 {
61 isUsing = true;
62 }
63};
64
65class MemberPrototype
66{
67 Prototype::Accessibility accessibility;
68
69 // XMLシリアライズ用
70private:
71 friend class boost::serialization::access;
72 template<class Archive> void serialize(Archive& ar, const unsigned int version)
73 {
74 ar & BOOST_SERIALIZATION_NVP( accessibility );
75 }
76
77public:
78 MemberPrototype( Prototype::Accessibility accessibility )
79 : accessibility( accessibility )
80 {
81 }
82 MemberPrototype()
83 : accessibility( Prototype::None )
84 {
85 }
86
87 Prototype::Accessibility GetAccessibility() const
88 {
89 return accessibility;
90 }
91 void SetAccessibility( Prototype::Accessibility accessibility ){
92 this->accessibility = accessibility;
93 }
94
95 bool IsNoneAccess() const
96 {
97 return ( accessibility == Prototype::None );
98 }
99 bool IsPrivate() const
100 {
101 return ( accessibility == Prototype::Private );
102 }
103 bool IsProtected() const
104 {
105 return ( accessibility == Prototype::Protected );
106 }
107 bool IsPublic() const
108 {
109 return ( accessibility == Prototype::Public );
110 }
111};
112
113
114}}}
Note: See TracBrowser for help on using the repository browser.