1 /*---------------------------------------------------------------------------*
2   Project:  Horizon
3   File:     boss_Result.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_RESULT_H_
17 #define NN_BOSS_BOSS_RESULT_H_
18 
19 #include <nn/Result.h>
20 #include <nn/assert.h>
21 
22 #ifdef __cplusplus
23 
24 namespace nn {
25 namespace boss {
26 
27     /*!
28      * @brief  APIの結果コード。boss::Resultのdescriptionとして設定され、boss APIの戻り値として使用される。
29     */
30     enum ResultCode
31     {
32         ER_NONE                         = 0     ,//!< エラー無し
33 
34     // Boss libraries Argument Error
35 
36         //ポインタNULLエラー
37         ER_INVALID_POLICY                       ,//!< ポリシィ情報のポインタがNULLです。
38         ER_INVALID_ACTION                       ,//!< タスクアクションのポインタがNULLです。
39         ER_INVALID_OPTION                       ,//!< タスクオプションのポインタがNULL,またはoptionコードが範囲外です。
40         ER_INVALID_APPIDLIST                    ,//!< アプリケーション一覧取得用のポインタがNULLです。
41         ER_INVALID_TASKID_LIST                  ,//!< タスクID一覧取得用のポインタがNULLです。
42         ER_INVALID_STEPID_LIST                  ,//!< ステップID一覧取得用のポインタがNULLです。
43         ER_INVALID_NSDATA_IDLIST                ,//!< NSデータリスト情報のポインタがNULLです。
44         ER_INVALID_TASKSTATUS                   ,//!< タスクステータスのポインタがNULLです。
45         ER_INVALID_PROPERTYVALUE                ,//!< プロパティ値のポインタがNULLです。
46         ER_INVALID_NEWARRIVAL_EVENT             ,//!< 新着イベントのポインタがNULLです。
47         ER_INVALID_NEWARRIVAL_FLAG              ,//!< 新着フラグのポインタがNULLです。
48         ER_INVALID_OPTOUT_FLAG                  ,//!< OPTOUTフラグのポインタがNULLです。
49         ER_INVALID_TASKERROR                    ,//!< タスクエラー情報のポインタがNULLです。
50         ER_INVALID_NSDATA_VALUE                 ,//!< NSDATA格納領域のポインタがNULLです。
51         ER_INVALID_NSDATA_INFO                  ,//!< NSDATA追加情報を格納するポインタがNULLです。
52         ER_INVALID_NSDATA_READFLAG              ,//!< NSDATAリードフラグの格納領域のポインタがNULLです。
53         ER_INVALID_NSDATA_TIME                  ,//!< NSDATAのUPDATEタイムの格納領域のポインタがNULLです。
54         ER_INVALID_NEXTEXECUTETIME              ,//!< NEXT EXECUTE TIME のMinutesのポインタがNULLです。
55         ER_HTTP_REQUEST_HEADER_POINTER_NULL     ,//!< HTTPリクエストヘッダのポインタがNULLです。
56         ER_INVALID_POLICYLIST_AVAILABILITY      ,//!< ポリシィリスト使用可能情報のポインタがNULLです。
57         ER_INVALID_TESTMODE_AVAILABILITY        ,//!< テストモード使用可能情報のポインタがNULLです。
58 
59         //パラメータ範囲チェックエラー
60         ER_INVALID_TASK_ID                      ,//!< タスクIDのポインタがNULLまたは0文字列です。
61         ER_INVALID_TASK_STEP                    ,//!< タスク登録でカレントステップIDが指定されました。
62         ER_INVALID_PROPERTYTYPE                 ,//!< プロパティタイプがサポート外です。
63         ER_INVALID_URL                          ,//!< URL文字列のポインタがNULLまたは0文字列です。
64         ER_INVALID_FILEPATH                     ,//!< ファイルパス文字列のポインタがNULLまたは0文字列です。
65         ER_INVALID_TASK_PRIOLITY                ,//!< タスクプライオリティの指定が範囲外です。
66         ER_INVALID_TASK_TARGETDURATION          ,//!< タスク継続時間が範囲外です。
67         ER_ACTIONCODE_OUT_OF_RANGE              ,//!< タスクアクションコードが範囲外です。
68         ER_INVALID_NSDATA_SEEK_POSITION         ,//!< NSDATAのシーク位置がデータサイズを超えています。
69         ER_INVALID_MAX_HTTP_REQUEST_HEADER      ,//!< HTTPリクエストヘッダの登録数が最大数を超えました。
70         ER_INVALID_MAX_CLIENT_CERT              ,//!< ClientCertの最大設定数を超えました。
71         ER_INVALID_MAX_ROOT_CA                  ,//!< ルートCAの最大設定数を超えました。
72         ER_SCHEDULING_POLICY_OUT_OF_RANGE       ,//!< スケジュールポリシィが範囲外です
73         ER_APINFOTYPE_OUT_OF_RANGE              ,//!< AP情報タイプが範囲外です。
74         ER_TASK_PERMISSION_OUT_OF_RANGE         ,//!< タスク許可情報が範囲外です。
75 
76     // Boss lib Execute Error
77         ER_WAITFINISH_TIMEOUT                   ,//!< WAITFINISHタイムアウト
78         ER_WAITFINISH_TASK_NOT_DONE             ,//!< WAITFINISHタスクがDONE以外で終了
79 
80     // Boss lib/Process Execute Error
81         ER_IPC_NOT_SESSION_INITIALIZED          ,//!< IPCのセッションが初期化されていない。(権限不適合の場合など)
82         ER_IPC_PROPERTY_SIZE_ERROR              ,//!< IPCのプロパティサイズがエラー
83         ER_IPC_TOO_MANY_REQUESTS                ,//!< IPCのリクエストの数が多すぎる。
84         ER_ALREADY_INITIALIZED                  ,//!< 初期化済み
85 
86     // Boss Process Execute Error
87         ER_OUT_OF_MEMORY                        ,//!< メモリの不足
88         ER_INVALID_NUMBER_OF_NSD                ,//!< NSA内のNSD数が最大数を超えた
89         ER_NSDATA_INVALID_FORMAT                ,//!< NSD Data フォーマット異常
90 
91         ER_APLI_NOT_EXIST                       ,//!< 指定されたアプリIDが見つからない。
92         ER_TASK_NOT_EXIST                       ,//!< 指定されたタスクIDが見つからない。
93         ER_TASK_STEP_NOT_EXIST                  ,//!< 指定されたタスクステップが見つからない。
94         ER_APLI_ID_ALREADY_EXIST                ,//!< 既に同名アプリが登録されています。
95         ER_TASK_ID_ALREADY_EXIST                ,//!< 既に同名タスクが登録されています。
96         ER_TASK_STEP_ALREADY_EXIST              ,//!< 既に同名タスクステップが登録されています。
97         ER_INVALID_SEQUENCE                     ,//!< シーケンスエラー(run 中のタスクのスタートなど)
98         ER_DATABASE_FULL                        ,//!< アプリ・タスク登録の上限数に達し、ストレージ登録やタスク登録が出来ない。
99         ER_CANT_UNREGISTER_TASK                 ,//!< タスク状態により、UnregisterTask 出来ない
100         ER_TASK_NOT_REGISTED                    ,//!< SDBにタスク(ステップ)が全く登録されていない。
101         ER_INVALID_FILEHANDLE                   ,//!< 不正なファイルハンドル
102         ER_INVALID_TASK_SCHEDULING_POLICY       ,//!< 不正なスケジュールポリシィ
103         ER_INVALID_HTTP_REQUEST_HEADER          ,//!< HTTPリクエストヘッダエラー
104         ER_INVALID_HEADTYPE                     ,//!< 不正なヘッドタイプ
105         ER_STORAGE_ACCESSPERMISSION             ,//!< ストレージのアクセス権なし
106         ER_STORAGE_INSUFFICIENCY                ,//!< ストレージの容量不足
107         ER_INVALID_APPID_STORAGE_NOTFOUND       ,//!< APPIDに対応したストレージがない
108         ER_NSDATA_NOTFOUND                      ,//!< NSD Data なし
109         ER_INVALID_NSDATA_GETHEAD_SIZE          ,//!< 不正なNSDATAのSIZEパラメータ指定
110         ER_NSDATA_LIST_SIZE_SHORTAGE            ,//!< NsDataIdListのサイズ不足(すべてのNSDシリアルIDを格納できなかった)
111         ER_NSDATA_LIST_UPDATED                  ,//!< 前回のリスト取得時以降に、BOSSストレージの対象NSD群が更新された。
112         ER_NOT_CONNECT_AP_WITH_LOCATION         ,//!< アクセスポイントに接続されていない。
113         ER_NOT_CONNECT_NETWORK                  ,//!< ネットワークに接続されていない。
114         ER_INVALID_FRIENDCODE                   ,//!< Friendコード異常時のエラー。
115         ER_FILE_ACCESS                          ,//!< ファイルアクセスに失敗
116         ER_TASK_ALREADY_PAUSED                  ,//!< すでに停止されていた
117         ER_TASK_ALREADY_RESUMED                 ,//!< すでに再開されていた
118         ER_UNEXPECT                             ,//!< 予期しないエラー
119 
120         RESULT_CODE_LAST                        ,//!< この値は使用されません。
121         RESULT_CODE_MAX_VALUE = (0x1u << 10)
122 
123     };
124 
125     NN_DEFINE_RESULT_FUNC_LM(MakePermanentResult, Result::LEVEL_PERMANENT, Result::MODULE_NN_BOSS);
126     NN_DEFINE_RESULT_FUNC_LSM(MakeInternalResult, Result::LEVEL_STATUS, Result::SUMMARY_INTERNAL, Result::MODULE_NN_BOSS);
127     NN_DEFINE_RESULT_FUNC_LSM(MakeOutOfResourceResult, Result::LEVEL_PERMANENT, Result::SUMMARY_OUT_OF_RESOURCE, Result::MODULE_NN_BOSS);
128     NN_DEFINE_RESULT_FUNC_LSM(MakeInvalidStateResult, Result::LEVEL_STATUS, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_BOSS);
129     NN_DEFINE_RESULT_FUNC_LSM(MakeCancelledResult, Result::LEVEL_STATUS, Result::SUMMARY_CANCELLED, Result::MODULE_NN_BOSS);
130     NN_DEFINE_RESULT_FUNC_LSM(MakeInvalidArgumentResult, Result::LEVEL_PERMANENT, Result::SUMMARY_INVALID_ARGUMENT, Result::MODULE_NN_BOSS);
131     NN_DEFINE_RESULT_FUNC_LSM(MakeNothingHappenedResult, Result::LEVEL_PERMANENT, Result::SUMMARY_NOTHING_HAPPENED, Result::MODULE_NN_BOSS);
132     NN_DEFINE_RESULT_FUNC_LSM(MakeWouldBlockResult, Result::LEVEL_PERMANENT, Result::SUMMARY_WOULD_BLOCK, Result::MODULE_NN_BOSS);
133 
134     //!< [ポリシィ情報のポインタがNULLです。]を表すResult定義
135     NN_DEFINE_RESULT_CONST_LSM(
136         ResultInvalidPolicy,
137         MakeInvalidArgumentResult, ER_INVALID_POLICY
138     );
139     //!< [タスクアクションのポインタがNULLです。]を表すResult定義
140     NN_DEFINE_RESULT_CONST_LSM(
141         ResultInvalidAction,
142         MakeInvalidArgumentResult, ER_INVALID_ACTION
143     );
144     //!< [タスクオプションのポインタがNULL,またはoptionコードが範囲外です。]を表すResult定義
145     NN_DEFINE_RESULT_CONST_LSM(
146         ResultInvalidOption,
147         MakeInvalidArgumentResult, ER_INVALID_OPTION
148     );
149     //!< [アプリケーション一覧取得用のポインタがNULLです。]を表すResult定義
150     NN_DEFINE_RESULT_CONST_LSM(
151         ResultInvalidAppidlist,
152         MakeInvalidArgumentResult, ER_INVALID_APPIDLIST
153     );
154     //!< [タスクID一覧取得用のポインタがNULLです。]を表すResult定義
155     NN_DEFINE_RESULT_CONST_LSM(
156         ResultInvalidTaskidList,
157         MakeInvalidArgumentResult, ER_INVALID_TASKID_LIST
158     );
159     //!< [ステップID一覧取得用のポインタがNULLです。]を表すResult定義
160     NN_DEFINE_RESULT_CONST_LSM(
161         ResultInvalidStepidList,
162         MakeInvalidArgumentResult, ER_INVALID_STEPID_LIST
163     );
164     //!< [NSデータリスト情報のポインタがNULLです。]を表すResult定義
165     NN_DEFINE_RESULT_CONST_LSM(
166         ResultInvalidNsdataIdlist,
167         MakeInvalidArgumentResult, ER_INVALID_NSDATA_IDLIST
168     );
169     //!< [タスクステータスのポインタがNULLです。]を表すResult定義
170     NN_DEFINE_RESULT_CONST_LSM(
171         ResultInvalidTaskstatus,
172         MakeInvalidStateResult, ER_INVALID_TASKSTATUS
173     );
174     //!< [プロパティ値のポインタがNULLです。]を表すResult定義
175     NN_DEFINE_RESULT_CONST_LSM(
176         ResultInvalidPropertyvalue,
177         MakeInvalidArgumentResult, ER_INVALID_PROPERTYVALUE
178     );
179     //!< [新着イベントのポインタがNULLです。]を表すResult定義
180     NN_DEFINE_RESULT_CONST_LSM(
181         ResultInvalidNewarrivalEvent,
182         MakeInvalidArgumentResult, ER_INVALID_NEWARRIVAL_EVENT
183     );
184     //!< [新着フラグのポインタがNULLです。]を表すResult定義
185     NN_DEFINE_RESULT_CONST_LSM(
186         ResultInvalidNewarrivalFlag,
187         MakeInvalidArgumentResult, ER_INVALID_NEWARRIVAL_FLAG
188     );
189     //!< [OPTOUTフラグのポインタがNULLです。]を表すResult定義
190     NN_DEFINE_RESULT_CONST_LSM(
191         ResultInvalidOptoutFlag,
192         MakeInvalidArgumentResult, ER_INVALID_OPTOUT_FLAG
193     );
194     //!< [タスクエラー情報のポインタがNULLです。]を表すResult定義
195     NN_DEFINE_RESULT_CONST_LSM(
196         ResultInvalidTaskerror,
197         MakeInvalidStateResult, ER_INVALID_TASKERROR
198     );
199     //!< [NSDATA格納領域のポインタがNULLです。]を表すResult定義
200     NN_DEFINE_RESULT_CONST_LSM(
201         ResultInvalidNsdataValue,
202         MakeInvalidArgumentResult, ER_INVALID_NSDATA_VALUE
203     );
204     //!< [NSDATA追加情報を格納するポインタがNULLです。]を表すResult定義
205     NN_DEFINE_RESULT_CONST_LSM(
206         ResultInvalidNsdataInfo,
207         MakeInvalidArgumentResult, ER_INVALID_NSDATA_INFO
208     );
209     //!< [NSDATAリードフラグの格納領域のポインタがNULLです。]を表すResult定義
210     NN_DEFINE_RESULT_CONST_LSM(
211         ResultInvalidNsdataReadflag,
212         MakeInvalidArgumentResult, ER_INVALID_NSDATA_READFLAG
213     );
214     //!< [NSDATAのUPDATEタイムの格納領域のポインタがNULLです。]を表すResult定義
215     NN_DEFINE_RESULT_CONST_LSM(
216         ResultInvalidNsdataTime,
217         MakeInvalidArgumentResult, ER_INVALID_NSDATA_TIME
218     );
219     //!< [NEXT EXECUTE TIME のMinutesのポインタがNULLです。]を表すResult定義
220     NN_DEFINE_RESULT_CONST_LSM(
221         ResultInvalidNextexecutetime,
222         MakeInvalidArgumentResult, ER_INVALID_NEXTEXECUTETIME
223     );
224     //!< [HTTPリクエストヘッダのポインタがNULLです。]を表すResult定義
225     NN_DEFINE_RESULT_CONST_LSM(
226         ResultHttpRequestHeaderPointerNull,
227         MakeInvalidArgumentResult, ER_HTTP_REQUEST_HEADER_POINTER_NULL
228     );
229     //!< ポリシィリスト使用可能情報のポインタがNULLです。
230     NN_DEFINE_RESULT_CONST_LSM(
231         ResultInvalidPolicyListAvailability,
232         MakeInvalidArgumentResult, ER_INVALID_POLICYLIST_AVAILABILITY
233     );
234     //!< テストモード使用可能情報のポインタがNULLです。
235     NN_DEFINE_RESULT_CONST_LSM(
236         ResultInvalidTestModeAvailability,
237         MakeInvalidArgumentResult, ER_INVALID_TESTMODE_AVAILABILITY
238     );
239     //!< [タスクIDのポインタがNULLまたは0文字列です。 ]を表すResult定義
240     NN_DEFINE_RESULT_CONST_LSM(
241         ResultInvalidTaskId,
242         MakeInvalidArgumentResult, ER_INVALID_TASK_ID
243     );
244     //!< [タスク登録でカレントステップIDが指定されました。]を表すResult定義
245     NN_DEFINE_RESULT_CONST_LSM(
246         ResultInvalidTaskStep,
247         MakeInvalidArgumentResult, ER_INVALID_TASK_STEP
248     );
249     //!< [プロパティタイプがサポート外です。]を表すResult定義
250     NN_DEFINE_RESULT_CONST_LSM(
251         ResultInvalidPropertytype,
252         MakeInvalidArgumentResult, ER_INVALID_PROPERTYTYPE
253     );
254     //!< [URL文字列のポインタがNULLまたは0文字列です。]を表すResult定義
255     NN_DEFINE_RESULT_CONST_LSM(
256         ResultInvalidUrl,
257         MakeInvalidArgumentResult, ER_INVALID_URL
258     );
259     //!< [ファイルパス文字列のポインタがNULLまたは0文字列です。]を表すResult定義
260     NN_DEFINE_RESULT_CONST_LSM(
261         ResultInvalidFilepath,
262         MakeInvalidArgumentResult, ER_INVALID_FILEPATH
263     );
264     //!< [タスクプライオリティの指定が範囲外です。]を表すResult定義
265     NN_DEFINE_RESULT_CONST_LSM(
266         ResultInvalidTaskPriolity,
267         MakeInvalidArgumentResult, ER_INVALID_TASK_PRIOLITY
268     );
269     //!< [タスク継続時間が範囲外です。]を表すResult定義
270     NN_DEFINE_RESULT_CONST_LSM(
271         ResultInvalidTaskTargetduration,
272         MakeInvalidArgumentResult, ER_INVALID_TASK_TARGETDURATION
273     );
274     //!< [タスクアクションコードが範囲外です。]を表すResult定義
275     NN_DEFINE_RESULT_CONST_LSM(
276         ResultActioncodeOutOfRange,
277         MakeInvalidArgumentResult, ER_ACTIONCODE_OUT_OF_RANGE
278     );
279     //!< [NSDATAのシーク位置がデータサイズを超えています。]を表すResult定義
280     NN_DEFINE_RESULT_CONST_LSM(
281         ResultInvalidNsdataSeekPosition,
282         MakeInvalidArgumentResult, ER_INVALID_NSDATA_SEEK_POSITION
283     );
284 
285     //!< [HTTPリクエストヘッダの登録数が最大設定数を超えました。]を表すResult定義
286     NN_DEFINE_RESULT_CONST_LSM(
287         ResultInvalidMaxHttpRequestHeader,
288         MakeOutOfResourceResult, ER_INVALID_MAX_HTTP_REQUEST_HEADER
289     );
290 
291     //!< [ClientCertの最大設定数を超えました。]を表すResult定義
292     NN_DEFINE_RESULT_CONST_LSM(
293         ResultInvalidMaxClientCert,
294         MakeOutOfResourceResult, ER_INVALID_MAX_CLIENT_CERT
295     );
296     //!< [ルートCAの最大設定数を超えました。]を表すResult定義
297     NN_DEFINE_RESULT_CONST_LSM(
298         ResultInvalidMaxRootCa,
299         MakeOutOfResourceResult, ER_INVALID_MAX_ROOT_CA
300     );
301     //!< [スケジュールポリシィが範囲外です]を表すResult定義
302     NN_DEFINE_RESULT_CONST_LSM(
303         ResultSchedulingPolicyOutOfRange,
304         MakeInvalidArgumentResult, ER_SCHEDULING_POLICY_OUT_OF_RANGE
305     );
306     //!< [AP情報タイプが範囲外です。]を表すResult定義
307     NN_DEFINE_RESULT_CONST_LSM(
308         ResultApinfotypeOutOfRange,
309         MakeInvalidArgumentResult, ER_APINFOTYPE_OUT_OF_RANGE
310     );
311     //!< [タスク許可情報が範囲外です。]を表すResult定義
312     NN_DEFINE_RESULT_CONST_LSM(
313         ResultTaskPermissionOutOfRange,
314         MakeInvalidArgumentResult, ER_TASK_PERMISSION_OUT_OF_RANGE
315     );
316     //!< [WAITFINISHタイムアウト]を表すResult定義
317     NN_DEFINE_RESULT_CONST_LSM(
318         ResultWaitfinishTimeout,
319         MakeWouldBlockResult, ER_WAITFINISH_TIMEOUT
320     );
321     //!< [WAITFINISHタスクがDONE以外で終了]を表すResult定義
322     NN_DEFINE_RESULT_CONST_LSM(
323         ResultWaitfinishTaskNotDone,
324         MakeWouldBlockResult, ER_WAITFINISH_TASK_NOT_DONE
325     );
326     //!< [IPCのセッションが初期化されていない。]を表すResult定義
327     NN_DEFINE_RESULT_CONST_LSM(
328         ResultIpcNotSessionInitialized,
329         MakeInvalidStateResult, ER_IPC_NOT_SESSION_INITIALIZED
330     );
331     //!< [IPCのプロパティサイズがエラー]を表すResult定義
332     NN_DEFINE_RESULT_CONST_LSM(
333         ResultIpcPropertySizeError,
334         MakeOutOfResourceResult, ER_IPC_PROPERTY_SIZE_ERROR
335     );
336     //!< [IPCのリクエストの数が多すぎる。]を表すResult定義
337     NN_DEFINE_RESULT_CONST_LSM(
338         ResultIpcTooManyRequests,
339         MakeOutOfResourceResult, ER_IPC_TOO_MANY_REQUESTS
340     );
341     //!< [初期化済み ]を表すResult定義
342     NN_DEFINE_RESULT_CONST_LSM(
343         ResultAlreadyInitialized,
344         MakeInvalidStateResult, ER_ALREADY_INITIALIZED
345     );
346     //!< [メモリの不足]を表すResult定義
347     NN_DEFINE_RESULT_CONST_LSM(
348         ResultOutOfMemory,
349         MakeOutOfResourceResult, ER_OUT_OF_MEMORY
350     );
351     //!< [NSA内のNSD数が最大数を超えた]を表すResult定義
352     NN_DEFINE_RESULT_CONST_LSM(
353         ResultInvalidNumberOfNsd,
354         MakeOutOfResourceResult, ER_INVALID_NUMBER_OF_NSD
355     );
356     //!< [NSD Data フォーマット異常]を表すResult定義
357     NN_DEFINE_RESULT_CONST_LSM(
358         ResultNsdataInvalidFormat,
359         MakeOutOfResourceResult, ER_NSDATA_INVALID_FORMAT
360     );
361     //!< [指定されたアプリIDが見つからない。]を表すResult定義
362     NN_DEFINE_RESULT_CONST_LSM(
363         ResultApliNotExist,
364         MakeInvalidStateResult, ER_APLI_NOT_EXIST
365     );
366     //!< [指定されたタスクIDが見つからない。]を表すResult定義
367     NN_DEFINE_RESULT_CONST_LSM(
368         ResultTaskNotExist,
369         MakeInvalidStateResult, ER_TASK_NOT_EXIST
370     );
371     //!< [指定されたタスクステップが見つからない。]を表すResult定義
372     NN_DEFINE_RESULT_CONST_LSM(
373         ResultTaskStepNotExist,
374         MakeInvalidStateResult, ER_TASK_STEP_NOT_EXIST
375     );
376     //!< [既に同名アプリが登録されています。]を表すResult定義
377     NN_DEFINE_RESULT_CONST_LSM(
378         ResultApliIdAlreadyExist,
379         MakeInvalidStateResult, ER_APLI_ID_ALREADY_EXIST
380     );
381     //!< [既に同名タスクが登録されています。]を表すResult定義
382     NN_DEFINE_RESULT_CONST_LSM(
383         ResultTaskIdAlreadyExist,
384         MakeInvalidStateResult, ER_TASK_ID_ALREADY_EXIST
385     );
386     //!< [既に同名タスクステップが登録されています。]を表すResult定義
387     NN_DEFINE_RESULT_CONST_LSM(
388         ResultTaskStepAlreadyExist,
389         MakeInvalidStateResult, ER_TASK_STEP_ALREADY_EXIST
390     );
391     //!< [シーケンスエラー(run 中のタスクのスタートなど)]を表すResult定義
392     NN_DEFINE_RESULT_CONST_LSM(
393         ResultInvalidSequence,
394         MakeInvalidStateResult, ER_INVALID_SEQUENCE
395     );
396     //!< [SDB情報が削除出来ない。]を表すResult定義
397     NN_DEFINE_RESULT_CONST_LSM(
398         ResultDatabaseFull,
399         MakeInvalidStateResult, ER_DATABASE_FULL
400     );
401     //!< [タスク状態により、UnregisterTask 出来ない]を表すResult定義
402     NN_DEFINE_RESULT_CONST_LSM(
403         ResultCantUnregisterTask,
404         MakeInvalidStateResult, ER_CANT_UNREGISTER_TASK
405     );
406     //!< [SDBにタスク(ステップ)が全く登録されていない。]を表すResult定義
407     NN_DEFINE_RESULT_CONST_LSM(
408         ResultTaskNotRegisted,
409         MakeInvalidStateResult, ER_TASK_NOT_REGISTED
410     );
411     //!< [不正なファイルハンドル]を表すResult定義
412     NN_DEFINE_RESULT_CONST_LSM(
413         ResultInvalidFilehandle,
414         MakeInvalidStateResult, ER_INVALID_FILEHANDLE
415     );
416     //!< [不正なスケジュールポリシィ]を表すResult定義
417     NN_DEFINE_RESULT_CONST_LSM(
418         ResultInvalidTaskSchedulingPolicy,
419         MakeInvalidStateResult, ER_INVALID_TASK_SCHEDULING_POLICY
420     );
421     //!< [HTTPリクエストヘッダエラー]を表すResult定義
422     NN_DEFINE_RESULT_CONST_LSM(
423         ResultInvalidHttpRequestHeader,
424         MakeInvalidStateResult, ER_INVALID_HTTP_REQUEST_HEADER
425     );
426     //!< [不正なヘッドタイプ]を表すResult定義
427     NN_DEFINE_RESULT_CONST_LSM(
428         ResultInvalidHeadtype,
429         MakeInvalidStateResult, ER_INVALID_HEADTYPE
430     );
431     //!< [ストレージのアクセス権なし]を表すResult定義
432     NN_DEFINE_RESULT_CONST_LSM(
433         ResultStorageAccesspermission,
434         MakeInvalidStateResult, ER_STORAGE_ACCESSPERMISSION
435     );
436     //!< [ストレージの容量不足]を表すResult定義
437     NN_DEFINE_RESULT_CONST_LSM(
438         ResultStorageInsufficiency,
439         MakeInvalidStateResult, ER_STORAGE_INSUFFICIENCY
440     );
441     //!< [APPIDに対応したストレージがない]を表すResult定義
442     NN_DEFINE_RESULT_CONST_LSM(
443         ResultInvalidAppidStorageNotfound,
444         MakeInvalidStateResult, ER_INVALID_APPID_STORAGE_NOTFOUND
445     );
446     //!< [NSD Data なし]を表すResult定義
447     NN_DEFINE_RESULT_CONST_LSM(
448         ResultNsdataNotfound,
449         MakeInvalidStateResult, ER_NSDATA_NOTFOUND
450     );
451     //!< [不正なNSDATAのSIZEパラメータ指定]を表すResult定義
452     NN_DEFINE_RESULT_CONST_LSM(
453         ResultInvalidNsdataGetheadSize,
454         MakeInternalResult, ER_INVALID_NSDATA_GETHEAD_SIZE
455     );
456     //!< [NsDataIdListのサイズ不足(すべてのNSDシリアルIDを格納できなかった)]を表すResult定義
457     NN_DEFINE_RESULT_CONST_LSM(
458         ResultNsDataListSizeShortage,
459         MakeWouldBlockResult, ER_NSDATA_LIST_SIZE_SHORTAGE
460     );
461     //!< [前回のリスト取得時以降に、BOSSストレージの対象NSD群が更新された。]を表すResult定義
462     NN_DEFINE_RESULT_CONST_LSM(
463         ResultNsDataListUpdated,
464         MakeWouldBlockResult, ER_NSDATA_LIST_UPDATED
465     );
466     //!< [アクセスポイントに接続されていない。]を表すResult定義
467     NN_DEFINE_RESULT_CONST_LSM(
468         ResultNotConnectApWithLocation,
469         MakeInvalidStateResult, ER_NOT_CONNECT_AP_WITH_LOCATION
470     );
471     //!< [ネットワークに接続されていない。]を表すResult定義
472     NN_DEFINE_RESULT_CONST_LSM(
473         ResultNotConnectNetwork,
474         MakeInvalidStateResult, ER_NOT_CONNECT_NETWORK
475     );
476     //!< [Friendコード異常時のエラー。]を表すResult定義
477     NN_DEFINE_RESULT_CONST_LSM(
478         ResultInvalidFriendcode,
479         MakeInvalidStateResult, ER_INVALID_FRIENDCODE
480     );
481     //!< [ファイルアクセスに失敗]を表すResult定義
482     NN_DEFINE_RESULT_CONST_LSM(
483         ResultFileAccess,
484         MakeInternalResult, ER_FILE_ACCESS
485     );
486     //!< [すでに停止されていた]を表すResult定義
487     NN_DEFINE_RESULT_CONST_LSM(
488         ResultTaskAlreadyPaused,
489         MakeInternalResult, ER_TASK_ALREADY_PAUSED
490     );
491     //!< [すでに再開されていた]を表すResult定義
492     NN_DEFINE_RESULT_CONST_LSM(
493         ResultTaskAlreadyResumed,
494         MakeInternalResult, ER_TASK_ALREADY_RESUMED
495     );
496     //!< [予期しないエラー]を表すResult定義
497     NN_DEFINE_RESULT_CONST_LSM(
498         ResultUnexpect,
499         MakeInternalResult, ER_UNEXPECT
500     );
501 
502     namespace detail {
503         /**
504          * @brief  BOSSのPermanentエラーを表すResultを返す。
505          * @param summary エラーを表すResult::Summary値。
506          * @param errCode エラーコード(nn::http::ResultCode列挙体のいずれかの値)
507          * @return 引数に対応するPermanentエラーを表すResult。
508         */
MakePermanentResult(Result::Summary summary,s32 errCode)509         inline Result MakePermanentResult(Result::Summary summary, s32 errCode)
510         { return nn::MakePermanentResult(summary, Result::MODULE_NN_BOSS, errCode); }
511 
512         /**
513          * @brief  パラメータエラーに関するリターンコードに対して、それを表すResultを返す。
514          * @param returnCode リターンコード(nn::boss::ResultCode列挙体のいずれかの値)
515          * @return 引数の内容を表すResult。
516         */
ChangeBossRetCodeToResult(ResultCode returnCode)517         inline Result ChangeBossRetCodeToResult(ResultCode returnCode)
518         {
519             switch(returnCode)
520             {
521             case ER_NONE:
522                 return ResultSuccess();
523                 //break;
524             case ER_INVALID_POLICY:
525                 return ResultInvalidPolicy();
526                 //break;
527             case ER_INVALID_ACTION:
528                 return ResultInvalidAction();
529                 //break;
530             case ER_INVALID_OPTION:
531                 return ResultInvalidOption();
532                 //break;
533             case ER_INVALID_APPIDLIST:
534                 return ResultInvalidAppidlist();
535                 //break;
536             case ER_INVALID_TASKID_LIST:
537                 return ResultInvalidTaskidList();
538                 //break;
539             case ER_INVALID_STEPID_LIST:
540                 return ResultInvalidStepidList();
541                 //break;
542             case ER_INVALID_NSDATA_IDLIST:
543                 return ResultInvalidNsdataIdlist();
544                 //break;
545             case ER_INVALID_TASKSTATUS:
546                 return ResultInvalidTaskstatus();
547                 //break;
548             case ER_INVALID_PROPERTYVALUE:
549                 return ResultInvalidPropertyvalue();
550                 //break;
551             case ER_INVALID_NEWARRIVAL_EVENT:
552                 return ResultInvalidNewarrivalEvent();
553                 //break;
554             case ER_INVALID_NEWARRIVAL_FLAG:
555                 return ResultInvalidNewarrivalFlag();
556                 //break;
557             case ER_INVALID_OPTOUT_FLAG:
558                 return ResultInvalidOptoutFlag();
559                 //break;
560             case ER_INVALID_TASKERROR:
561                 return ResultInvalidTaskerror();
562                 //break;
563             case ER_INVALID_NSDATA_VALUE:
564                 return ResultInvalidNsdataValue();
565                 //break;
566             case ER_INVALID_NSDATA_INFO:
567                 return ResultInvalidNsdataInfo();
568                 //break;
569             case ER_INVALID_NSDATA_READFLAG:
570                 return ResultInvalidNsdataReadflag();
571                 //break;
572             case ER_INVALID_NSDATA_TIME:
573                 return ResultInvalidNsdataTime();
574                 //break;
575             case ER_INVALID_NEXTEXECUTETIME:
576                 return ResultInvalidNextexecutetime();
577                 //break;
578             case ER_HTTP_REQUEST_HEADER_POINTER_NULL:
579                 return ResultHttpRequestHeaderPointerNull();
580                 //break;
581             case ER_INVALID_POLICYLIST_AVAILABILITY:
582                 return ResultInvalidPolicyListAvailability();
583                 //break;
584             case ER_INVALID_TESTMODE_AVAILABILITY:
585                 return ResultInvalidTestModeAvailability();
586                 //break;
587             case ER_INVALID_TASK_ID:
588                 return ResultInvalidTaskId();
589                 //break;
590             case ER_INVALID_TASK_STEP:
591                 return ResultInvalidTaskStep();
592                 //break;
593             case ER_INVALID_PROPERTYTYPE:
594                 return ResultInvalidPropertytype();
595                 //break;
596             case ER_INVALID_URL:
597                 return ResultInvalidUrl();
598                 //break;
599             case ER_INVALID_FILEPATH:
600                 return ResultInvalidFilepath();
601                 //break;
602             case ER_INVALID_TASK_PRIOLITY:
603                 return ResultInvalidTaskPriolity();
604                 //break;
605             case ER_INVALID_TASK_TARGETDURATION:
606                 return ResultInvalidTaskTargetduration();
607                 //break;
608             case ER_ACTIONCODE_OUT_OF_RANGE:
609                 return ResultActioncodeOutOfRange();
610                 //break;
611             case ER_INVALID_NSDATA_SEEK_POSITION:
612                 return ResultInvalidNsdataSeekPosition();
613                 //break;
614             case ER_INVALID_MAX_HTTP_REQUEST_HEADER:
615                 return ResultInvalidMaxHttpRequestHeader();
616                 //break;
617             case ER_INVALID_MAX_CLIENT_CERT:
618                 return ResultInvalidMaxClientCert();
619                 //break;
620             case ER_INVALID_MAX_ROOT_CA:
621                 return ResultInvalidMaxRootCa();
622                 //break;
623             case ER_SCHEDULING_POLICY_OUT_OF_RANGE:
624                 return ResultSchedulingPolicyOutOfRange();
625                 //break;
626             case ER_APINFOTYPE_OUT_OF_RANGE:
627                 return ResultApinfotypeOutOfRange();
628                 //break;
629             case ER_TASK_PERMISSION_OUT_OF_RANGE:
630                 return ResultTaskPermissionOutOfRange();
631                 //break;
632             case ER_WAITFINISH_TIMEOUT:
633                 return ResultWaitfinishTimeout();
634                 //break;
635             case ER_WAITFINISH_TASK_NOT_DONE:
636                 return ResultWaitfinishTaskNotDone();
637                 //break;
638             case ER_IPC_NOT_SESSION_INITIALIZED:
639                 return ResultIpcNotSessionInitialized();
640                 //break;
641             case ER_IPC_PROPERTY_SIZE_ERROR:
642                 return ResultIpcPropertySizeError();
643                 //break;
644             case ER_IPC_TOO_MANY_REQUESTS:
645                 return ResultIpcTooManyRequests();
646                 //break;
647             case ER_ALREADY_INITIALIZED:
648                 return ResultAlreadyInitialized();
649                 //break;
650             case ER_OUT_OF_MEMORY:
651                 return ResultOutOfMemory();
652                 //break;
653             case ER_INVALID_NUMBER_OF_NSD:
654                 return ResultInvalidNumberOfNsd();
655                 //break;
656             case ER_NSDATA_INVALID_FORMAT:
657                 return ResultNsdataInvalidFormat();
658                 //break;
659             case ER_APLI_NOT_EXIST:
660                 return ResultApliNotExist();
661                 //break;
662             case ER_TASK_NOT_EXIST:
663                 return ResultTaskNotExist();
664                 //break;
665             case ER_TASK_STEP_NOT_EXIST:
666                 return ResultTaskStepNotExist();
667                 //break;
668             case ER_APLI_ID_ALREADY_EXIST:
669                 return ResultApliIdAlreadyExist();
670                 //break;
671             case ER_TASK_ID_ALREADY_EXIST:
672                 return ResultTaskIdAlreadyExist();
673                 //break;
674             case ER_TASK_STEP_ALREADY_EXIST:
675                 return ResultTaskStepAlreadyExist();
676                 //break;
677             case ER_INVALID_SEQUENCE:
678                 return ResultInvalidSequence();
679                 //break;
680             case ER_DATABASE_FULL:
681                 return ResultDatabaseFull();
682                 //break;
683             case ER_CANT_UNREGISTER_TASK:
684                 return ResultCantUnregisterTask();
685                 //break;
686             case ER_TASK_NOT_REGISTED:
687                 return ResultTaskNotRegisted();
688                 //break;
689             case ER_INVALID_FILEHANDLE:
690                 return ResultInvalidFilehandle();
691                 //break;
692             case ER_INVALID_TASK_SCHEDULING_POLICY:
693                 return ResultInvalidTaskSchedulingPolicy();
694                 //break;
695             case ER_INVALID_HTTP_REQUEST_HEADER:
696                 return ResultInvalidHttpRequestHeader();
697                 //break;
698             case ER_INVALID_HEADTYPE:
699                 return ResultInvalidHeadtype();
700                 //break;
701             case ER_STORAGE_ACCESSPERMISSION:
702                 return ResultStorageAccesspermission();
703                 //break;
704             case ER_STORAGE_INSUFFICIENCY:
705                 return ResultStorageInsufficiency();
706                 //break;
707             case ER_INVALID_APPID_STORAGE_NOTFOUND:
708                 return ResultInvalidAppidStorageNotfound();
709                 //break;
710             case ER_NSDATA_NOTFOUND:
711                 return ResultNsdataNotfound();
712                 //break;
713             case ER_INVALID_NSDATA_GETHEAD_SIZE:
714                 return ResultInvalidNsdataGetheadSize();
715             case ER_NSDATA_LIST_SIZE_SHORTAGE:
716                 return ResultNsDataListSizeShortage();
717                 //break;
718             case ER_NSDATA_LIST_UPDATED:
719                 return ResultNsDataListUpdated();
720                 //break;
721             case ER_NOT_CONNECT_AP_WITH_LOCATION:
722                 return ResultNotConnectApWithLocation();
723                 //break;
724             case ER_NOT_CONNECT_NETWORK:
725                 return ResultNotConnectNetwork();
726                 //break;
727             case ER_INVALID_FRIENDCODE:
728                 return ResultInvalidFriendcode();
729                 //break;
730             case ER_FILE_ACCESS:
731                 return ResultFileAccess();
732                 //break;
733 			case ER_TASK_ALREADY_PAUSED:
734                 return ResultTaskAlreadyPaused();
735                 //break;
736 			case ER_TASK_ALREADY_RESUMED:
737                 return ResultTaskAlreadyResumed();
738                 //break;
739             case ER_UNEXPECT:
740                 return ResultUnexpect();
741                 //break;
742 
743             default:
744                 return ResultUnexpect();
745                 //break;
746             }
747         }
748     }
749 }
750 }
751 #endif // __cplusplus
752 
753 #endif /* NN_BOSS_BOSS_RESULT_H_ */
754