CTR-Pia
5.4.3
Game Communication Engine
メインページ
ネームスペース一覧
クラス構成
クラス索引
関連ページ
Result 検索
全て
クラス
ネームスペース
関数
変数
型定義
列挙型
列挙型の値
ページ
pia_ModuleStackChecker.h
1
/*--------------------------------------------------------------------------------*
2
Copyright (C)Nintendo All rights reserved.
3
4
These coded instructions, statements, and computer programs contain proprietary
5
information of Nintendo and/or its licensed developers and are protected by
6
national and international copyright laws. They may not be disclosed to third
7
parties or copied or duplicated in any form, in whole or in part, without the
8
prior written consent of Nintendo.
9
10
The content herein is highly confidential and should be handled accordingly.
11
*--------------------------------------------------------------------------------*/
12
13
14
#pragma once
15
16
#include <nn/pia/pia_Result.h>
// enum ModuleType の解決用
17
18
19
namespace
nn
20
{
21
namespace
pia
22
{
23
/*!
24
@cond PRIVATE
25
*/
26
27
// このクラスでは、Pia モジュールの初期化/解放が対称的に行われているかどうかと、
28
// その順序が想定通りであるかどうかをチェックします。
29
class
ModuleStackChecker
30
{
31
public
:
32
// 各Pia のモジュールの Initialize() 内から呼ばれることを想定しています
33
// 正味の初期化処理が問題なく実行され終えたら、呼び出す必要があります。
34
// Pia モジュール初期化の順序が想定とは異なっていた場合は ResultInvalidState が返されます。
35
// ModuleType を Register しすぎて内部バッファをあふれさせると、ResultInvalidState が返されます。
36
// ModuleType として不正な引数を渡した場合は ResultInvalidArgument が返されます。
37
static
Result Register(
enum
ModuleType
module);
38
39
40
// 各Pia のモジュールの Finalize() 内から呼ばれることを想定しています。
41
// 正味の終了処理が実行され終えたら、呼び出す必要があります。
42
// アプリケーションによって Finalize() が呼ばれた場合でも、実は対応する Initialize() が
43
// 未実行だった等の理由で、実質的に Finalize() が何も終了処理を実行しなかったのであれば、
44
// この関数は呼び出してはいけません。
45
// Register と Unregister 呼び出しが非対称であった場合、ResultInvalidState() が返されます。
46
// ModuleType として不正な引数を渡した場合は ResultInvalidArgument が返されます。
47
static
Result Unregister(
enum
ModuleType
module);
48
49
private
:
50
static
bool
isInvalid(
enum
ModuleType
module);
51
static
bool
isInclude(
enum
ModuleType
module);
52
static
enum
ModuleType
getTop();
// スタックが空の状態で呼び出した場合はアサート停止。
53
static
int32_t getOrder(
enum
ModuleType
module);
54
55
static
enum
ModuleType
s_ModuleType[
ModuleType_Max
];
56
static
int32_t s_Index;
57
};
58
//! @endcond
59
60
}
// end of namespace pia
61
}
// end of namespace nn
Include
nn
pia
pia_ModuleStackChecker.h
© 2016 Nintendo Co., Ltd. All rights reserved. 記載されている会社名、製品名等は、各社の登録商標または商標です。