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: 26265 $
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_ANNOUNCEMENT  = 0x00020000;    //!< アナウンスメント用データ種別
32         static const bit32 DATA_TYPE_SUBBANNER     = 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           = 256;               //!< 登録可能なタスクIDの最大個数
48         static const u32 MAX_STEP_ID           = 255;               //!< 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             TASK_PRIORITY,              //!< タスクの優先順位。データの型は、TaskPriorityです。
82             TASK_SCHEDULING_POLICY,     //!< タスクのスケジューリングポリシー。データの型は、SchedulingPolicyです。
83             TASK_TARGET_DURATION,       //!< 現在は、サポートされていません。データの型は、u32(秒)です。
84             TASK_EXEC_INTERVAL,         //!< タスクの実行間隔。データの型は、u32(秒)です。
85             TASK_EXEC_COUNT,            //!< タスクの消尽回数。データの型は、u16です。
86 
87             ACTION_URL,                 //!< 対象のURL。データの型は、char[MAX_URL_LENGTH] です。
88             ACTION_OFFSET,              //!< URLで指定したデータの先頭位置オフセット。データの型は、u32 です。
89             ACTION_FILEPATH,            //!< ダウンロード先のファイルパス。データの型は、char[MAX_FILEPATH_LENGTH] です。
90             ACTION_FILEPATH_W,          //!< ダウンロード先のファイルパス。データの型は、wchar_t[MAX_FILEPATH_LENGTH] です。
91             ACTION_FILE_HANDLE,         //!< ダウンロード先のファイルハンドル。データの型は、nn::Handle です。
92             ACTION_HTTP_HEADER,         //!< ダウンロード先のファイルハンドル。データの型は、struct httpRequestHeader[MAX_HTTP_HEADER] です。
93             ACTION_CLIENT_CERT,         //!< https通信用の内蔵クライアント証明書。データの型は、nn::http::InternalClientCertId[MAX_CLIENT_CERT] です。
94             ACTION_ROOT_CA,             //!< https通信用の内蔵ルート証明書。データの型は、nn::http::InternalCaCertId u8 です。
95             ACTION_PRIVATE_CLIENT_CERT, /* u8 */
96             ACTION_PRIVATE_ROOT_CA,     /* u8 */
97             ACTION_AP_INFO,             /* u8 */
98             ACTION_CLIENT_CERT_NUM,     /* u32 */
99             ACTION_ROOT_CA_NUM,         /* u32 */
100             ACTION_LAST_MODIFIED_TIME,  /* char[MAX_LASTMODIFIED_LENGTH] */
101             SIGNAL_TASK_EVENT,          /* nn::os::Event* */
102 
103             TASK_EXEC_OPTION,           /* ExecOption */
104             TASK_STEP,                  /* u8 */
105             TASK_OPTION_TARGET_STEP,    /* u8 */
106             TASK_OPTION_PARAM1,         /* u32 */
107             TASK_OPTION_PARAM2,         /* u32 */
108 
109             TASK_STATE_CODE,            /* TaskStatusCode */
110             TASK_RESULT_CODE,           /* TaskResultCode */
111             TASK_COMM_ERROR_CODE,       /* u32 */
112             TASK_CURRENT_PRIORITY,      /* u32 */
113             TASK_EXECUTE_COUNT,         /* u32 */
114             TASK_PENDING_TIME,          /* u32 */
115             TASK_REMAIN_TIME,           /* u32 */
116             TASK_START_TIME,            /* s64 */
117             TASK_PROGRESS,              /* u32 */
118             TASK_DATA_SIZE,             /* u32 */
119             TASK_SERVICE_TERMINATED,    /* bool */
120             TASK_CURRENT_STEP,          /* u8 */
121             TASK_STEP_START_TIME,       /* s64 */
122             TASK_LAST_MODIFIED_TIME,    /* char[MAX_LASTMODIFIED_LENGTH] */
123 
124             TASK_ERROR_RESULT_CODE,     /* TaskResultCode */
125             TASK_ERROR_MESSAGE,         /* char[MAX_ERROR_MESSAGE] */
126             TASK_ERROR_CODE,            /* u32 */
127             TASK_ID,                    /* char[TASK_ID_LENGTH] */
128             TASK_ACTION,                /* Action */
129 
130             TASK_STATE_RESUME,
131             TASK_SERVICE_STATUS,
132             TASK_ACTIVE_STEP,
133             TASK_ACTIVE_RATE,
134             TASK_REQUEST_RATE,
135 
136             TASK_APPID_LIST_SIZE,
137             TASK_APPID_LIST     ,
138             TASK_TASKID_LIST_SIZE,
139             TASK_TASKID_LIST     ,
140             TASK_STEPID_LIST_SIZE,
141             TASK_STEPID_LIST     ,
142             TASK_NSDATA_LIST_SIZE,
143             TASK_NSDATA_LIST     ,
144 
145             ACTION_CODE,
146             ACTION_FILEDESC,
147             ACTION_HTTP_HEADER_VALUE,
148             ACTION_SERIAL_ID,
149             ACTION_SIGNAL_TASK_EVENT,
150 
151             TASK_POLICY_INTERVAL ,
152             TASK_POLICY_COUNT    ,
153             TASK_PERMISSION      ,      /* TaskPermission */
154 
155             PROPERTY_TYPE_MAX_VALUE = (0x1u << 15)
156         };
157 
158         /*!
159             @brief スケジューリングポリシーを指定する定数群です。
160         */
161         enum SchedulingPolicy
162         {
163             ENUM_POLICY_START,
164             STANDARD_POLICY,                //!< 標準スケジューリングポリシー
165             ENUM_POLICY_END,
166             SCHEDULING_POLICY_MAX_VALUE = (0x1u << 7)
167         };
168 
169 
170         /*!
171             @brief タスクパーミッションを指定する定数群です。
172         */
173         enum TaskPermission
174         {
175             TASK_PERMISSION_IN_NONE = 0,
176             TASK_PERMISSION_IN_EULA_DISAGREEMENT,
177             TASK_PERMISSION_IN_PARENTAL_CONTROL,
178             TASK_PERMISSION_IN_BOTH,
179             TASK_PERMISSION_MAX_VALUE = (0x1u << 7)
180         };
181 
182 
183         /*!
184             @brief タスクのプライオリティを指定する定数群です。
185         */
186         enum TaskPriority
187         {
188             PRIORITY_EXPEDITE   = 35,
189             PRIORITY_HIGH       = 80,       //!< プライオリティ 高
190             PRIORITY_MEDIUM     = 125,      //!< プライオリティ 中
191             PRIORITY_LOW        = 170,      //!< プライオリティ 低
192             PRIORITY_STOPPED    = 255,      //!< 停止させるプライオリティ
193             PRIORITY_MAX_VALUE = (0x1u << 7)
194         };
195 
196         /*!
197             @brief タスクアクションを指定する定数群です。
198         */
199         enum Action
200         {
201             ENUM_ACTION_START,
202             DOWNLOAD_TASK,              //!< RAWダウンロードタスク
203             NSA_DOWNLOAD_TASK,          //!< NSAダウンロードタスク
204             UPLOAD_TASK,                //!< アップロードタスク
205             SIGNAL_TASK,                //!< シグナルタスク
206             ENUM_ACTION_END,
207             ACTION_MAX_VALUE = (0x1u << 7)
208         };
209 
210         /*!
211             @brief タスク実行オプションを指定する定数群です。
212         */
213         enum ExecOption
214         {
215             ENUM_EXECOPTION_START,
216             NORMAL_EXEC,                        //!< 通常実行
217             ENUM_EXECOPTION_END,
218             OPTION_MAX_VALUE = (0x1u << 7)
219         };
220 
221         /*!
222             @brief タスクステータスコードの定数群です。
223         */
224         enum TaskStateCode
225         {
226             TASK_STOPPED,                                  //!< タスク停止中
227             TASK_WAITING_TIMER,                            //!< タスクの開始時刻待ち状態
228             TASK_WAITING,                                  //!< タスクの実行待ち状態
229             TASK_RUNNING,                                  //!< タスク実行中
230             TASK_PAUSED,                                   //!< タスクポーズ中
231             TASK_REGISTERD,                                //!< タスクを登録した状態
232             TASK_DONE,                                     //!< タスク実行完了状態
233             TASK_ERROR,                                    //!< タスク実行の異常終了
234             TASK_RETRY,                                    //!< タスク実行中の通信エラーによるリトライ状態
235             GET_TASK_STATE_ERROR,                          //!< タスク状態取得エラー
236             STATUS_MAX_VALUE = (0x1u << 7)                 //!<
237         };
238 
239         /*
240          * @brief タスク終了状態。タスク終了後にTask::GetResult()等で取得可能。
241          */
242         enum TaskResultCode
243         {
244             TASK_SUCCESS,                                  //!< タスク成功。
245             BOSS_ERROR_NOMEM,                              //!< メモリの動的取得失敗
246 
247             GET_TASK_RESULT_ERROR,                         //!< タスクリザルトが取得できませんでした。
248             TASK_NOT_EXIST,                                //!< 指定されたタスクがありません。
249 
250             // HTTP通信のエラー
251             HTTP_ERROR_NOMEM,                              //!< HTTP通信処理で メモリの動的取得に失敗。
252             HTTP_ERROR_CREATE_EVENT,                       //!< HTTP通信処理で 内部リソース(イベント)の作成に失敗。
253             HTTP_ERROR_CREATE_MUTEX,                       //!< HTTP通信処理で 内部リソース(ミューテックス)の作成に失敗。
254             HTTP_ERROR_CREATE_QUEUE,                       //!< HTTP通信処理で 内部リソース(キュー)の作成に失敗。
255             HTTP_ERROR_CREATE_THREAD,                      //!< HTTP通信処理で 内部リソース(スレッド)の作成に失敗。
256             HTTP_ERROR_IPC_SESSION,                        //!< IPCセッションが不正。
257             HTTP_ERROR_CLIENT_PROCESS_MAX,                 //!< 同時利用可能なクライアントプロセス数のクライアントがすでに利用中である。
258             HTTP_ERROR_IPC_SESSION_MAX,                    //!< 同時に接続可能なIPCセッション数のセッションがすでに接続されている
259             HTTP_ERROR_MSGQ_SEND_LSN,                      //!< リスナースレッドメッセージキューへの送信失敗
260             HTTP_ERROR_MSGQ_RECV_LSN,                      //!< リスナースレッドメッセージキュー受信失敗
261             HTTP_ERROR_MSGQ_SEND_COMM,                     //!< 通信スレッドメッセージキュー受信失敗
262             HTTP_ERROR_CONN_NOMORE,                        //!< 接続ハンドル登録最大数越え
263             HTTP_ERROR_CONN_STATUS,                        //!< 接続ハンドル不正ステータス
264             HTTP_ERROR_CONN_ADD,                           //!< 接続ハンドル登録失敗
265             HTTP_ERROR_CONN_HOST_MAX,                      //!<  同一ホストへの最大同時接続数越え
266             HTTP_ERROR_INVALID_URL,                        //!< 不正なURL
267             HTTP_ERROR_RESPONSE_HEADER,                    //!< 不正なHTTPヘッダ
268             HTTP_ERROR_NO_NEWLINE,                         //!< HTTPヘッダ次行なし
269             HTTP_ERROR_SSL,                                //!< SSL認証エラー
270             HTTP_ERROR_CERT_EXIST,                         //!< SSL証明書設定済み(再登録前に削除が必要)
271             HTTP_ERROR_NO_CA_CERT_STORE,                   //!< SSL 該当するCA証明書ストアが登録されていない
272             HTTP_ERROR_NO_CLIENT_CERT,                     //!< SSL 該当するクライアント証明書が登録されていない
273             HTTP_ERROR_CA_CERT_STORE_MAX,                  //!< SSL プロセスごとのCA証明書ストア同時登録最大数の証明書ストアがすでに登録されている。
274             HTTP_ERROR_CLIENT_CERT_MAX,                    //!< SSL プロセスごとのクライアント証明書同時登録最大数の証明書がすでに登録されている。
275             HTTP_ERROR_FAIL_TO_CREATE_CERT_STORE,          //!< SSL 証明書ストアの作成に失敗
276             HTTP_ERROR_FAIL_TO_CREATE_CLIENT_STORE,        //!< SSL クライアント証明書の作成に失敗
277             HTTP_ERROR_DNS,                                //!< DNS名前解決失敗
278             HTTP_ERROR_SEND,                               //!< ソケットデータ送信失敗(インフラ通信切断 など)
279             HTTP_ERROR_RECV,                               //!< ソケットデータ受信失敗(インフラ通信切断 など)
280             HTTP_ERROR_CONNECT,                            //!< ソケット接続失敗(サーバが見つからない場合 など)
281             HTTP_ERROR_GET_PROXY_SETTING,                  //!< 機器情報のプロキシ設定の取得に失敗
282 #ifndef NN_BOSS_TEST_MODE
283             HTTP_ERROR_TIMEOUT,                            //!< HTTP通信のタイムアウト
284 #endif /*NN_BOSS_TEST_MODE*/
285             HTTP_ERROR_401_UNAUTHORIZED,                   //!< ステータスコード401 Unauthorized を受信
286             HTTP_ERROR_403_FORBIDDEN,                      //!< ステータスコード403 Forbidden を受信
287             HTTP_ERROR_404_NOT_FOUND,                      //!< ステータスコード404 Not Found を受信
288             HTTP_ERROR_408_REQUEST_TIMEOUT,                //!< ステータスコード408 Request Timeout を受信
289             HTTP_ERROR_416_REQUESTED_RANGE_NOT_SATISFABLE, //!< ステータスコード416 Requested Range Not Satisfable を受信
290             HTTP_ERROR_500_INTERNAL_SERVER_ERROR,          //!< ステータスコード500 Internal Server Error を受信
291             HTTP_ERROR_502_BAD_GATEWAY,                    //!< ステータスコード502 Bad Gateway を受信
292             HTTP_ERROR_503_SERVICE_UNAVAILABLE,            //!< ステータスコード503 Service Unavailable を受信
293             HTTP_ERROR_504_GATEWAY_TIMEOUT,                //!< ステータスコード504 Gateway Timeout を受信
294             HTTP_ERROR_505_VERSION_NOT_SUPPORTED,          //!< ステータスコード505 Version Not Supported を受信
295             HTTP_ERROR_UNSUPPORTED_STATUS,                 //!< HTTP通信処理で 上記以外の1xx 3xx 4xx 5xxエラーを受信。
296 
297             // SSLエラー
298             SSL_ERROR_FAILED,                              //!< SSLプロトコルの失敗によるエラー。(サーバー側でクライアント証明書の検証が失敗した場合等)
299             SSL_ERROR_WANT_READ,                           //!< SSLモジュールで非同期ソケット使用時の Read 関数の処理未完了。(再試行してください。)
300             SSL_ERROR_WANT_WRITE,                          //!< SSLモジュールで非同期ソケット使用時のWrite 関数の処理未完了。(再試行してください。)
301             SSL_ERROR_SYSCALL,                             //!< SSLモジュールで内部で使用しているシステム関数が予期せぬエラーを返した。
302             SSL_ERROR_ZERO_RETURN,                         //!< SSLモジュールで内部でSocketのRead / Write を実施した際、予期せぬタイミングでゼロが返された。
303             SSL_ERROR_WANT_CONNECT,                        //!< SSLモジュールで非同期ソケット使用時の接続未完了。(再試行してください。)
304             SSL_ERROR_SSLID,                               //!< SSLモジュールで内部エラー(不正なSSLID)
305 #ifndef NN_BOSS_TEST_MODE
306             SSL_ERROR_VERIFY_CERT,                         //!< サーバ認証エラー。サーバ証明書の 認証に失敗しました。
307 #endif /*NN_BOSS_TEST_MODE*/
308             SSL_ERROR_VERIFY_COMMON_NAME,                  //!< サーバ認証エラー。サーバ証明書の CommonName と、AssignServer()で指定した通信先サーバのホスト名が一致しない。
309             SSL_ERROR_VERIFY_ROOT_CA,                      //!< サーバ認証エラー。サーバ証明書の Root CA 証明書が、Connectionに設定された証明書と一致しない。
310             SSL_ERROR_VERIFY_CHAIN,                        //!< サーバ認証エラー。サーバ証明書の証明書チェインが不正。
311             SSL_ERROR_VERIFY_DATE,                         //!< サーバ認証エラー。サーバ証明書が有効期限外である。
312             SSL_ERROR_GET_SERVER_CERT,                     //!< 証明書データのバッファへの格納失敗(引数有りのDoHandshake()で 証明書のサイズがバッファより大きい場合に発生)
313             SSL_ERROR_VERIFY_REVOKED_CERT,                 //!< サーバ認証エラー。サーバ証明書が失効リストに登録されているサーバ証明書であった。
314             SSL_ERROR_OUT_OF_MEMORY,                       //!< SSLモジュールでメモリの動的取得失敗
315             SSL_ERROR_SESSION,                             //!< SSLモジュールでIPCセッションが不正
316             SSL_ERROR_FAIL_TO_CREATE_CERT_STROE,           //!< 証明書ストアの作成に失敗しました
317             SSL_ERROR_FAIL_TO_CREATE_CRL_STORE,            //!< CRLストアの作成に失敗しました
318             SSL_ERROR_FAIL_TO_CREATE_CLIENT_CERT,          //!< クライアント証明書の作成に失敗しました
319             SSL_ERROR_CLIENT_PROCESS_MAX,                  //!< 同時利用可能なクライアントプロセス数のクライアントがすでに利用中である。
320             SSL_ERROR_IPC_SESSION,                         //!< 同時に接続可能なIPCセッション数のセッションがすでに接続されている(つまりクライアント数、コネクション数共に最大値に達している。)
321             SSL_ERROR_INTERNAL_CERT,                       //!< 内蔵証明書の利用に失敗
322             SSL_ERROR_INTERNAL_CRL,                        //!< 内蔵CRLの利用に失敗
323 
324             // ファイルシステムアクセスのエラー
325             FS_ERROR_INVALID_POSITION_BASE,                //!< FSエラー発生。(エラーの意味についてはFSモジュール仕様書を参照)
326             FS_ERROR_ARCHIVE_NOT_FOUND,                    //!< FSエラー発生。(エラーの意味についてはFSモジュール仕様書を参照)
327             FS_ERROR_FAILED_OPEN_FILE,                     //!< FSエラー発生。(エラーの意味についてはFSモジュール仕様書を参照)
328             FS_ERROR_UNSUPPORTED_OPERATION,                //!< FSエラー発生。(エラーの意味についてはFSモジュール仕様書を参照)
329             FS_ERROR_INVALID_PATH_FORMAT,                  //!< FSエラー発生。(エラーの意味についてはFSモジュール仕様書を参照)
330             FS_ERROR_ACCESS_DENIED,                        //!< FSエラー発生。(エラーの意味についてはFSモジュール仕様書を参照)
331             FS_ERROR_LIBRARY_NOT_INITIALIZED,              //!< FSエラー発生。(エラーの意味についてはFSモジュール仕様書を参照)
332             FS_ERROR_INVALID_POSITION,                     //!< FSエラー発生。(エラーの意味についてはFSモジュール仕様書を参照)
333             FS_ERROR_TOO_LONG_PATH,                        //!< FSエラー発生。(エラーの意味についてはFSモジュール仕様書を参照)
334             FS_ERROR_NOT_DEVELOPMENT_ID,                   //!< FSエラー発生。(エラーの意味についてはFSモジュール仕様書を参照)
335             FS_ERROR_HASH_MISMATCH,                        //!< FSエラー発生。(エラーの意味についてはFSモジュール仕様書を参照)
336             FS_ERROR_NO_SUCH_PROCESS_REGISTERED,           //!< FSエラー発生。(エラーの意味についてはFSモジュール仕様書を参照)
337             FS_ERROR_INVALID_CXI_FORMAT,                   //!< FSエラー発生。(エラーの意味についてはFSモジュール仕様書を参照)
338             FS_ERROR_UNSUPPORTED_ALIGNMENT,                //!< FSエラー発生。(エラーの意味についてはFSモジュール仕様書を参照)
339             FS_ERROR_INVALID_HANDLE,                       //!< FSエラー発生。(エラーの意味についてはFSモジュール仕様書を参照)
340             FS_ERROR_NOT_FOUND,                            //!< FSエラー発生。(エラーの意味についてはFSモジュール仕様書を参照)
341 
342             // NSAエラー
343             NSA_ERROR_STORAGE_INSUFFICIENCY,               //!< NSA領域不足
344             NSA_ERROR_NUMBER_OF_NSD_MAX,                   //!< NSA内のNSD数が最大数を超えた
345             NSA_ERROR_VERIFY_HASH,                         //!< NSA INFOのハッシュエラー
346             NSA_ERROR_VERIFY_SIGNATURE,                    //!< NSA INFOの署名エラー
347             NSA_NSD_ERROR_VERIFY_HASH,                     //!< NSD HEADERのハッシュエラー
348             NSA_NSD_ERROR_VERIFY_SIGNATURE,                //!< NSD HEADDERの署名エラー
349             NSA_NSD_ERROR_INVALID_FORMAT,                  //!< NSDフォーマット異常
350             NSA_ERROR_INVALID_FORMAT,                      //!< NSAフォーマット異常
351 
352             // 想定外のエラー
353             SEVERE_ERROR,                                  //! 想定外のエラー
354             ERROR_MAX_VALUE = (0x1u << 7)
355         };
356 
357         /*!
358             @brief タスクサービスステータスの定数群です。
359         */
360         enum TaskServiceStatus
361         {
362             SERVICE_TERMINATED,                            //!< サービス完了状態
363             SERVICE_AVAILABLE,                              //!< サービス可能状態
364             SERVICE_UNKNOWN,                               //!< サービス不明状態
365             GET_SERVICE_STATUS_ERROR,                      //!< サービス状態取得エラー
366             SERVICE_MAX_VALUE = (0x1u << 7)
367         };
368 
369 
370         /*!
371             @brief NSDのヘッダ情報取得の種別を示す定数群です。
372         */
373         enum HeaderInfoType
374         {
375             NSD_TITLEID,                                //!< タイトルID
376             NSD_FLAGS,                                  //!< NSDフラグ
377             NSD_DATATYPE,                               //!< データタイプ
378             NSD_LENGTH,                                 //!< ベイロードレングス
379             NSD_SERIALID,                               //!< シリアルID
380             NSD_VERSION,                                //!< バージョン
381             NSD_HEADER_MAX_VALUE = (0x1u << 7)
382         };
383 
384         /*!
385             @brief タスクアクションのファイルパス指定の定数群です。
386         */
387         enum FileDescriptor
388         {
389             CHAR_TYPE,                                  //!< キャラクタ(char)
390             WCHAR_TYPE,                                 //!< ワイドキャラクタ(wchar_t)
391             HANDLE_TYPE,                                //!< ファイルハンドル
392             FILE_TYPE_MAX_VALUE = (0x1u << 7)
393         };
394 
395         /*!
396             @brief データタイプを指定することを示す定数群です。(未使用)
397         */
398         enum DataType
399         {
400             RAW_DATA_TYPE,
401             ARCHIVE_DATA_TYPE,
402             ENCRYPT_RAW_DATA_TYPE,
403             ENCRYPT_ARCHIVE_DATA_TYPE,
404             DATA_TYPE_MAX_VALUE = (0x1u << 7)
405         };
406 
407         /*!
408             @brief アプリIDの種別を示す定数群です。
409         */
410         enum enumApKind
411         {
412             APKIND_GENERAL ,                   //!< 一般アプリのアプリID
413             APKIND_MANAGE                      //!< 管理者アプリのアプリID
414         };
415 
416 
417         /*!
418             @brief アクセスポイントの識別子種別を示す定数群です。
419         */
420         enum ApInfoType
421         {
422             APINFOTYPE_NONE    = 0x00,
423             APINFOTYPE_APGROUP = 0x01,
424             APINFOTYPE_APAREA  = 0x02,
425             APINFOTYPE_AP      = 0x04,
426             APINFOTYPE_MAX_VALUE = (0x1u << 7)
427         };
428 
429 } // end of namespace boss
430 } // end of namespace nn
431 
432 
433 #endif /*__cplusplus*/
434 
435 #endif /* NN_BOSS_BOSS_CONST_H_ */
436