1 /*---------------------------------------------------------------------------*
2   Project:  Horizon
3   File:     applet_Result.h
4 
5   Copyright (C)2010 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: 31413 $
14  *---------------------------------------------------------------------------*/
15 
16 #ifndef NN_APPLET_CTR_APPLET_RESULT_H_
17 #define NN_APPLET_CTR_APPLET_RESULT_H_
18 
19 #include <nn/Result.h>
20 
21 /*! @namespace nn::applet
22     @brief     APPLET の名前空間
23 */
24 /*!
25     @namespace nn::applet::CTR
26     @brief     CTR の APPLET の名前空間です。
27                <BR>("::CTR" の部分は省略して記述可能です。)
28 */
29 
30 namespace nn {
31 namespace applet {
32 namespace CTR {
33 
34 using namespace nn;
35 
36 /*!
37     @brief  @ref nn::Result の Description のうちモジュール依存の値です。
38 */
39 enum ResultDescription
40 {
41     DESCRIPTION_APPLET_NO_AREA_TO_REGISTER          = 1,     ///< 登録するためのテーブルに空きがない
42     DESCRIPTION_APPLET_PARAMETER_BUFFER_NOT_EMPTY   = 2,     ///< パラメータ領域が空でない
43     DESCRIPTION_APPLET_CALLER_NOT_FOUND             = 3,     ///< アプレットを呼び出したプロセスがない
44     DESCRIPTION_APPLET_NOT_ALLOWED                  = 4,     ///< アクセスが許可されていない
45     DESCRIPTION_APPLET_DIFFERENT_MODE               = 5,     ///< 異なるモードである
46     DESCRIPTION_APPLET_DIFFERENT_VERSION            = 6,     ///< 異なるバージョンである
47     DESCRIPTION_APPLET_TRANSITION_BUSY              = 8      ///< 他のものが遷移中
48 };
49 // 0 は SUCCESS に予約されているので 1 から始まります。
50 
51 /*!
52   @name   Result 値
53   @{
54 */
55 /*!
56     @class nn::applet::CTR::ResultNotFound
57     @brief @ref 取得しようとしたりその対象となるものが存在しなかったことを示します。
58 */
59  NN_DEFINE_RESULT_CONST
60      ( ResultNotFound,
61        Result::LEVEL_STATUS, Result::SUMMARY_NOT_FOUND, Result::MODULE_NN_APPLET,  Result::DESCRIPTION_NOT_FOUND );
62 
63 /*!
64     @class nn::applet::CTR::ResultAlreadyExist
65     @brief @ref 新規に作成したり、登録しようとしたものがすでに存在していることを示します。
66 */
67  NN_DEFINE_RESULT_CONST
68      ( ResultAlreadyExist,
69        Result::LEVEL_STATUS, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_APPLET,  Result::DESCRIPTION_ALREADY_EXISTS );
70 
71 /*!
72     @class nn::applet::CTR::ResultNoArea
73     @brief @ref 行おうとした処理で必要とされる領域やリソースの空きがなかったことを示します。
74 */
75  NN_DEFINE_RESULT_CONST
76      ( ResultNoArea,
77        Result::LEVEL_STATUS, Result::SUMMARY_OUT_OF_RESOURCE, Result::MODULE_NN_APPLET,  DESCRIPTION_APPLET_NO_AREA_TO_REGISTER );
78 
79 /*!
80     @class nn::applet::CTR::ResultNotEmpty
81     @brief @ref 行おうとした処理で必要とされるバッファが使用中で空でなかったことを示します。
82 */
83  NN_DEFINE_RESULT_CONST
84      ( ResultNotEmpty,
85        Result::LEVEL_STATUS, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_APPLET,  DESCRIPTION_APPLET_PARAMETER_BUFFER_NOT_EMPTY );
86 
87 /*!
88     @class nn::applet::CTR::ResultNoData
89     @brief @ref データがなかったことを示します。
90 */
91  NN_DEFINE_RESULT_CONST
92      ( ResultNoData,
93        Result::LEVEL_STATUS, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_APPLET,  Result::DESCRIPTION_NO_DATA);
94 
95 /*!
96     @class nn::applet::CTR::ResultNoCaller
97     @brief @ref 呼び出し元や送信元が存在しないことを示します。
98 */
99  NN_DEFINE_RESULT_CONST
100      ( ResultNoCaller,
101        Result::LEVEL_PERMANENT, Result::SUMMARY_NOT_FOUND, Result::MODULE_NN_APPLET,  DESCRIPTION_APPLET_CALLER_NOT_FOUND);
102 
103 /*!
104     @class nn::applet::CTR::ResultNotAllowed
105     @brief @ref 行おうとした処理がその状況で許可されていないものだったことを示します。
106 */
107  NN_DEFINE_RESULT_CONST
108      ( ResultNotAllowed,
109        Result::LEVEL_STATUS, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_APPLET,  DESCRIPTION_APPLET_NOT_ALLOWED);
110 
111 /*!
112     @class nn::applet::CTR::ResultBusy
113     @brief @ref 行おうとした処理が排他処理などでビジー状態にあることを示します。
114                 この場合、再度処理を試みることができます。
115 */
116  NN_DEFINE_RESULT_CONST
117      ( ResultBusy,
118        Result::LEVEL_STATUS, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_APPLET,  Result::DESCRIPTION_BUSY);
119 
120 /*!
121     @class nn::applet::CTR::ResultAlreadyInit
122     @brief @ref すでに初期化されていることを示します。
123 */
124  NN_DEFINE_RESULT_CONST
125      ( ResultAlreadyInit,
126        Result::LEVEL_USAGE, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_APPLET,  Result::DESCRIPTION_ALREADY_INITIALIZED);
127 
128 /*!
129     @class nn::applet::CTR::ResultDifferentMode
130     @brief @ref モードが異なっていることを示します。
131 */
132  NN_DEFINE_RESULT_CONST
133      ( ResultDifferentMode,
134        Result::LEVEL_USAGE, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_APPLET,  DESCRIPTION_APPLET_DIFFERENT_MODE);
135 
136 /*!
137     @class nn::applet::CTR::ResultDifferentVersion
138     @brief @ref バージョンが異なっていることを示します。
139 */
140  NN_DEFINE_RESULT_CONST
141      ( ResultDifferentVersion,
142        Result::LEVEL_USAGE, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_APPLET,  DESCRIPTION_APPLET_DIFFERENT_VERSION);
143 
144 /*!
145     @class nn::applet::CTR::ResultTransitionBusy
146     @brief @ref 他の遷移が起こっていることを示します。
147 */
148  NN_DEFINE_RESULT_CONST
149      ( ResultTransitionBusy,
150        Result::LEVEL_USAGE, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_APPLET,  DESCRIPTION_APPLET_TRANSITION_BUSY);
151 
152 /*!
153   @}
154 */
155 
156 } // namespace CTR
157 } // namespace applet
158 } // namespace nn
159 
160 
161 #define NN_APPLET_RESULT_NOT_FOUND          (nn::applet::CTR::ResultNotFound())
162 #define NN_APPLET_RESULT_ALREADY_EXIST      (nn::applet::CTR::ResultAlreadyExist())
163 #define NN_APPLET_RESULT_NO_AREA            (nn::applet::CTR::ResultNoArea())
164 #define NN_APPLET_RESULT_NOT_EMPTY          (nn::applet::CTR::ResultNotEmpty())
165 #define NN_APPLET_RESULT_NO_DATA            (nn::applet::CTR::ResultNoData())
166 #define NN_APPLET_RESULT_NO_CALLER          (nn::applet::CTR::ResultNoCaller())
167 #define NN_APPLET_RESULT_NOT_ALLOWED        (nn::applet::CTR::ResultNotAllowed())
168 #define NN_APPLET_RESULT_BUSY               (nn::applet::CTR::ResultBusy())
169 #define NN_APPLET_RESULT_ALREADY_INIT       (nn::applet::CTR::ResultAlreadyInit())
170 #define NN_APPLET_RESULT_DIFFERENT_MODE     (nn::applet::CTR::ResultDifferentMode())
171 #define NN_APPLET_RESULT_DIFFERENT_VERSION  (nn::applet::CTR::ResultDifferentVersion())
172 #define NN_APPLET_RESULT_TRANSITION_BUSY    (nn::applet::CTR::ResultTransitionBusy())
173 
174 #endif //NN_APPLET_CTR_APPLET_RESULT_H_
175