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: 32071 $
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_SHUTDOWN_PROCESSING          = 7,     ///< シャットダウン中
48     DESCRIPTION_APPLET_TRANSITION_BUSY              = 8      ///< 他のものが遷移中
49 };
50 // 0 は SUCCESS に予約されているので 1 から始まります。
51 
52 /*!
53   @name   Result 値
54   @{
55 */
56 /*!
57     @class nn::applet::CTR::ResultNotFound
58     @brief @ref 取得しようとしたりその対象となるものが存在しなかったことを示します。
59 */
60  NN_DEFINE_RESULT_CONST
61      ( ResultNotFound,
62        Result::LEVEL_STATUS, Result::SUMMARY_NOT_FOUND, Result::MODULE_NN_APPLET,  Result::DESCRIPTION_NOT_FOUND );
63 
64 /*!
65     @class nn::applet::CTR::ResultAlreadyExist
66     @brief @ref 新規に作成したり、登録しようとしたものがすでに存在していることを示します。
67 */
68  NN_DEFINE_RESULT_CONST
69      ( ResultAlreadyExist,
70        Result::LEVEL_STATUS, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_APPLET,  Result::DESCRIPTION_ALREADY_EXISTS );
71 
72 /*!
73     @class nn::applet::CTR::ResultNoArea
74     @brief @ref 行おうとした処理で必要とされる領域やリソースの空きがなかったことを示します。
75 */
76  NN_DEFINE_RESULT_CONST
77      ( ResultNoArea,
78        Result::LEVEL_STATUS, Result::SUMMARY_OUT_OF_RESOURCE, Result::MODULE_NN_APPLET,  DESCRIPTION_APPLET_NO_AREA_TO_REGISTER );
79 
80 /*!
81     @class nn::applet::CTR::ResultNotEmpty
82     @brief @ref 行おうとした処理で必要とされるバッファが使用中で空でなかったことを示します。
83 */
84  NN_DEFINE_RESULT_CONST
85      ( ResultNotEmpty,
86        Result::LEVEL_STATUS, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_APPLET,  DESCRIPTION_APPLET_PARAMETER_BUFFER_NOT_EMPTY );
87 
88 /*!
89     @class nn::applet::CTR::ResultNoData
90     @brief @ref データがなかったことを示します。
91 */
92  NN_DEFINE_RESULT_CONST
93      ( ResultNoData,
94        Result::LEVEL_STATUS, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_APPLET,  Result::DESCRIPTION_NO_DATA);
95 
96 /*!
97     @class nn::applet::CTR::ResultNoCaller
98     @brief @ref 呼び出し元や送信元が存在しないことを示します。
99 */
100  NN_DEFINE_RESULT_CONST
101      ( ResultNoCaller,
102        Result::LEVEL_PERMANENT, Result::SUMMARY_NOT_FOUND, Result::MODULE_NN_APPLET,  DESCRIPTION_APPLET_CALLER_NOT_FOUND);
103 
104 /*!
105     @class nn::applet::CTR::ResultNotAllowed
106     @brief @ref 行おうとした処理がその状況で許可されていないものだったことを示します。
107 */
108  NN_DEFINE_RESULT_CONST
109      ( ResultNotAllowed,
110        Result::LEVEL_STATUS, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_APPLET,  DESCRIPTION_APPLET_NOT_ALLOWED);
111 
112 /*!
113     @class nn::applet::CTR::ResultBusy
114     @brief @ref 行おうとした処理が排他処理などでビジー状態にあることを示します。
115                 この場合、再度処理を試みることができます。
116 */
117  NN_DEFINE_RESULT_CONST
118      ( ResultBusy,
119        Result::LEVEL_STATUS, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_APPLET,  Result::DESCRIPTION_BUSY);
120 
121 /*!
122     @class nn::applet::CTR::ResultAlreadyInit
123     @brief @ref すでに初期化されていることを示します。
124 */
125  NN_DEFINE_RESULT_CONST
126      ( ResultAlreadyInit,
127        Result::LEVEL_USAGE, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_APPLET,  Result::DESCRIPTION_ALREADY_INITIALIZED);
128 
129 /*!
130     @class nn::applet::CTR::ResultDifferentMode
131     @brief @ref モードが異なっていることを示します。
132 */
133  NN_DEFINE_RESULT_CONST
134      ( ResultDifferentMode,
135        Result::LEVEL_USAGE, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_APPLET,  DESCRIPTION_APPLET_DIFFERENT_MODE);
136 
137 /*!
138     @class nn::applet::CTR::ResultDifferentVersion
139     @brief @ref バージョンが異なっていることを示します。
140 */
141  NN_DEFINE_RESULT_CONST
142      ( ResultDifferentVersion,
143        Result::LEVEL_USAGE, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_APPLET,  DESCRIPTION_APPLET_DIFFERENT_VERSION);
144 
145 /*!
146     @class nn::applet::CTR::ResultTransitionBusy
147     @brief @ref 他の遷移が起こっていることを示します。
148 */
149  NN_DEFINE_RESULT_CONST
150      ( ResultTransitionBusy,
151        Result::LEVEL_USAGE, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_APPLET,  DESCRIPTION_APPLET_TRANSITION_BUSY);
152 
153 /*!
154     @class nn::applet::CTR::ResultShutdownProcessing
155     @brief @ref シャットダウン中であることを示します。
156 */
157  NN_DEFINE_RESULT_CONST
158      ( ResultShutdownProcessing,
159        Result::LEVEL_USAGE, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_APPLET,  DESCRIPTION_APPLET_SHUTDOWN_PROCESSING);
160 
161 /*!
162   @}
163 */
164 
165 } // namespace CTR
166 } // namespace applet
167 } // namespace nn
168 
169 
170 #define NN_APPLET_RESULT_NOT_FOUND              (nn::applet::CTR::ResultNotFound())
171 #define NN_APPLET_RESULT_ALREADY_EXIST          (nn::applet::CTR::ResultAlreadyExist())
172 #define NN_APPLET_RESULT_NO_AREA                (nn::applet::CTR::ResultNoArea())
173 #define NN_APPLET_RESULT_NOT_EMPTY              (nn::applet::CTR::ResultNotEmpty())
174 #define NN_APPLET_RESULT_NO_DATA                (nn::applet::CTR::ResultNoData())
175 #define NN_APPLET_RESULT_NO_CALLER              (nn::applet::CTR::ResultNoCaller())
176 #define NN_APPLET_RESULT_NOT_ALLOWED            (nn::applet::CTR::ResultNotAllowed())
177 #define NN_APPLET_RESULT_BUSY                   (nn::applet::CTR::ResultBusy())
178 #define NN_APPLET_RESULT_ALREADY_INIT           (nn::applet::CTR::ResultAlreadyInit())
179 #define NN_APPLET_RESULT_DIFFERENT_MODE         (nn::applet::CTR::ResultDifferentMode())
180 #define NN_APPLET_RESULT_DIFFERENT_VERSION      (nn::applet::CTR::ResultDifferentVersion())
181 #define NN_APPLET_RESULT_TRANSITION_BUSY        (nn::applet::CTR::ResultTransitionBusy())
182 #define NN_APPLET_RESULT_SHUTDOWN_PROCESSING    (nn::applet::CTR::ResultShutdownProcessing())
183 
184 #endif //NN_APPLET_CTR_APPLET_RESULT_H_
185