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

Last change on this file since 829 was 829, checked in by イグトランス (egtra), 12 years ago

svn:eol-styleとsvn:mime-type(文字コード指定含む)の設定

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/plain; charset=Shift_JIS
File size: 2.1 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
64private:
65 Prototype(Prototype const&);
66 Prototype& operator =(Prototype const&);
67};
68
69class MemberPrototype
70{
71 Prototype::Accessibility accessibility;
72
73 // XMLシリアライズ用
74private:
75 friend class boost::serialization::access;
76 template<class Archive> void serialize(Archive& ar, const unsigned int version)
77 {
78 ar & BOOST_SERIALIZATION_NVP( accessibility );
79 }
80
81public:
82 MemberPrototype( Prototype::Accessibility accessibility )
83 : accessibility( accessibility )
84 {
85 }
86
87 MemberPrototype()
88 : accessibility( Prototype::None )
89 {
90 }
91
92protected:
93 MemberPrototype(MemberPrototype const& y)
94 : accessibility(y.accessibility)
95 {
96 }
97
98public:
99 Prototype::Accessibility GetAccessibility() const
100 {
101 return accessibility;
102 }
103 void SetAccessibility( Prototype::Accessibility accessibility ){
104 this->accessibility = accessibility;
105 }
106
107 bool IsNoneAccess() const
108 {
109 return ( accessibility == Prototype::None );
110 }
111 bool IsPrivate() const
112 {
113 return ( accessibility == Prototype::Private );
114 }
115 bool IsProtected() const
116 {
117 return ( accessibility == Prototype::Protected );
118 }
119 bool IsPublic() const
120 {
121 return ( accessibility == Prototype::Public );
122 }
123
124private:
125 MemberPrototype& operator =(MemberPrototype const &);
126};
127
128
129}}}
Note: See TracBrowser for help on using the repository browser.