第 6 章 結論
B.5 初期化関連
付録
124
付録
125
37 p r o t e c t e d:
38 // プ ラ イ ベ ー ト ク ラ ス
39 c l a s s F r a m e w o r k _ P r i v a t e * _ P r i v a t e ;
40 };
41
42 } // n a m e s p a c e R T C O P {}
43
44 # e n d i f // ! _ _ R T C O P _ F R A M E W O R K _ _
ソースコードB.25 Framework Private.h
1 # i f n d e f _ _ R T C O P _ F R A M E W O R K _ P R I V A T E _ _
2 # d e f i n e _ _ R T C O P _ F R A M E W O R K _ P R I V A T E _ _
3
4 n a m e s p a c e R T C O P {
5
6 // 機 能 提 供 を 行 う オ ブ ジ ェ ク ト の 宣 言
7 n a m e s p a c e C o r e {
8 c l a s s R T C O P M a n a g e r ;
9 c l a s s L a y e r d O b j e c t I n i t i a l i z e r ;
10 c l a s s L a y e r A c t i v a t e r ;
11 } // n a m e s p a c e C o r e {}
12
13 // R T C O Pの フ レ ー ム ワ ー ク
14 c l a s s F r a m e w o r k _ P r i v a t e {
15 p u b l i c:
16 // コ ン ス ト ラ ク タ
17 F r a m e w o r k _ P r i v a t e ();
18 // デ ス ト ラ ク タ
19 ~ F r a m e w o r k _ P r i v a t e ();
20 // R T C O Pマ ネ ー ジ ャ
21 C o r e :: R T C O P M a n a g e r * _ R T C O P M a n a g e r ;
22 // L a y e r d O b j e c t初 期 化
23 C o r e :: L a y e r d O b j e c t I n i t i a l i z e r * _ L a y e r d O b j e c t I n i t i a l i z e r ;
24 // レ イ ヤ ア ク テ ィ ベ ー タ
25 C o r e :: L a y e r A c t i v a t e r * _ L a y e r A c t i v a t e r ;
26 };
27
28 } // n a m e s p a c e R T C O P {}
29
30 # e n d i f // ! _ _ R T C O P _ F R A M E W O R K _ P R I V A T E _ _
付録
126
ソースコード B.26 Framework.cpp
1 # i n c l u d e " R T C O P / F r a m e w o r k . h "
2 # i n c l u d e " F r a m e w o r k _ P r i v a t e . h "
3 # i n c l u d e " R T C O P / C o r e / I n i t i a l i z e r . h "
4 # i n c l u d e " R T C O P / C o r e / R T C O P M a n a g e r . h "
5 # i n c l u d e " R T C O P / C o r e / L a y e r d O b j e c t I n i t i a l i z e r . h "
6 # i n c l u d e " R T C O P / C o r e / L a y e r A c t i v a t e r . h "
7
8 n a m e s p a c e R T C O P {
9
10 //
-11 // プ ラ イ ベ ー ト ク ラ ス の 実 装
12 //
-13 // コ ン ス ト ラ ク タ
14 F r a m e w o r k _ P r i v a t e :: F r a m e w o r k _ P r i v a t e ()
15 : _ R T C O P M a n a g e r (0) , _ L a y e r d O b j e c t I n i t i a l i z e r (0) , _ L a y e r A c t i v a t e r (0) {
16 }
17 // デ ス ト ラ ク タ
18 F r a m e w o r k _ P r i v a t e ::~ F r a m e w o r k _ P r i v a t e () {
19 }
20 21
22 //
-23 // シ ン グ ル ト ン ク ラ ス の イ ン ス タ ン ス 化
24 //
-25 F r a m e w o r k * c o n s t F r a m e w o r k :: I n s t a n c e = new F r a m e w o r k ();
26
27 // 自 動 生 成 コ ー ド
28 n a m e s p a c e G e n e r a t e d {
29 // デ フ ォ ル ト イ ニ シ ャ ラ イ ザ の 取 得
30 e x t e r n C o r e :: I n i t i a l i z e r * _ G e t D e f a u l t I n i t i a l i z e r _ ();
31
32 } // n a m e s p a c e G e n e r a t e d
33
34 // ユ ー ザ が 実 行 す べ き 、R T C O Pの 初 期 化
35 v o i d F r a m e w o r k :: I n i t i a l i z e () {
36 // デ フ ォ ル ト の イ ニ シ ャ ラ イ ザ の 取 得
37 C o r e :: I n i t i a l i z e r * i n i t i a l i z e r = G e n e r a t e d ::
_ G e t D e f a u l t I n i t i a l i z e r _ ();
38 // 初 期 化 実 行
39 I n i t i a l i z e ( i n i t i a l i z e r );
付録
127
40 // 後 始 末
41 d e l e t e i n i t i a l i z e r ;
42 }
43 // ユ ー ザ が 実 行 す べ き 、R T C O Pの 初 期 化
44 v o i d F r a m e w o r k :: I n i t i a l i z e ( C o r e :: I n i t i a l i z e r * i n i t i a l i z e r ) {
45 // 各 オ ブ ジ ェ ク ト の 生 成
46 _ P r i v a t e - > _ R T C O P M a n a g e r = i n i t i a l i z e r - > I n i t i a l i z e R T C O P M a n a g e r ();
47 _ P r i v a t e - > _ L a y e r d O b j e c t I n i t i a l i z e r = i n i t i a l i z e r - >
I n i t i a l i z e L a y e r d O b j e c t I n i t i a l i z e r ( _ P r i v a t e - > _ R T C O P M a n a g e r );
48 _ P r i v a t e - > _ L a y e r A c t i v a t e r = i n i t i a l i z e r - >
I n i t i a l i z e L a y e r A c t i v a t e r ( _ P r i v a t e - > _ R T C O P M a n a g e r );
49 // レ イ ヤ の 登 録
50 i n i t i a l i z e r - > R e g i s t e r L a y e r s ( _ P r i v a t e - > _ R T C O P M a n a g e r );
51 // 初 回 レ イ ヤ ア ク テ ィ ベ ー シ ョ ン
52 i n i t i a l i z e r - > F i r s t L a y e r A c t i v a t i o n ( _ P r i v a t e - > _ L a y e r A c t i v a t e r );
53
54 // イ ニ シ ャ ラ イ ザ の 後 始 末 は 、 呼 び 出 し 側 で 行 う こ と …
55 }
56
57 // ユ ー ザ が 実 行 す べ き 、 R T C O Pの 終 了 処 理 の メ ソ ッ ド
58 v o i d F r a m e w o r k :: F i n a l i z e () {
59 // 各 オ ブ ジ ェ ク ト をd e l e t eす る
60 d e l e t e _ P r i v a t e - > _ L a y e r A c t i v a t e r ;
61 d e l e t e _ P r i v a t e - > _ L a y e r d O b j e c t I n i t i a l i z e r ;
62 d e l e t e _ P r i v a t e - > _ R T C O P M a n a g e r ;
63 // 自 殺
64 d e l e t e t h i s;
65 }
66 // R T C O P M a n a g e rの 取 得
67 C o r e :: R T C O P M a n a g e r * c o n s t F r a m e w o r k :: G e t R T C O P M a n a g e r () {
68 r e t u r n _ P r i v a t e - > _ R T C O P M a n a g e r ;
69 }
70
71 // L a y e r d O b j e c t I n i t i a l i z e rの 取 得
72 C o r e :: L a y e r d O b j e c t I n i t i a l i z e r * c o n s t F r a m e w o r k ::
G e t L a y e r d O b j e c t I n i t i a l i z e r () {
73 r e t u r n _ P r i v a t e - > _ L a y e r d O b j e c t I n i t i a l i z e r ;
74 }
75
76 // L a y e r A c t i v a t e rの 取 得
77 C o r e :: L a y e r A c t i v a t e r * c o n s t F r a m e w o r k :: G e t L a y e r A c t i v a t e r () {
78 r e t u r n _ P r i v a t e - > _ L a y e r A c t i v a t e r ;
79 }
付録
128
80 // コ ン ス ト ラ ク タ
81 F r a m e w o r k :: F r a m e w o r k () {
82 _ P r i v a t e = new F r a m e w o r k _ P r i v a t e ();
83 }
84 // デ ス ト ラ ク タ
85 F r a m e w o r k ::~ F r a m e w o r k () {
86 d e l e t e _ P r i v a t e ;
87 _ P r i v a t e = 0;
88 }
89
90 } // n a m e s p a c e R T C O P {}
ソースコード B.27 RTCOPManager.h
1 # i f n d e f _ _ R T C O P _ C O R E _ R T C O P M A N A G E R _ _
2 # d e f i n e _ _ R T C O P _ C O R E _ R T C O P M A N A G E R _ _
3
4 n a m e s p a c e R T C O P {
5 n a m e s p a c e C o r e {
6
7 c l a s s L a y e r ;
8
9 // R T C O P管 理
10 c l a s s R T C O P M a n a g e r {
11 p u b l i c:
12 // コ ン ス ト ラ ク タ
13 R T C O P M a n a g e r (int n u m O f L a y e r s , int n u m O f B a s e C l a s s e s , int* n u m O f B a s e M e t h o d s );
14 // デ ス ト ラ ク タ
15 v i r t u a l ~ R T C O P M a n a g e r ();
16 p u b l i c:
17 // レ イ ヤ の 登 録
18 v o i d R e g i s t e r L a y e r ( L a y e r * l a y e r );
19 // レ イ ヤ の 取 得
20 L a y e r * c o n s t G e t L a y e r (int l a y e r i d );
21 // ク ラ ス I Dで 指 定 し た 仮 想 関 数 テ ー ブ ル を 取 得
22 v o l a t i l e v o i d** c o n s t G e t V i r t u a l F u n c t i o n T a b l e (int c l a s s i d );
23 // レ イ ヤ の 個 数 を 取 得
24 c o n s t int G e t N u m O f L a y e r s ();
25 // ベ ー ス ク ラ ス の 個 数 を 取 得
26 c o n s t int G e t N u m O f B a s e C l a s s e s ();
27 // ベ ー ス メ ソ ッ ド の 個 数 を 取 得
28 int* c o n s t G e t N u m O f B a s e M e t h o d s ();
付録
129
29 // ベ ー ス メ ソ ッ ド の 個 数 を 取 得
30 c o n s t int G e t N u m O f B a s e M e t h o d s (int c l a s s i d );
31 p r o t e c t e d:
32 // プ ラ イ ベ ー ト ク ラ ス
33 c l a s s R T C O P M a n a g e r _ P r i v a t e * _ P r i v a t e ;
34 };
35
36 } // n a m e s p a c e C o r e {}
37 } // n a m e s p a c e R T C O P {}
38
39 # e n d i f // ! _ _ R T C O P _ C O R E _ R T C O P M A N A G E R _ _
ソースコードB.28 RTCOPManager Private.h
1 # i f n d e f _ _ R T C O P _ C O R E _ R T C O P M A N A G E R _ P R I V A T E _ _
2 # d e f i n e _ _ R T C O P _ C O R E _ R T C O P M A N A G E R _ P R I V A T E _ _
3
4 n a m e s p a c e R T C O P {
5 n a m e s p a c e C o r e {
6
7 c l a s s L a y e r ;
8
9 // R T C O P管 理
10 c l a s s R T C O P M a n a g e r _ P r i v a t e {
11 p u b l i c:
12 // コ ン ス ト ラ ク タ
13 R T C O P M a n a g e r _ P r i v a t e (int n u m O f L a y e r s , int n u m O f B a s e C l a s s e s , int
* n u m O f B a s e M e t h o d s );
14 // デ ス ト ラ ク タ
15 v i r t u a l ~ R T C O P M a n a g e r _ P r i v a t e ();
16 p u b l i c:
17 // 登 録 さ れ た レ イ ヤ の 集 合
18 L a y e r ** _ R e g i s t e r d L a y e r s ;
19 // レ イ ヤ ー ド オ ブ ジ ェ ク ト の た め の 仮 想 関 数 テ ー ブ ル の 集 合
20 v o l a t i l e v o i d*** _ V i r t u a l F u n c t i o n T a b l e s ;
21 p u b l i c:
22 // レ イ ヤ の 個 数
23 int _ N u m O f L a y e r s ;
24 // ベ ー ス ク ラ ス の 個 数
25 int _ N u m O f B a s e C l a s s e s ;
26 // ベ ー ス メ ソ ッ ド の 個 数
27 int* _ N u m O f B a s e M e t h o d s ;
28 };
付録
130
29
30 } // n a m e s p a c e C o r e {}
31 } // n a m e s p a c e R T C O P {}
32
33 # e n d i f // ! _ _ R T C O P _ C O R E _ R T C O P M A N A G E R _ P R I V A T E _ _
ソースコードB.29 RTCOPManager.cpp
1 # i n c l u d e " R T C O P / C o r e / R T C O P M a n a g e r . h "
2 # i n c l u d e " C o r e / R T C O P M a n a g e r _ P r i v a t e . h "
3 # i n c l u d e " R T C O P / C o r e / L a y e r . h "
4
5 n a m e s p a c e R T C O P {
6 n a m e s p a c e C o r e {
7
8 //
-9 // プ ラ イ ベ ー ト ク ラ ス の 実 装
10 //
-11 R T C O P M a n a g e r _ P r i v a t e :: R T C O P M a n a g e r _ P r i v a t e (int n u m O f L a y e r s , int n u m O f B a s e C l a s s e s , int* n u m O f B a s e M e t h o d s ) {
12 // レ イ ヤ 、 ベ ー ス ク ラ ス 、 ベ ー ス メ ソ ッ ド の 個 数
13 _ N u m O f L a y e r s = n u m O f L a y e r s ;
14 _ N u m O f B a s e C l a s s e s = n u m O f B a s e C l a s s e s ;
15 _ N u m O f B a s e M e t h o d s = n u m O f B a s e M e t h o d s ;
16
17 // 登 録 レ イ ヤ 、 仮 想 関 数 テ ー ブ ル の た め の 配 列 を 作 成
18 _ R e g i s t e r d L a y e r s = new L a y e r *[ _ N u m O f L a y e r s ] { 0 };
19 _ V i r t u a l F u n c t i o n T a b l e s = new v o l a t i l e v o i d**[ _ N u m O f B a s e C l a s s e s ];
20 for (int i = 0; i < _ N u m O f B a s e C l a s s e s ; ++ i ) {
21 _ V i r t u a l F u n c t i o n T a b l e s [ i ] = new v o l a t i l e v o i d*[
_ N u m O f B a s e M e t h o d s [ i ]]{ 0 };
22 }
23 }
24 // デ ス ト ラ ク タ
25 R T C O P M a n a g e r _ P r i v a t e ::~ R T C O P M a n a g e r _ P r i v a t e () {
26 // 配 列 要 素 の 処 分
27 for (int i = 0; i < _ N u m O f L a y e r s ; ++ i ) {
28 // レ イ ヤ の 処 分
29 d e l e t e _ R e g i s t e r d L a y e r s [ i ];
30 _ R e g i s t e r d L a y e r s [ i ] = 0;
31 }
32 // 仮 想 関 数 テ ー ブ ル の 処 分
付録
131
33 for (int i = 0; i < _ N u m O f B a s e C l a s s e s ; ++ i ) {
34 d e l e t e[] _ V i r t u a l F u n c t i o n T a b l e s [ i ];
35 _ V i r t u a l F u n c t i o n T a b l e s [ i ] = 0;
36 }
37 // 配 列 の 処 分
38 d e l e t e[] _ R e g i s t e r d L a y e r s ;
39 _ R e g i s t e r d L a y e r s = 0;
40 d e l e t e[] _ V i r t u a l F u n c t i o n T a b l e s ;
41 _ V i r t u a l F u n c t i o n T a b l e s = 0;
42 d e l e t e[] _ N u m O f B a s e M e t h o d s ;
43 _ N u m O f B a s e M e t h o d s = 0;
44 }
45
46 //
-47 // R T C O P M a n a g e rの 実 装
48 //
-49 // コ ン ス ト ラ ク タ
50 R T C O P M a n a g e r :: R T C O P M a n a g e r (int n u m O f L a y e r s , int n u m O f B a s e C l a s s e s , int* n u m O f B a s e M e t h o d s ) {
51 _ P r i v a t e = new R T C O P M a n a g e r _ P r i v a t e ( n u m O f L a y e r s , n u m O f B a s e C l a s s e s , n u m O f B a s e M e t h o d s );
52 }
53 // デ ス ト ラ ク タ
54 R T C O P M a n a g e r ::~ R T C O P M a n a g e r () {
55 d e l e t e _ P r i v a t e ;
56 _ P r i v a t e = 0;
57 }
58 // レ イ ヤ の 登 録
59 v o i d R T C O P M a n a g e r :: R e g i s t e r L a y e r ( L a y e r * l a y e r ) {
60 // レ イ ヤ の 登 録
61 int l a y e r I D = layer - > G e t I D ();
62 if ( _ P r i v a t e - > _ R e g i s t e r d L a y e r s [ l a y e r I D ] == 0)
63 {
64 _ P r i v a t e - > _ R e g i s t e r d L a y e r s [ l a y e r I D ] = l a y e r ;
65 }
66 }
67 // レ イ ヤ の 取 得
68 L a y e r * c o n s t R T C O P M a n a g e r :: G e t L a y e r (int l a y e r i d ) {
69 r e t u r n _ P r i v a t e - > _ R e g i s t e r d L a y e r s [ l a y e r i d ];
70 }
71 // ク ラ ス I Dで 指 定 し た 仮 想 関 数 テ ー ブ ル を 取 得
72 v o l a t i l e v o i d** c o n s t R T C O P M a n a g e r :: G e t V i r t u a l F u n c t i o n T a b l e (int c l a s s i d ) {
73 r e t u r n _ P r i v a t e - > _ V i r t u a l F u n c t i o n T a b l e s [ c l a s s i d ];
付録
132
74 }
75 // レ イ ヤ 、 ベ ー ス ク ラ ス 、 ベ ー ス メ ソ ッ ド の 個 数 を 取 得
76 c o n s t int R T C O P M a n a g e r :: G e t N u m O f L a y e r s () {
77 r e t u r n _ P r i v a t e - > _ N u m O f L a y e r s ;
78 }
79 // レ イ ヤ 、 ベ ー ス ク ラ ス 、 ベ ー ス メ ソ ッ ド の 個 数 を 取 得
80 c o n s t int R T C O P M a n a g e r :: G e t N u m O f B a s e C l a s s e s () {
81 r e t u r n _ P r i v a t e - > _ N u m O f B a s e C l a s s e s ;
82 }
83 // レ イ ヤ 、 ベ ー ス ク ラ ス 、 ベ ー ス メ ソ ッ ド の 個 数 を 取 得
84 int* c o n s t R T C O P M a n a g e r :: G e t N u m O f B a s e M e t h o d s () {
85 r e t u r n _ P r i v a t e - > _ N u m O f B a s e M e t h o d s ;
86 }
87 // レ イ ヤ 、 ベ ー ス ク ラ ス 、 ベ ー ス メ ソ ッ ド の 個 数 を 取 得
88 c o n s t int R T C O P M a n a g e r :: G e t N u m O f B a s e M e t h o d s (int c l a s s i d ) {
89 r e t u r n _ P r i v a t e - > _ N u m O f B a s e M e t h o d s [ c l a s s i d ];
90 }
91
92 } // n a m e s p a c e C o r e {}
93 } // n a m e s p a c e R T C O P {}
ソースコード B.30 Initializer.h
1 # i f n d e f _ _ R T C O P _ C O R E _ I N I T I A L I Z E R _ _
2 # d e f i n e _ _ R T C O P _ C O R E _ I N I T I A L I Z E R _ _
3
4 n a m e s p a c e R T C O P {
5 n a m e s p a c e C o r e {
6
7 // 初 期 化 す る オ ブ ジ ェ ク ト の 宣 言
8 c l a s s R T C O P M a n a g e r ;
9 c l a s s L a y e r d O b j e c t I n i t i a l i z e r ;
10 c l a s s L a y e r A c t i v a t e r ;
11
12 // R T C O Pの 初 期 化 を 行 う ク ラ ス
13 c l a s s I n i t i a l i z e r {
14 p u b l i c:
15 // コ ン ス ト ラ ク タ
16 I n i t i a l i z e r ();
17 // デ ス ト ラ ク タ
18 v i r t u a l ~ I n i t i a l i z e r ();
19 p u b l i c:
20 // R T C O P M a n a g e rの 生 成
付録
133
21 v i r t u a l R T C O P M a n a g e r * I n i t i a l i z e R T C O P M a n a g e r () = 0;
22 // L a y e r d O b j e c t I n i t i a l i z e rの 生 成
23 v i r t u a l L a y e r d O b j e c t I n i t i a l i z e r *
I n i t i a l i z e L a y e r d O b j e c t I n i t i a l i z e r ( R T C O P M a n a g e r * m a n a g e r ) = 0;
24 // L a y e r A c t i v a t e rの 生 成
25 v i r t u a l L a y e r A c t i v a t e r * I n i t i a l i z e L a y e r A c t i v a t e r ( R T C O P M a n a g e r * m a n a g e r ) = 0;
26 // レ イ ヤ の 登 録
27 v i r t u a l v o i d R e g i s t e r L a y e r s ( R T C O P M a n a g e r * m a n a g e r ) = 0;
28 // 初 回 レ イ ヤ ア ク テ ィ ベ ー シ ョ ン
29 v i r t u a l v o i d F i r s t L a y e r A c t i v a t i o n ( L a y e r A c t i v a t e r * a c t i v a t e r ) = 0;
30 };
31
32 } // n a m e s p a c e C o r e {}
33 } // n a m e s p a c e R T C O P {}
34
35 # e n d i f // ! _ _ R T C O P _ C O R E _ I N I T I A L I Z E R _ _
ソースコード B.31 Initializer.cpp
1 # i n c l u d e " R T C O P / C o r e / I n i t i a l i z e r . h "
2
3 n a m e s p a c e R T C O P {
4 n a m e s p a c e C o r e {
5
6 // コ ン ス ト ラ ク タ
7 I n i t i a l i z e r :: I n i t i a l i z e r () {
8 }
9 // デ ス ト ラ ク タ
10 I n i t i a l i z e r ::~ I n i t i a l i z e r () {
11 }
12
13 } // n a m e s p a c e C o r e {}
14 } // n a m e s p a c e R T C O P {}
付録
134
C RTCOP の自動生成コード
C.1 API
ソースコード C.32 API.h
1 # i f n d e f _ _ R T C O P _ G E N E R A T E D _ A P I _ _
2 # d e f i n e _ _ R T C O P _ G E N E R A T E D _ A P I _ _
3
4 // ユ ー ザ に 必 要 な ヘ ッ ダ を イ ン ク ル ー ド
5 # i n c l u d e " R T C O P _ G e n e r a t e d / C O P N e w F o r A p p . h "
6 # i n c l u d e " R T C O P _ G e n e r a t e d / A c t i v a t i o n F o r A p p . h "
7
8 # e n d i f // ! _ _ R T C O P _ G E N E R A T E D _ A P I _ _
ソースコード C.33 COPNewForApp.h
1 # i f n d e f _ _ R T C O P _ G E N E R A T E D _ C O P N E W F O R A P P _ _
2 # d e f i n e _ _ R T C O P _ G E N E R A T E D _ C O P N E W F O R A P P _ _
3
4 // 元 々 のc o p n e wの 読 み 込 み
5 # i n c l u d e " R T C O P / C O P N e w . h "
6
7 // ベ ー ス ク ラ ス の 宣 言
8 c l a s s H e l l o ;
9
10 n a m e s p a c e R T C O P {
11
12 n a m e s p a c e G e n e r a t e d {
13 // 知 ら な い ク ラ ス のI Dは-1
14 t e m p l a t e<c l a s s Base >
15 i n l i n e c o n s t int G e t B a s e C l a s s I D () { r e t u r n -1; }
16 // H e l l oの ク ラ スI D
17 t e m p l a t e< >
18 i n l i n e c o n s t int G e t B a s e C l a s s I D < Hello >() { r e t u r n 0; }
19
20 } // n a m e s p a c e G e n e r a t e d {}
21
22 // レ イ ヤ ー ド な ク ラ ス の イ ン ス タ ン ス 化
付録
135
23 t e m p l a t e<c l a s s Base , c l a s s... A r g T y p e s >
24 i n l i n e C o r e :: L a y e r d O b j e c t < Base >* c o p n e w ( A r g T y p e s ... a r g s ) {
25 // ク ラ スI Dの 取 得
26 c o n s t int c l a s s I d = G e n e r a t e d :: G e t B a s e C l a s s I D < Base > ( ) ;
27 // 結 果 を 返 す
28 r e t u r n COPNew < Base >( classId , a r g s . . . ) ;
29 }
30
31 } // n a m e s p a c e R T C O P {}
32
33 # e n d i f // ! _ _ R T C O P _ G E N E R A T E D _ _ C O P N E W _ _
ソースコードC.34 ActivationForApp.h
1 # i f n d e f _ _ R T C O P _ G E N E R A T E D _ A C T I V A T I O N F O R A P P _ _
2 # d e f i n e _ _ R T C O P _ G E N E R A T E D _ A C T I V A T I O N F O R A P P _ _
3
4 // 元 々 のa c t i v a t i o nを 読 み 込 む
5 # i n c l u d e " R T C O P / A c t i v a t i o n . h "
6
7 n a m e s p a c e R T C O P {
8 n a m e s p a c e G e n e r a t e d {
9 // レ イ ヤID
10 e n u m c l a s s L a y e r I D : int {
11 B a s e L a y e r = 0 ,
12 J a p a n e s e L a y e r = 1 ,
13 E n g l i s h L a y e r = 2 ,
14 };
15 } // n a m e s p a c e G e n e r a t e d {}
16
17 // ア ク テ ィ ベ ー ト
18 i n l i n e v o i d a c t i v a t e ( G e n e r a t e d :: L a y e r I D l a y e r i d ) {
19 A c t i v a t e ((int) l a y e r i d );
20 }
21 // デ ィ ア ク テ ィ ベ ー ト
22 i n l i n e v o i d d e a c t i v a t e ( G e n e r a t e d :: L a y e r I D l a y e r i d ) {
23 D e a c t i v a t e ((int) l a y e r i d );
24 }
25
26 } // n a m e s p a c e R T C O P {}
27
28 # e n d i f // ! _ _ R T C O P _ G E N E R A T E D _ A C T I V A T I O N _ _
付録