CTR-Pia
5.4.3
Game Communication Engine
メインページ
ネームスペース一覧
クラス構成
クラス索引
関連ページ
Result 検索
全て
クラス
ネームスペース
関数
変数
型定義
列挙型
列挙型の値
ページ
common_WatermarkManager.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/common/common_Definitions.h>
17
18
#include <nn/pia/common/common_Singleton.h>
19
#include <nn/pia/common/common_Watermark.h>
20
21
22
#define NN_PIA_WATERMARK_UPDATE(KEY, VALUE) \
23
\
24
if(nn::pia::common::WatermarkManager::GetInstance()) \
25
\
26
{ \
27
nn::pia::common::WatermarkManager::GetInstance()->GetWatermark(KEY)->Update(VALUE); \
28
\
29
}
30
31
32
#define NN_PIA_WATERMARK_SETNAME(KEY, NAME) \
33
\
34
if(nn::pia::common::WatermarkManager::GetInstance()) \
35
\
36
{ \
37
nn::pia::common::WatermarkManager::GetInstance()->GetWatermark(KEY)->SetName(NAME); \
38
\
39
}
40
41
42
#define NN_PIA_WATERMARK_TRACE(KEY, FLAG) \
43
\
44
if(nn::pia::common::WatermarkManager::GetInstance()) \
45
\
46
{ \
47
nn::pia::common::WatermarkManager::GetInstance()->GetWatermark(KEY)->Trace(FLAG); \
48
\
49
}
50
51
52
namespace
nn
53
{
54
namespace
pia
55
{
56
namespace
common
57
{
58
59
/*!
60
@brief Watermark インスタンス群を管理するクラスです(サポート対象外)。
61
62
@details WatermarkManager クラスは、 Watermark インスタンス群を管理するために用意されたクラスです。
63
Pia 内部バッファ使用量のピーク値などを取得することができます。
64
65
*/
66
class
WatermarkManager
:
public
nn::pia::common::RootObject
67
{
68
public
:
69
static
const
int
WatermarkInstances
= 10;
//!< WatermarkManager が管理する Watermark インスタンスの最大個数。
70
71
// Watermark インスタンスを区別するためのキー。重複してはいけません。
72
static
const
int
KeySendthreadstreamBufferNum
= 0;
//!< 送信スレッドにおける内部バッファの使用量に対応するキーです。
73
static
const
int
KeyReceivethreadstreamBufferNum
= 1;
//!< 受信スレッドにおける内部バッファの使用量に対応するキーです。
74
static
const
int
KeyInetReceiveBufferNum = 2;
75
static
const
int
KeyReliableProtocolSendBufferNum
= 3;
//!< ReliableProtocol の送信バッファ使用量に対応するキー。
76
static
const
int
KeyReliableProtocolReceiveBufferNum
= 4;
//!< ReliableProtocol の受信バッファ使用量に対応するキー。
77
static
const
int
KeyStationProtocolReliableSendBufferNum
= 5;
//!< StationProtocolReliable の送信バッファ使用量に対応するキー。
78
static
const
int
KeyStationProtocolReliableReceiveBufferNum
= 6;
//!< StationProtocolReliable の受信バッファ使用量に対応するキー。
79
static
const
int
KeySessionProtocolReliableSendBufferNum
= 7;
//!< SessionProtocol の Reliable 送信バッファ使用量に対応するキー。
80
static
const
int
KeySessionProtocolReliableReceiveBufferNum
= 8;
//!< SessionProtocol の Reliable 受信バッファ使用量に対応するキー。
81
static
const
int
KeyUnreliableProtocolReceiveBufferNum
= 9;
//!< UnreliableProtocol の受信バッファ使用量に対応するキー。
82
static
const
int
KeyMax =
WatermarkInstances
- 1;
83
84
85
/*!
86
@brief common モジュールにおけるクラスのインスタンスを作成します(シングルトンパターン)。
87
88
@return インスタンスの作成に成功すれば、成功の Result が返されます。この関数がエラーを返さないようにアプリケーションを実装する必要があります。
89
@retval ResultNotInitialized common モジュールが未初期化です。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
90
@retval ResultInvalidState CreateInstance() を呼ぶタイミングが誤っています。 BeginSetup() ~ EndSetup() 間で呼び出す必要があります。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
91
@retval ResultAlreadyExists 既にインスタンスは作成されています。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
92
*/
93
static
Result
CreateInstance
(
void
);
94
95
96
/*!
97
@brief common モジュールにおけるクラスのインスタンスを破棄します(シングルトンパターン)。
98
*/
99
static
void
DestroyInstance
(
void
);
100
101
102
/*!
103
@brief common モジュールにおけるクラスのインスタンスを得ます(シングルトンパターン)
104
105
@details 事前に CreateInstance() によってインスタンスを作成していない場合は、
106
NULLポインタが返されます。
107
108
@return インスタンスへのポインタ。
109
*/
110
static
WatermarkManager
*
GetInstance
(
void
)
111
{
112
return
s_pInstance;
113
}
114
115
116
/*!
117
@cond PRIVATE
118
@brief デフォルトコンストラクタです。
119
*/
120
WatermarkManager
(
void
);
121
//! @endcond
122
123
124
/*!
125
@cond PRIVATE
126
@brief デストラクタです。
127
*/
128
virtual
~
WatermarkManager
(
void
);
129
//! @endcond
130
131
132
/*!
133
@brief Watermark インスタンスを得ます(非 const 版)
134
135
@param[in] key キーを指定します。 0 <= key <= KeyMax でなくてはなりません。
136
範囲外のキーを指定した場合はアサート停止します。
137
@return 成功すれば Watermark インスタンスへのポインタが、失敗すれば NULL ポインタが返されます。
138
*/
139
Watermark
*
GetWatermark
(
int
key);
140
141
142
/*!
143
@brief Watermark インスタンスを得ます( const 版)
144
145
@param[in] key キーを指定します。 0 <= key <= KeyMax でなくてはなりません。
146
範囲外のキーを指定した場合はアサート停止します。
147
@return 成功すれば Watermark インスタンスへのポインタが、失敗すれば NULL ポインタが返されます。
148
*/
149
const
Watermark
*
GetWatermark
(
int
key)
const
;
150
151
152
/*!
153
@brief WatermarkManager が管理する、全 Watermark インスタンスの Update() 機能を有効にします。
154
155
@see DisableAllWatermark
156
*/
157
void
EnableAllWatermark
(
void
);
158
159
160
/*!
161
@brief WatermarkManager が管理する、全 Watermark インスタンスの Update() 機能を無効にします。
162
163
@see EnableAllWatermark
164
*/
165
void
DisableAllWatermark
(
void
);
166
167
168
/*!
169
@brief デバッグに有用な情報をプリントします。
170
171
@param[in] flag トレースフラグの論理和。詳細は@ref TraceFlag 型を参照してください。
172
*/
173
virtual
void
Trace
(uint64_t flag)
const
;
174
175
private
:
176
Watermark
m_Watermark[
WatermarkInstances
];
177
178
static
WatermarkManager
* s_pInstance;
// このクラスの唯一のインスタンスの実体
179
};
180
}
181
}
182
}
// end of namespace nn::pia::common
Include
nn
pia
common
common_WatermarkManager.h
© 2016 Nintendo Co., Ltd. All rights reserved. 記載されている会社名、製品名等は、各社の登録商標または商標です。