1 /*---------------------------------------------------------------------------*
2   Project:  Horizon
3   File:     dlp_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: 30928 $
14  *---------------------------------------------------------------------------*/
15 #ifndef NN_DLP_CTR_DLP_RESULT_H_
16 #define NN_DLP_CTR_DLP_RESULT_H_
17 
18 #include <nn/Result.h>
19 
20 /*! @file
21     @brief      DLP ライブラリの Result 群です。
22 */
23 
24 
25 namespace nn {
26 namespace dlp {
27 namespace CTR {
28 
29     /*
30         @brief Result コードの詳細
31     */
32     enum Description
33     {
34         DESCRIPTION_INVALID_STATE                           = 1,        //!< API を使用するのに不適切な内部状態です。
35         DESCRIPTION_INTERNAL_ERROR                          = 2,        //!< アプリケーションからハンドリングできないエラーが発生しました。
36         DESCRIPTION_ALREADY_OCCUPIED_WIRELESS_DEVICE        = 3,        //!< 無線デバイスが既に占有されています。
37         DESCRIPTION_WIRELESS_OFF                            = 4,        //!< 通信ができない状態です。
38         DESCRIPTION_NOT_FOUND_SERVER                        = 5,        //!< サーバが見つかりません。
39         DESCRIPTION_SERVER_IS_FULL                          = 6,        //!< サーバにこれ以上のクライアントは接続できません。
40         DESCRIPTION_INVALID_MEDIA_TYPE                      = 7,        //!< アクセスするメディアがサポートされていません。
41         DESCRIPTION_FAILED_TO_ACCESS_MEDIA                  = 8,        //!< メディアへのアクセスに失敗しました。
42         DESCRIPTION_CHILD_TOO_LARGE                         = 9,        //!< 子機プログラムのインポートに必要なNAND容量が大きすぎます。
43         DESCRIPTION_INCOMMUTABLE                            = 10,       //!< 相手と通信ができません。
44         DESCRIPTION_INVALID_DLP_VERSION                     = 11,
45         DESCRIPTION_INVALID_REGION                          = 12        //!< 子機プロうグラムのリージョンが親機と異なります。
46     };
47 
48 
49     NN_DEFINE_RESULT_FUNC_LSM(  MakeInvalidStateResult,     Result::LEVEL_USAGE,     Result::SUMMARY_INVALID_STATE,     Result::MODULE_NN_DLP);
50     NN_DEFINE_RESULT_FUNC_LSM(  MakeInvalidArgumentResult,  Result::LEVEL_PERMANENT, Result::SUMMARY_INVALID_ARGUMENT,  Result::MODULE_NN_DLP);
51     NN_DEFINE_RESULT_FUNC_LSM(  MakeOutOfResourceResult,    Result::LEVEL_PERMANENT, Result::SUMMARY_OUT_OF_RESOURCE,   Result::MODULE_NN_DLP);
52     NN_DEFINE_RESULT_FUNC_LSM(  MakeInternalResult,         Result::LEVEL_PERMANENT, Result::SUMMARY_INTERNAL,          Result::MODULE_NN_DLP);
53     NN_DEFINE_RESULT_FUNC_LSM(  MakeNotSupportedResult,     Result::LEVEL_PERMANENT, Result::SUMMARY_NOT_SUPPORTED,     Result::MODULE_NN_DLP);
54     NN_DEFINE_RESULT_FUNC_LSM(  MakeNotFoundResult,         Result::LEVEL_STATUS,    Result::SUMMARY_NOT_FOUND,         Result::MODULE_NN_DLP);
55     NN_DEFINE_RESULT_FUNC_LSM(  MakeOutOfResourceResulttemporarily, Result::LEVEL_STATUS,    Result::SUMMARY_OUT_OF_RESOURCE,   Result::MODULE_NN_DLP);
56     NN_DEFINE_RESULT_FUNC_LSM(  MakeStatusChangedResult,    Result::LEVEL_STATUS,    Result::SUMMARY_STATUS_CHANGED,    Result::MODULE_NN_DLP);
57     NN_DEFINE_RESULT_FUNC_LSM(  MakeCanceledResult,         Result::LEVEL_STATUS,    Result::SUMMARY_CANCELLED,         Result::MODULE_NN_DLP);
58 
59     /*!
60       @name   Result 値
61       @{
62     */
63 
64     // LEVEL_USAGE
65     /*!
66         :category   Result
67         @class nn::dlp::CTR::ResultAlreadyOccupiedWirelessDevice
68         @brief @ref 無線デバイスが既に占有されています。
69     */
70     NN_DEFINE_RESULT_CONST_LSM(
71             ResultAlreadyOccupiedWirelessDevice,
72             MakeInvalidStateResult, DESCRIPTION_ALREADY_OCCUPIED_WIRELESS_DEVICE
73     );
74 
75     /*!
76         :category   Result
77         @class nn::dlp::CTR::ResultInvalidState
78         @brief @ref API を使用するのに不適切な内部状態です。
79     */
80     NN_DEFINE_RESULT_CONST_LSM(
81             ResultInvalidState,
82             MakeInvalidStateResult, DESCRIPTION_INVALID_STATE
83     );
84 
85     // LEVEL_PERMANENT
86     /*!
87         :category   Result
88         @class nn::dlp::CTR::ResultOutOfRange
89         @brief @ref 使用しているパラメータが範囲外です。
90     */
91 	NN_DEFINE_RESULT_CONST_LSM(
92 			ResultOutOfRange,
93 			MakeInvalidArgumentResult, Result::DESCRIPTION_OUT_OF_RANGE
94 	);
95 
96     /*!
97         :category   Result
98         @class nn::dlp::CTR::ResultInvalidPointer
99         @brief @ref 不正なポインタ引数です。
100     */
101     NN_DEFINE_RESULT_CONST_LSM(
102             ResultInvalidPointer,
103             MakeInvalidArgumentResult, Result::DESCRIPTION_INVALID_POINTER
104     );
105 
106     /*!
107         :category   Result
108         @class nn::dlp::CTR::ResultInvalidHandle
109         @brief @ref 不正なハンドル引数です。
110     */
111     NN_DEFINE_RESULT_CONST_LSM(
112             ResultInvalidHandle,
113             MakeInvalidArgumentResult, Result::DESCRIPTION_INVALID_HANDLE
114     );
115 
116     /*!
117         :category   Result
118         @class nn::dlp::CTR::ResultInternalError
119         @brief @ref アプリケーションからハンドリングできないエラーが発生しました。
120     */
121     NN_DEFINE_RESULT_CONST_LSM(
122             ResultInternalError,
123             MakeInternalResult, DESCRIPTION_INTERNAL_ERROR
124     );
125 
126     NN_DEFINE_RESULT_CONST_LSM(
127             ResultOutOfMemory,
128             MakeOutOfResourceResult, Result::DESCRIPTION_OUT_OF_MEMORY
129     );
130 
131     /*!
132         :category   Result
133         @class nn::dlp::CTR::ResultInvalidMediaType
134         @brief @ref アクセスするメディアがサポートされていません。
135     */
136     NN_DEFINE_RESULT_CONST_LSM(
137             ResultInvalidMediaType,
138             MakeNotSupportedResult, DESCRIPTION_INVALID_MEDIA_TYPE
139     );
140 
141     /*!
142         :category   Result
143         @class nn::dlp::CTR::ResultFailedToAccessMedia
144         @brief @ref メディアへのアクセスに失敗しました。
145     */
146     NN_DEFINE_RESULT_CONST_LSM(
147             ResultFailedToAccessMedia,
148             MakeInternalResult, DESCRIPTION_FAILED_TO_ACCESS_MEDIA
149     );
150 
151     /*!
152         :category   Result
153         @class nn::dlp::CTR::ResultChildTooLarge
154         @brief @ref 子機プログラムのインポートに必要なNAND容量が大きすぎます。
155     */
156     NN_DEFINE_RESULT_CONST_LSM(
157             ResultChildTooLarge,
158             MakeNotSupportedResult, DESCRIPTION_CHILD_TOO_LARGE
159     );
160 
161     /*!
162         :category   Result
163         @class nn::dlp::CTR::ResultInvalidRegion
164         @brief @ref 子機プログラムのリージョンが親機と異なります。
165     */
166     NN_DEFINE_RESULT_CONST_LSM(
167             ResultInvalidRegion,
168             MakeNotSupportedResult, DESCRIPTION_INVALID_REGION
169     );
170 
171     NN_DEFINE_RESULT_CONST_LSM(
172             ResultInvalidDlpVersion,
173             MakeNotSupportedResult, DESCRIPTION_INVALID_DLP_VERSION
174     );
175 
176     /*!
177         :category   Result
178         @class nn::dlp::CTR::ResultIncommutable
179         @brief @ref 相手と通信ができません。
180     */
181     NN_DEFINE_RESULT_CONST_LSM(
182             ResultIncommutable,
183             MakeNotSupportedResult, DESCRIPTION_INCOMMUTABLE
184     );
185 
186     // LEVEL_STATUS
187     /*!
188         :category   Result
189         @class nn::dlp::CTR::ResultNoData
190         @brief @ref 対象のデータがありません。
191     */
192     NN_DEFINE_RESULT_CONST_LSM(
193             ResultNoData,
194             MakeNotFoundResult, Result::DESCRIPTION_NO_DATA
195     );
196 
197     /*!
198         :category   Result
199         @class nn::dlp::CTR::ResultWirelessOff
200         @brief @ref 通信ができない状態です。
201     */
202     NN_DEFINE_RESULT_CONST_LSM(
203             ResultWirelessOff,
204             MakeStatusChangedResult, DESCRIPTION_WIRELESS_OFF
205     );
206 
207     /*!
208         :category   Result
209         @class nn::dlp::CTR::ResultNotFoundServer
210         @brief @ref サーバが見つかりません。
211     */
212     NN_DEFINE_RESULT_CONST_LSM(
213             ResultNotFoundServer,
214             MakeNotFoundResult, DESCRIPTION_NOT_FOUND_SERVER
215     );
216 
217     /*!
218         :category   Result
219         @class nn::dlp::CTR::ResultServerIsFull
220         @brief @ref サーバにこれ以上のクライアントは接続できません。
221     */
222     NN_DEFINE_RESULT_CONST_LSM(
223             ResultServerIsFull,
224             MakeOutOfResourceResulttemporarily, DESCRIPTION_SERVER_IS_FULL
225     );
226 
227     /*!
228         :category   Result
229         @class nn::dlp::CTR::ResultDeniedFromServer
230         @brief @ref サーバも接続を拒否されました。
231     */
232     NN_DEFINE_RESULT_CONST_LSM(
233             ResultDeniedFromServer,
234             MakeCanceledResult, Result::DESCRIPTION_CANCEL_REQUESTED
235     );
236 
237     /*!
238         :category   Result
239         @class nn::dlp::CTR::ResultConnectionTimeout
240         @brief @ref 接続の試みがタイムアウトしました。
241     */
242     NN_DEFINE_RESULT_CONST_LSM(
243             ResultConnectionTimeout,
244             MakeCanceledResult, Result::DESCRIPTION_TIMEOUT
245     );
246 
247     /*!
248       @}
249     */
250 }
251 }
252 }
253 
254 
255 #endif /* NN_DLP_CTR_DLP_RESULT_H_ */
256