1 /*---------------------------------------------------------------------------*
2   Project:  Horizon
3   File:     boss_Const.h
4 
5   Copyright (C)2009 Nintendo Co., Ltd.  All rights reserved.
6 
7   These coded instructions, statements, and computer programs contain
8   proprietary information of Nintendo of America Inc. and/or Nintendo
9   Company Ltd., and are protected by Federal copyright law.  They may
10   not be disclosed to third parties or copied or duplicated in any form,
11   in whole or in part, without the prior written consent of Nintendo.
12 
13   $Rev: 33031 $
14  *---------------------------------------------------------------------------*/
15 
16 #ifndef NN_BOSS_BOSS_CONST_H_
17 #define NN_BOSS_BOSS_CONST_H_
18 
19 #include <nn/types.h>
20 
21 #ifdef __cplusplus
22 
23 namespace nn {
24 namespace boss {
25 
26         /*!
27          @brief NSDのデータ種別です。
28          */
29         static const bit32 DATA_TYPE_ALL           = 0xffffffff;    //!< すべてのデータ種別
30         static const bit32 DATA_TYPE_APPDATA       = 0x00010000;    //!< アプリ用のデータ種別
31         static const bit32 DATA_TYPE_NEWS          = 0x00020000;    //!< ニュース用データ種別
32         static const bit32 DATA_TYPE_EXBANNER      = 0x00040000;    //!< バナー用データ種別
33 
34         /*!
35          @brief BOSSシステムの定数です。
36          */
37         static const u32 MAX_FILEPATH_LENGTH   = 256;               //!< ファイルパス最大長
38         static const u32 MAX_URL_LENGTH        = 512;               //!< URLの最大長/
39         static const u32 MAX_HTTP_HEADER_LABEL = 32;                //!< HTTPヘッダラベルの最大長
40         static const u32 MAX_HTTP_HEADER_VALUE = 256;               //!< HTTPヘッダ値の最大長
41         static const u32 MAX_HTTP_HEADER       = 3;                 //!< 登録可能なヘッダ最大個数
42         static const u32 MAX_ROOT_CA           = 3;                 //!< 設定可能な内蔵RootCA証明書の最大数
43         static const u32 MAX_CLIENT_CERT       = 1;                 //!< 設定可能な内蔵クライアント証明書の最大数
44         static const u32 TASK_ID_LENGTH        = 8;                 //!< ゼロ終端文字を含むタスクIDの最大文字数
45         static const u32 MAX_ERROR_MESSAGE     = 256;               //!< エラーメッセージの最大文字数
46         static const u32 MAX_APPLICATION_ID    = 128;               //!< 登録可能なアプリIDの最大個数
47         static const u32 MAX_TASK_ID           = 128;               //!< 登録可能なタスクIDの最大個数
48         static const u32 MAX_STEP_ID           = 128;               //!< 1つのタスクに登録可能なタスクステップの最大個数
49         static const u32 CURRENT_STEP_ID       = MAX_STEP_ID;       //!< 実行中のタスクステップのID
50         static const u32 DEFAULT_STEP_ID       = 0;                 //!< ステップIDの指定を省略する場合のタスクステップID
51         static const u32 U32_CANNOT_GET_DATA   = 0xFFFFFFFF;        //!< u32を返す関数で値が取得できない場合の戻り値
52         static const u32 MAX_LASTMODIFIED_LENGTH = 64;              //!< HTTP通信における更新日時の最大文字数
53         static const u32 UNLIMITED_COUNT       = 0xFFFFFFFF;        //!< 無限の消尽回数の指定値
54 
55         /*!
56             @brief ファイルの読み書きの位置を指定することを示す定数群です。
57         */
58         enum PositionBase
59         {
60             /*!
61                 @brief ファイルの先頭を基準としてファイルのカレント位置を設定することを示す定数です。
62             */
63             POSITION_BASE_BEGIN,
64 
65             /*!
66                 @brief ファイルのカレント位置を基準としてファイルのカレント位置を設定することを示す定数です。
67             */
68             POSITION_BASE_CURRENT,
69 
70             /*!
71                 @brief ファイルの末尾を基準としてファイルのカレント位置を設定することを示す定数です。
72             */
73             POSITION_BASE_END
74         };
75 
76         /*!
77             @brief プロパティを指定する定数群です。
78         */
79         enum PropertyType
80         {
81             /*!
82                 @brief TaskPolicyの属性を参照するための定数です。
83             */
84             TASK_PRIORITY,              //!< タスク登録時のタスク実行優先順位。データの型は、TaskPriorityです。
85             TASK_SCHEDULING_POLICY,     //!< タスクのスケジューリングポリシー。データの型は、SchedulingPolicyです。
86             TASK_TARGET_DURATION,       //!< 目標とするタスク実行時間。データの型は、u32(秒)です。(将来的な拡張用ですので使用できません)
87             TASK_EXEC_INTERVAL,         //!< タスクの実行間隔。データの型は、u32(秒)です。
88             TASK_EXEC_COUNT,            //!< タスクの消尽回数。データの型は、u32です。
89             TASK_PERMISSION,            //!< タスク実行に伴うペアレンタルコントロール・EULAパーミッションの制御設定。データの型は、TaskPermission です。
90 
91             /*!
92                 @brief TaskActionの属性を参照するための定数です。
93             */
94             ACTION_CODE,                //!< タスクの種別コード。データの型は、Action です。
95             ACTION_URL,                 //!< 対象のURL。データの型は、char[MAX_URL_LENGTH] です。
96             ACTION_OFFSET,              //!< URLで指定したデータの先頭位置オフセット。データの型は、u32 です。
97             ACTION_FILEDESC,            //!< ファイル識別子のタイプ。データの型は、FileDescriptor です。
98             ACTION_FILEPATH,            //!< ダウンロード先のファイルパス。データの型は、char[MAX_FILEPATH_LENGTH] です。
99             ACTION_FILEPATH_W,          //!< ダウンロード先のファイルパス。データの型は、wchar_t[MAX_FILEPATH_LENGTH] です。
100             ACTION_FILE_HANDLE,         //!< ダウンロード先のファイルハンドル。データの型は、nn::Handle です。
101             ACTION_HTTP_HEADER,         //!< URLのオプションリクエストヘッダ構造体。データの型は、struct httpRequestHeader[MAX_HTTP_HEADER] です。
102             ACTION_CLIENT_CERT,         //!< https通信用の内蔵クライアント証明書。データの型は、nn::http::InternalClientCertId[MAX_CLIENT_CERT] です。
103             ACTION_ROOT_CA,             //!< https通信用の内蔵ルート証明書。データの型は、nn::http::InternalCaCertId[MAX_ROOT_CA] です。
104             ACTION_PRIVATE_CLIENT_CERT, //!< プライベートクライアント証明書の有効フラグ。データの型は、u8 です。
105             ACTION_PRIVATE_ROOT_CA,     //!< プライベートルート証明書の有効フラグ。データの型は、u8 です。
106             ACTION_AP_INFO,             //!< HTTPクエリーへAP情報付与のためのアクセスポイント情報種別。データの型は、ApInfoType です。
107             ACTION_CLIENT_CERT_NUM,     //!< 内蔵クライアント証明書の設定数。データの型は、u32 です。
108             ACTION_ROOT_CA_NUM,         //!< 内蔵ルート証明書を指定の設定数。データの型は、u32 です。
109             ACTION_LAST_MODIFIED_TIME,  //!< HTTPリクエストヘッダに設定する最終更新日時。データの型は、char[MAX_LASTMODIFIED_LENGTH] です。
110             ACTION_SERIAL_ID,           //!< 起動タスク用のタイトルID。データの型は、nn::fs::TitleId です。(将来的な拡張用ですので使用できません)
111             SIGNAL_TASK_EVENT,          //!< 起動タスク用のイベント。データの型は、nn::os::Event* です。(将来的な拡張用ですので使用できません)
112 
113             /*!
114                 @brief TaskOptionの属性を参照するための定数です。
115             */
116             TASK_EXEC_OPTION,           //!< タスク実行オプション。データの型は、ExecOption です。
117             TASK_STEP,                  //!< タスクステップのID番号。データの型は、u8 です。
118             TASK_OPTION_TARGET_STEP,    //!< タスクステップのオプションID番号。データの型は、u8 です。(将来的な拡張用ですので使用できません)
119             TASK_OPTION_PARAM1,         //!< タスクステップ実行のオプションパラメータ1。データの型は、u32 です。(将来的な拡張用ですので使用できません)
120             TASK_OPTION_PARAM2,         //!< タスクステップ実行のオプションパラメータ2。データの型は、u32 です。(将来的な拡張用ですので使用できません)
121 
122             /*!
123                 @brief TaskStatusの属性を参照するための定数です。
124             */
125             TASK_STATE_CODE,            //!< タスクの状態情報。データの型は、TaskStateCode です。
126             TASK_STATE_TASK,            //!< 内部的なタスクの状態情報。データの型は、TaskStateCode です。
127             TASK_STATE_RESUME,          //!< 内部的なタスクの状態情報。データの型は、TaskStateCode です。
128             TASK_RESULT_CODE,           //!< タスク実行結果コード。データの型は、TaskResultCode です。
129             TASK_SERVICE_STATUS,        //!< タスク属性で指定したURLのサービス利用可能ステータス。データの型は、TaskServiceStatus です。
130             TASK_SERVICE_TERMINATED,    //!< タスク属性で指定したURLのサービス利用可能フラグ。データの型は、bool です。
131             TASK_COMM_ERROR_CODE,       //!< タスク実行時の通信エラーコード。データの型は、u32 です。
132             TASK_CURRENT_PRIORITY,      //!< 現在のタスク実行の優先順位。データの型は、TaskPriority です。
133             TASK_EXECUTE_COUNT,         //!< タスクの消尽回数。データの型は、u32 です。
134             TASK_PENDING_TIME,          //!< タスク実行開始予定時刻からの経過時間。データの型は、u32(秒) です。
135             TASK_REMAIN_TIME,           //!< タスク実行までの残り時間。データの型は、u32(秒) です。(将来的な拡張用ですので使用できません)
136             TASK_START_TIME,            //!< 2000/1/1を基点としたタスク実行指示時刻。データの型は、s64(秒) です。
137             TASK_STEP_START_TIME,       //!< 2000/1/1を基点としたタスク実行指示時刻。データの型は、s64(秒) です。(将来的な拡張用ですので使用できません)
138             TASK_PROGRESS,              //!< ダウンロード済みバイト数。データの型は、u32 です。
139             TASK_DATA_SIZE,             //!< ダウンロード対象のURLの総バイト数。データの型は、u32 です。
140             TASK_CURRENT_STEP,          //!< 実行中のタスクステップID番号。データの型は、u8 です。
141             TASK_ACTIVE_RATE,           //!< 平均実行率。データの型は、u16 です。(将来的な拡張用ですので使用できません)
142             TASK_REQUEST_RATE,          //!< 平均通信リクエスト率。データの型は、u16 です。(将来的な拡張用ですので使用できません)
143             TASK_LAST_MODIFIED_TIME,    //!< HTTPレスポンスヘッダで返された最終更新日時。データの型は、char[MAX_LASTMODIFIED_LENGTH] です。
144 
145             /*!
146                 @brief TaskErrorの属性を参照するための定数です。
147             */
148             TASK_ERROR_RESULT_CODE,     //!< タスク実行結果コード。データの型は、TaskResultCode です。
149             TASK_ERROR_CODE,            //!< タスク実行時の通信エラーコード。データの型は、u32 です。
150             TASK_ERROR_MESSAGE,         //!< タスク実行時の通信エラーメッセージ。データの型は、char[MAX_ERROR_MESSAGE] です。(将来的な拡張用ですので使用できません)
151 
152             /*!
153                 @brief ApplicationIdListの属性を参照するための定数です。(内部処理用の列挙子です。)
154             */
155             TASK_APPID_LIST_SIZE,       //!< ApplicationIdListクラス用の内部サイズ。データの型は、u16 です。(内部処理用の列挙子です。)
156             TASK_APPID_LIST,            //!< ApplicationIdListクラス用の内部アプリケーションIDリスト。データの型は、AppIdType[MAX_APPLICATION_ID] です。(内部処理用の列挙子です。)
157             /*!
158                 @brief TaskIdListの属性を参照するための定数です。(内部処理用の列挙子です。)
159             */
160             TASK_TASKID_LIST_SIZE,      //!< TaskIdListクラス用の内部サイズ。データの型は、u16 です。(内部処理用の列挙子です。)
161             TASK_TASKID_LIST,           //!< TaskIdListクラス用の内部タスクIDリスト。データの型は、u8[MAX_TASK_ID][TASK_ID_LENGTH] です。(内部処理用の列挙子です。)
162             /*!
163                 @brief StepIdListの属性を参照するための定数です。(内部処理用の列挙子です。)
164             */
165             TASK_STEPID_LIST_SIZE,      //!< StepIdListクラス用の内部サイズ。データの型は、u16 です。(内部処理用の列挙子です。)
166             TASK_STEPID_LIST,           //!< StepIdListクラス用の内部タスクステップIDリスト。データの型は、u8[MAX_TASK_ID] です。(内部処理用の列挙子です。)
167             /*!
168                 @brief NsDataIdListの属性を参照するための定数です。(内部処理用の列挙子です。)
169             */
170             TASK_NSDATA_LIST_SIZE,      //!< NsDataIdListクラス用の内部サイズ。データの型は、u16 です。(内部処理用の列挙子です。)
171             TASK_NSDATA_LIST,           //!< NsDataIdListクラス用の内部NsDataリスト。データの型は、u32[serialSize] です。(内部処理用の列挙子です。)
172 
173             /*!
174                 @brief 内部処理用の定数です。
175             */
176             ACTION_SIGNAL_TASK_EVENT,   //!< 起動タスク用のイベント。データの型は、nn::os::Event* です。(将来的な拡張用ですので使用できません)
177             ACTION_HTTP_HEADER_VALUE,   //!< (内部処理用の列挙子です。)
178             TASK_ID,                    //!< (内部処理用の列挙子です。)
179 
180             PROPERTY_TYPE_MAX_VALUE = (0x1u << 15)
181         };
182 
183         /*!
184             @brief スケジューリングポリシーを指定する定数群です。
185         */
186         enum SchedulingPolicy
187         {
188             ENUM_POLICY_START,
189             STANDARD_POLICY,                //!< 標準のスケジューリングポリシー設定
190             ENUM_POLICY_END,
191             SCHEDULING_POLICY_MAX_VALUE = (0x1u << 7)
192         };
193 
194 
195         /*!
196             @brief タスクパーミッションを指定する定数群です。
197         */
198         enum TaskPermission
199         {
200             TASK_PERMISSION_IN_NONE = 0,            //!< 機器のペアレンタルコントロール状態と、EULA同意状態に従いタスクの実行をする設定値です。
201             TASK_PERMISSION_IN_EULA_DISAGREEMENT,   //!< EULA同意がない場合でもタスクの実行を認める設定値です。
202             TASK_PERMISSION_IN_PARENTAL_CONTROL,    //!< ペアレンタルコントロール状態でもタスクの実行を認める設定値です。
203             TASK_PERMISSION_IN_BOTH,                //!< ペアレンタルコントロール状態でも、EULA同意がない場合でもタスクの実行を認める設定値です。
204             TASK_PERMISSION_MAX_VALUE = (0x1u << 7)
205         };
206 
207 
208         /*!
209             @brief タスクのプライオリティを指定する定数群です。
210         */
211         enum TaskPriority
212         {
213             PRIORITY_EXPEDITE   = 35,       //!< 最優先のタスクの実行優先順位設定
214             PRIORITY_HIGH       = 80,       //!< 高いタスクの実行優先順位設定
215             PRIORITY_MEDIUM     = 125,      //!< 中間タスクの実行優先順位設定
216             PRIORITY_LOW        = 170,      //!< 低いタスクの実行優先順位設定
217             PRIORITY_STOPPED    = 255,      //!< タスク停止中の実行優先順位設定
218             PRIORITY_MAX_VALUE = (0x1u << 7)
219         };
220 
221         /*!
222             @brief タスクアクションを指定する定数群です。
223         */
224         enum Action
225         {
226             ENUM_ACTION_START,
227             DOWNLOAD_TASK,              //!< RAWダウンロードタスク
228             NSA_DOWNLOAD_TASK,          //!< NSAダウンロードタスク
229             UPLOAD_TASK,                //!< アップロードタスク
230             SIGNAL_TASK,                //!< シグナルタスク
231             ENUM_ACTION_END,
232             ACTION_MAX_VALUE = (0x1u << 7)
233         };
234 
235         /*!
236             @brief タスク実行オプションを指定する定数群です。
237         */
238         enum ExecOption
239         {
240             ENUM_EXECOPTION_START,
241             NORMAL_EXEC,                        //!< 通常実行
242             ENUM_EXECOPTION_END,
243             OPTION_MAX_VALUE = (0x1u << 7)
244         };
245 
246         /*!
247             @brief タスクステートコードの定数群です。
248         */
249         enum TaskStateCode
250         {
251             TASK_STOPPED,                                  //!< タスク停止中
252             TASK_WAITING_TIMER,                            //!< タスクの開始時刻待ち状態
253             TASK_WAITING,                                  //!< タスクの実行待ち状態
254             TASK_RUNNING,                                  //!< タスク実行中
255             TASK_PAUSED,                                   //!< タスクポーズ中
256             TASK_REGISTERED,                                //!< タスクを登録した状態
257             TASK_DONE,                                     //!< タスク実行完了状態
258             TASK_ERROR,                                    //!< タスク実行の異常終了
259             TASK_RETRY,                                    //!< タスク実行中の通信エラーによるリトライ状態
260             GET_TASK_STATE_ERROR,                          //!< タスク状態取得エラー
261             STATUS_MAX_VALUE = (0x1u << 7)                 //!<
262         };
263 
264         /*!
265          * @brief タスク終了状態。タスク終了後にTask::GetResult()等で取得可能。
266          */
267         enum TaskResultCode
268         {
269             TASK_SUCCESS,                                  //!< タスク成功。
270             BOSS_ERROR_NOMEM,                              //!< メモリの動的取得失敗
271 
272             GET_TASK_RESULT_ERROR,                         //!< タスクリザルトが取得できませんでした。
273             TASK_NOT_EXIST,                                //!< 指定されたタスクがありません。
274             TASK_CANCELED,                                 //!< タスクはキャンセルされました。
275 
276             // HTTP通信のエラー
277             HTTP_ERROR_NOMEM,                              //!< HTTP通信処理で メモリの動的取得に失敗。
278             HTTP_ERROR_CREATE_EVENT,                       //!< HTTP通信処理で 内部リソース(イベント)の作成に失敗。
279             HTTP_ERROR_CREATE_MUTEX,                       //!< HTTP通信処理で 内部リソース(ミューテックス)の作成に失敗。
280             HTTP_ERROR_CREATE_QUEUE,                       //!< HTTP通信処理で 内部リソース(キュー)の作成に失敗。
281             HTTP_ERROR_CREATE_THREAD,                      //!< HTTP通信処理で 内部リソース(スレッド)の作成に失敗。
282             HTTP_ERROR_IPC_SESSION,                        //!< IPCセッションが不正。
283             HTTP_ERROR_CLIENT_PROCESS_MAX,                 //!< 同時利用可能なクライアントプロセス数のクライアントがすでに利用中です。
284             HTTP_ERROR_IPC_SESSION_MAX,                    //!< 同時に接続可能なIPCセッション数のセッションがすでに接続されています。
285             HTTP_ERROR_MSGQ_SEND_LSN,                      //!< リスナースレッドメッセージキューへの送信失敗。
286             HTTP_ERROR_MSGQ_RECV_LSN,                      //!< リスナースレッドメッセージキュー受信失敗。
287             HTTP_ERROR_MSGQ_SEND_COMM,                     //!< 通信スレッドメッセージキュー受信失敗。
288             HTTP_ERROR_CONN_NOMORE,                        //!< 接続ハンドル登録最大数越え。
289             HTTP_ERROR_CONN_STATUS,                        //!< 接続ハンドル不正ステータス。
290             HTTP_ERROR_CONN_ADD,                           //!< 接続ハンドル登録失敗。
291             HTTP_ERROR_CONN_HOST_MAX,                      //!<  同一ホストへの最大同時接続数越え。
292             HTTP_ERROR_INVALID_URL,                        //!< 不正なURL。
293             HTTP_ERROR_RESPONSE_HEADER,                    //!< 不正なHTTPヘッダ。
294             HTTP_ERROR_NO_NEWLINE,                         //!< HTTPヘッダ次行なし。
295             HTTP_ERROR_SSL,                                //!< SSL認証エラー。
296             HTTP_ERROR_CERT_EXIST,                         //!< SSL証明書設定済み。(再登録前に削除が必要)
297             HTTP_ERROR_NO_CA_CERT_STORE,                   //!< SSL 該当するCA証明書ストアが登録されていません。
298             HTTP_ERROR_NO_CLIENT_CERT,                     //!< SSL 該当するクライアント証明書が登録されていません。
299             HTTP_ERROR_CA_CERT_STORE_MAX,                  //!< SSL プロセスごとのCA証明書ストア同時登録最大数の証明書ストアがすでに登録されています。
300             HTTP_ERROR_CLIENT_CERT_MAX,                    //!< SSL プロセスごとのクライアント証明書同時登録最大数の証明書がすでに登録されています。
301             HTTP_ERROR_FAIL_TO_CREATE_CERT_STORE,          //!< SSL 証明書ストアの作成に失敗。
302             HTTP_ERROR_FAIL_TO_CREATE_CLIENT_STORE,        //!< SSL クライアント証明書の作成に失敗。
303             HTTP_ERROR_DNS,                                //!< DNS名前解決失敗
304             HTTP_ERROR_SEND,                               //!< ソケットデータ送信失敗。(インフラ通信切断 など)
305             HTTP_ERROR_RECV,                               //!< ソケットデータ受信失敗。(インフラ通信切断 など)
306             HTTP_ERROR_CONNECT,                            //!< ソケット接続失敗。(サーバが見つからない場合 など)
307             HTTP_ERROR_GET_PROXY_SETTING,                  //!< 機器情報のプロキシ設定の取得に失敗。
308             HTTP_ERROR_TIMEOUT,                            //!< HTTP通信のタイムアウト。
309             HTTP_ERROR_401_UNAUTHORIZED,                   //!< ステータスコード401 Unauthorized を受信。
310             HTTP_ERROR_403_FORBIDDEN,                      //!< ステータスコード403 Forbidden を受信。
311             HTTP_ERROR_404_NOT_FOUND,                      //!< ステータスコード404 Not Found を受信。
312             HTTP_ERROR_408_REQUEST_TIMEOUT,                //!< ステータスコード408 Request Timeout を受信。
313             HTTP_ERROR_416_REQUESTED_RANGE_NOT_SATISFABLE, //!< ステータスコード416 Requested Range Not Satisfable を受信。
314             HTTP_ERROR_500_INTERNAL_SERVER_ERROR,          //!< ステータスコード500 Internal Server Error を受信。
315             HTTP_ERROR_502_BAD_GATEWAY,                    //!< ステータスコード502 Bad Gateway を受信。
316             HTTP_ERROR_503_SERVICE_UNAVAILABLE,            //!< ステータスコード503 Service Unavailable を受信。
317             HTTP_ERROR_504_GATEWAY_TIMEOUT,                //!< ステータスコード504 Gateway Timeout を受信。
318             HTTP_ERROR_505_VERSION_NOT_SUPPORTED,          //!< ステータスコード505 Version Not Supported を受信。
319             HTTP_ERROR_UNSUPPORTED_STATUS,                 //!< HTTP通信処理で 上記以外の1xx 3xx 4xx 5xxエラーを受信。
320 
321             // SSLエラー
322             SSL_ERROR_FAILED,                              //!< SSLプロトコルの失敗によるエラー。(サーバー側でクライアント証明書の検証が失敗した場合等)
323             SSL_ERROR_WANT_READ,                           //!< SSLモジュールで非同期ソケット使用時の Read 関数の処理未完了。(再試行してください。)
324             SSL_ERROR_WANT_WRITE,                          //!< SSLモジュールで非同期ソケット使用時のWrite 関数の処理未完了。(再試行してください。)
325             SSL_ERROR_SYSCALL,                             //!< SSLモジュールで内部で使用しているシステム関数が予期せぬエラーを返しました。
326             SSL_ERROR_ZERO_RETURN,                         //!< SSLモジュールで内部でSocketのRead / Write を実施した際、予期せぬタイミングでゼロが返されました。
327             SSL_ERROR_WANT_CONNECT,                        //!< SSLモジュールで非同期ソケット使用時の接続未完了。(再試行してください。)
328             SSL_ERROR_SSLID,                               //!< SSLモジュールで内部エラー。(不正なSSLID)
329             SSL_ERROR_VERIFY_CERT,                         //!< サーバ認証エラー。サーバ証明書の 認証に失敗しました。
330             SSL_ERROR_VERIFY_COMMON_NAME,                  //!< サーバ認証エラー。サーバ証明書の CommonName と、AssignServer()で指定した通信先サーバのホスト名が一致しません。
331             SSL_ERROR_VERIFY_ROOT_CA,                      //!< サーバ認証エラー。サーバ証明書の Root CA 証明書が、Connectionに設定された証明書と一致しません。
332             SSL_ERROR_VERIFY_CHAIN,                        //!< サーバ認証エラー。サーバ証明書の証明書チェインが不正。
333             SSL_ERROR_VERIFY_DATE,                         //!< サーバ認証エラー。サーバ証明書が有効期限外です。
334             SSL_ERROR_GET_SERVER_CERT,                     //!< 証明書データのバッファへの格納失敗。(引数有りのDoHandshake()で 証明書のサイズがバッファより大きい場合に発生)
335             SSL_ERROR_VERIFY_REVOKED_CERT,                 //!< サーバ認証エラー。サーバ証明書が失効リストに登録されているサーバ証明書でした。
336             SSL_ERROR_OUT_OF_MEMORY,                       //!< SSLモジュールでメモリの動的取得失敗。
337             SSL_ERROR_SESSION,                             //!< SSLモジュールでIPCセッションが不正。
338             SSL_ERROR_FAIL_TO_CREATE_CERT_STROE,           //!< 証明書ストアの作成に失敗しました。
339             SSL_ERROR_FAIL_TO_CREATE_CRL_STORE,            //!< CRLストアの作成に失敗しました。
340             SSL_ERROR_FAIL_TO_CREATE_CLIENT_CERT,          //!< クライアント証明書の作成に失敗しました。
341             SSL_ERROR_CLIENT_PROCESS_MAX,                  //!< 同時利用可能なクライアントプロセス数のクライアントがすでに利用中です。
342             SSL_ERROR_IPC_SESSION,                         //!< 同時に接続可能なIPCセッション数のセッションがすでに接続されています。
343             SSL_ERROR_INTERNAL_CERT,                       //!< 内蔵証明書の利用に失敗。
344             SSL_ERROR_INTERNAL_CRL,                        //!< 内蔵CRLの利用に失敗。
345 
346             // ファイルシステムアクセスのエラー
347             FS_ERROR_INVALID_POSITION_BASE,                //!< ファイルシステムに関するエラーが発生しました。
348             FS_ERROR_ARCHIVE_NOT_FOUND,                    //!< ファイルシステムに関するエラーが発生しました。
349             FS_ERROR_FAILED_OPEN_FILE,                     //!< ファイルシステムに関するエラーが発生しました。
350             FS_ERROR_UNSUPPORTED_OPERATION,                //!< ファイルシステムに関するエラーが発生しました。
351             FS_ERROR_INVALID_PATH_FORMAT,                  //!< ファイルシステムに関するエラーが発生しました。
352             FS_ERROR_ACCESS_DENIED,                        //!< ファイルシステムに関するエラーが発生しました。
353             FS_ERROR_LIBRARY_NOT_INITIALIZED,              //!< ファイルシステムに関するエラーが発生しました。
354             FS_ERROR_INVALID_POSITION,                     //!< ファイルシステムに関するエラーが発生しました。
355             FS_ERROR_TOO_LONG_PATH,                        //!< ファイルシステムに関するエラーが発生しました。
356             FS_ERROR_NOT_DEVELOPMENT_ID,                   //!< ファイルシステムに関するエラーが発生しました。
357             FS_ERROR_HASH_MISMATCH,                        //!< ファイルシステムに関するエラーが発生しました。
358             FS_ERROR_NO_SUCH_PROCESS_REGISTERED,           //!< ファイルシステムに関するエラーが発生しました。
359             FS_ERROR_INVALID_CXI_FORMAT,                   //!< ファイルシステムに関するエラーが発生しました。
360             FS_ERROR_UNSUPPORTED_ALIGNMENT,                //!< ファイルシステムに関するエラーが発生しました。
361             FS_ERROR_INVALID_HANDLE,                       //!< ファイルシステムに関するエラーが発生しました。
362             FS_ERROR_NOT_FOUND,                            //!< ファイルシステムに関するエラーが発生しました。
363 
364             // NSAエラー
365             NSA_ERROR_STORAGE_INSUFFICIENCY,               //!< NSAストレージ領域が不足しています。
366             NSA_ERROR_NUMBER_OF_NSD_MAX,                   //!< NSA内のNSD数が最大数を超えました。
367             NSA_ERROR_VERIFY_HASH,                         //!< NSA INFOのハッシュにエラーが検出されました。
368             NSA_ERROR_VERIFY_SIGNATURE,                    //!< NSA INFOの署名にエラーが検出されました。
369             NSA_NSD_ERROR_VERIFY_HASH,                     //!< NSD HEADERのハッシュにエラーが検出されました。
370             NSA_NSD_ERROR_VERIFY_SIGNATURE,                //!< NSD HEADDERの署名にエラーが検出されました。
371             NSA_NSD_ERROR_INVALID_FORMAT,                  //!< NSDフォーマット異常のエラーが検出されました。
372             NSA_ERROR_INVALID_FORMAT,                      //!< NSAフォーマット異常のエラーが検出されました。
373 
374             // 想定外のエラー
375             SEVERE_ERROR,                                  //! 想定外のエラーが検出されました。
376             UNKNOWN_ERROR,                                 //! 上記以外のエラーが検出された場合、この値に発生したモジュールの列挙子の値(nn::Result::Module)を足した値が返ります。
377             ERROR_MAX_VALUE = (0x1u << 7)
378         };
379 
380         /*!
381             @brief タスクサービスステータスの定数群です。
382         */
383         enum TaskServiceStatus
384         {
385             SERVICE_TERMINATED,                            //!< サービスが終了した状態
386             SERVICE_AVAILABLE,                             //!< サービス利用可能な状態
387             SERVICE_UNKNOWN,                               //!< サービスが状態がまだ確認できていない状態
388             GET_SERVICE_STATUS_ERROR,                      //!< サービス状態取得中にエラーが検出されました。
389             SERVICE_MAX_VALUE = (0x1u << 7)
390         };
391 
392 
393         /*!
394             @brief NSDのヘッダ情報取得の種別を示す定数群です。
395         */
396         enum HeaderInfoType
397         {
398             NSD_TITLEID,                                //!< タイトルID
399             NSD_FLAGS,                                  //!< NSDフラグ
400             NSD_DATATYPE,                               //!< データタイプ
401             NSD_LENGTH,                                 //!< ベイロードレングス
402             NSD_SERIALID,                               //!< シリアルID
403             NSD_VERSION,                                //!< バージョン番号
404             NSD_HEADER_MAX_VALUE = (0x1u << 7)
405         };
406 
407         /*!
408             @brief タスクアクションのファイルパス指定の定数群です。
409         */
410         enum FileDescriptor
411         {
412             CHAR_TYPE,                                  //!< 通常のキャラクタ(char)によるパス指定
413             WCHAR_TYPE,                                 //!< ワイドキャラクタ(wchar_t)によるパス指定
414             HANDLE_TYPE,                                //!< ファイルハンドルによるファイル指定
415             FILE_TYPE_MAX_VALUE = (0x1u << 7)
416         };
417 
418         /*!
419             @brief アクセスポイントの識別子種別を示す定数群です。
420         */
421         enum ApInfoType
422         {
423             APINFOTYPE_NONE    = 0x00,                  //!< ゾーンAPの場合、HTTPクエリーへAP情報付与を行わない設定
424             APINFOTYPE_APGROUP = 0x01,                  //!< ゾーンAPの場合、HTTPクエリーへAPGROUP情報付与する設定
425             APINFOTYPE_APAREA  = 0x02,                  //!< ゾーンAPの場合、HTTPクエリーへAPAREA情報付与する設定
426             APINFOTYPE_AP      = 0x04,                  //!< ゾーンAPの場合、HTTPクエリーへすべてのAP情報付与する設定
427             APINFOTYPE_MAX_VALUE = (0x1u << 7)
428         };
429 
430         /*!
431             @brief BOSSストレージの種類を示す定数群です。
432         */
433         enum StorageType
434         {
435             USER_EXT_SAVEDATA_STORAGE,                  //!< ユーザー拡張セーブデータ領域のBOSSストレージ。
436             SHARED_EXT_SAVEDATA_STORAGE,                //!< 共有拡張セーブデータ領域のBOSSストレージ。
437             BOSSSTORAGETYPE_MAX_VALUE = (0x1u << 7)
438         };
439 
440 } // end of namespace boss
441 } // end of namespace nn
442 
443 
444 #endif /*__cplusplus*/
445 
446 #endif /* NN_BOSS_BOSS_CONST_H_ */
447