1 /*---------------------------------------------------------------------------*
2   Project:  Horizon
3   File:     friends_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: 32450 $
14  *---------------------------------------------------------------------------*/
15 
16 #ifndef NN_FRIENDS_CTR_FRIENDS_RESULT_H_
17 #define NN_FRIENDS_CTR_FRIENDS_RESULT_H_
18 
19 #ifdef __cplusplus
20 
21 #include <nn/Result.h>
22 
23 namespace nn {
24 namespace friends {
25 namespace CTR {
26 
27     namespace detail {
28         static const u32 DESCRIPTION_FACILITY_SHIFT = 5;
29         static const u32 DESCRIPTION_RETURN_CODE_UNDEFINED = (1 << (DESCRIPTION_FACILITY_SHIFT + 1)) - 1;
30     }
31 
32     enum Description
33     {
34         DESCRIPTION_FACILITY_CORE           = 1 << detail::DESCRIPTION_FACILITY_SHIFT,
35         DESCRIPTION_FACILITY_DDL            = 2 << detail::DESCRIPTION_FACILITY_SHIFT,
36         DESCRIPTION_FACILITY_RENDEZVOUS     = 3 << detail::DESCRIPTION_FACILITY_SHIFT,
37         DESCRIPTION_FACILITY_PYTHONCORE     = 4 << detail::DESCRIPTION_FACILITY_SHIFT,
38         DESCRIPTION_FACILITY_TRANSPORT      = 5 << detail::DESCRIPTION_FACILITY_SHIFT,
39         DESCRIPTION_FACILITY_DOCORE         = 6 << detail::DESCRIPTION_FACILITY_SHIFT,
40         DESCRIPTION_FACILITY_FPD            = 7 << detail::DESCRIPTION_FACILITY_SHIFT,
41         DESCRIPTION_FACILITY_AUTHENTICATION = 8 << detail::DESCRIPTION_FACILITY_SHIFT,
42 
43         DESCRIPTION_CORE_SUCCESS                                     = DESCRIPTION_FACILITY_CORE + 0,
44         DESCRIPTION_CORE_SUCCESS_PENDING                             = DESCRIPTION_FACILITY_CORE + 1,
45         DESCRIPTION_CORE_UNKNOWN                                     = DESCRIPTION_FACILITY_CORE + 2,
46         DESCRIPTION_CORE_NOT_IMPLEMENTED                             = DESCRIPTION_FACILITY_CORE + 3,
47         DESCRIPTION_CORE_INVALID_POINTER                             = DESCRIPTION_FACILITY_CORE + 4,
48         DESCRIPTION_CORE_OPERATION_ABORTED                           = DESCRIPTION_FACILITY_CORE + 5,
49         DESCRIPTION_CORE_EXCEPTION                                   = DESCRIPTION_FACILITY_CORE + 6,
50         DESCRIPTION_CORE_ACCESS_DENIED                               = DESCRIPTION_FACILITY_CORE + 7,
51         DESCRIPTION_CORE_INVALID_HANDLE                              = DESCRIPTION_FACILITY_CORE + 8,
52         DESCRIPTION_CORE_INVALID_INDEX                               = DESCRIPTION_FACILITY_CORE + 9,
53         DESCRIPTION_CORE_OUT_OF_MEMORY                               = DESCRIPTION_FACILITY_CORE + 10,
54         DESCRIPTION_CORE_INVALID_ARGUMENT                            = DESCRIPTION_FACILITY_CORE + 11,
55         DESCRIPTION_CORE_TIMEOUT                                     = DESCRIPTION_FACILITY_CORE + 12,
56         DESCRIPTION_CORE_INITIALIZATION_FAILURE                      = DESCRIPTION_FACILITY_CORE + 13,
57         DESCRIPTION_CORE_CALL_INITIATION_FAILURE                     = DESCRIPTION_FACILITY_CORE + 14,
58         DESCRIPTION_CORE_REGISTRATION_ERROR                          = DESCRIPTION_FACILITY_CORE + 15,
59         DESCRIPTION_CORE_BUFFER_OVERFLOW                             = DESCRIPTION_FACILITY_CORE + 16,
60         DESCRIPTION_CORE_INVALID_LOCK_STATE                          = DESCRIPTION_FACILITY_CORE + 17,
61         DESCRIPTION_CORE_UNDEFINED                                   = DESCRIPTION_FACILITY_CORE + detail::DESCRIPTION_RETURN_CODE_UNDEFINED,
62 
63         DESCRIPTION_DDL_SUCCESS                                      = DESCRIPTION_FACILITY_DDL + 0,
64         DESCRIPTION_DDL_INVALID_SIGNATURE                            = DESCRIPTION_FACILITY_DDL + 1,
65         DESCRIPTION_DDL_INCORRECT_VERSION                            = DESCRIPTION_FACILITY_DDL + 2,
66         DESCRIPTION_DDL_UNDEFINED                                    = DESCRIPTION_FACILITY_DDL + detail::DESCRIPTION_RETURN_CODE_UNDEFINED,
67 
68         DESCRIPTION_RENDEZVOUS_SUCCESS                               = DESCRIPTION_FACILITY_RENDEZVOUS + 0,
69         DESCRIPTION_RENDEZVOUS_CONNECTION_FAILURE                    = DESCRIPTION_FACILITY_RENDEZVOUS + 1,
70         DESCRIPTION_RENDEZVOUS_NOT_AUTHENTICATED                     = DESCRIPTION_FACILITY_RENDEZVOUS + 2,
71         DESCRIPTION_RENDEZVOUS_INVALID_USERNAME                      = DESCRIPTION_FACILITY_RENDEZVOUS + 3,
72         DESCRIPTION_RENDEZVOUS_INVALID_PASSWORD                      = DESCRIPTION_FACILITY_RENDEZVOUS + 4,
73         DESCRIPTION_RENDEZVOUS_USERNAME_ALREADY_EXISTS               = DESCRIPTION_FACILITY_RENDEZVOUS + 5,
74         DESCRIPTION_RENDEZVOUS_ACCOUNT_DISABLED                      = DESCRIPTION_FACILITY_RENDEZVOUS + 6,
75         DESCRIPTION_RENDEZVOUS_ACCOUNT_EXPIRED                       = DESCRIPTION_FACILITY_RENDEZVOUS + 7,
76         DESCRIPTION_RENDEZVOUS_CONCURRENT_LOGIN_DENIED               = DESCRIPTION_FACILITY_RENDEZVOUS + 8,
77         DESCRIPTION_RENDEZVOUS_ENCRYPTION_FAILURE                    = DESCRIPTION_FACILITY_RENDEZVOUS + 9,
78         DESCRIPTION_RENDEZVOUS_INVALID_PID                           = DESCRIPTION_FACILITY_RENDEZVOUS + 10,
79         DESCRIPTION_RENDEZVOUS_MAX_CONNECTIONS_REACHED               = DESCRIPTION_FACILITY_RENDEZVOUS + 11,
80         DESCRIPTION_RENDEZVOUS_INVALID_GID                           = DESCRIPTION_FACILITY_RENDEZVOUS + 12,
81         DESCRIPTION_RENDEZVOUS_INVALID_THREAD_ID                     = DESCRIPTION_FACILITY_RENDEZVOUS + 13,
82         DESCRIPTION_RENDEZVOUS_INVALID_OPERATION_IN_LIVE_ENVIRONMENT = DESCRIPTION_FACILITY_RENDEZVOUS + 14,
83         DESCRIPTION_RENDEZVOUS_DUPLICATE_ENTRY                       = DESCRIPTION_FACILITY_RENDEZVOUS + 15,
84         DESCRIPTION_RENDEZVOUS_CONTROL_SCRIPT_FAILURE                = DESCRIPTION_FACILITY_RENDEZVOUS + 16,
85         DESCRIPTION_RENDEZVOUS_CLASS_NOT_FOUND                       = DESCRIPTION_FACILITY_RENDEZVOUS + 17,
86         DESCRIPTION_RENDEZVOUS_SESSION_VOID                          = DESCRIPTION_FACILITY_RENDEZVOUS + 18,
87         DESCRIPTION_RENDEZVOUS_LSP_GATEWAY_UNREACHABLE               = DESCRIPTION_FACILITY_RENDEZVOUS + 19,
88         DESCRIPTION_RENDEZVOUS_DDL_MISMATCH                          = DESCRIPTION_FACILITY_RENDEZVOUS + 20,
89         DESCRIPTION_RENDEZVOUS_INVALID_FTP_INFO                      = DESCRIPTION_FACILITY_RENDEZVOUS + 21,
90         DESCRIPTION_RENDEZVOUS_SESSION_FULL                          = DESCRIPTION_FACILITY_RENDEZVOUS + 22,
91         DESCRIPTION_RENDEZVOUS_UNDEFINED                             = DESCRIPTION_FACILITY_RENDEZVOUS + detail::DESCRIPTION_RETURN_CODE_UNDEFINED,
92 
93         DESCRIPTION_PYTHONCORE_SUCCESS                               = DESCRIPTION_FACILITY_PYTHONCORE + 0,
94         DESCRIPTION_PYTHONCORE_EXCEPTION                             = DESCRIPTION_FACILITY_PYTHONCORE + 1,
95         DESCRIPTION_PYTHONCORE_TYPE_ERROR                            = DESCRIPTION_FACILITY_PYTHONCORE + 2,
96         DESCRIPTION_PYTHONCORE_INDEX_ERROR                           = DESCRIPTION_FACILITY_PYTHONCORE + 3,
97         DESCRIPTION_PYTHONCORE_INVALID_REFERENCE                     = DESCRIPTION_FACILITY_PYTHONCORE + 4,
98         DESCRIPTION_PYTHONCORE_CALL_FAILURE                          = DESCRIPTION_FACILITY_PYTHONCORE + 5,
99         DESCRIPTION_PYTHONCORE_MEMORY_ERROR                          = DESCRIPTION_FACILITY_PYTHONCORE + 6,
100         DESCRIPTION_PYTHONCORE_KEY_ERROR                             = DESCRIPTION_FACILITY_PYTHONCORE + 7,
101         DESCRIPTION_PYTHONCORE_OPERATION_ERROR                       = DESCRIPTION_FACILITY_PYTHONCORE + 8,
102         DESCRIPTION_PYTHONCORE_CONVERSION_ERROR                      = DESCRIPTION_FACILITY_PYTHONCORE + 9,
103         DESCRIPTION_PYTHONCORE_VALIDATION_ERROR                      = DESCRIPTION_FACILITY_PYTHONCORE + 10,
104         DESCRIPTION_PYTHONCORE_UNDEFINED                             = DESCRIPTION_FACILITY_PYTHONCORE + detail::DESCRIPTION_RETURN_CODE_UNDEFINED,
105 
106         DESCRIPTION_TRANSPORT_SUCCESS                                = DESCRIPTION_FACILITY_TRANSPORT + 0,
107         DESCRIPTION_TRANSPORT_UNKNOWN                                = DESCRIPTION_FACILITY_TRANSPORT + 1,
108         DESCRIPTION_TRANSPORT_CONNECTION_FAILURE                     = DESCRIPTION_FACILITY_TRANSPORT + 2,
109         DESCRIPTION_TRANSPORT_INVALID_URL                            = DESCRIPTION_FACILITY_TRANSPORT + 3,
110         DESCRIPTION_TRANSPORT_INVALID_KEY                            = DESCRIPTION_FACILITY_TRANSPORT + 4,
111         DESCRIPTION_TRANSPORT_INVALID_URL_TYPE                       = DESCRIPTION_FACILITY_TRANSPORT + 5,
112         DESCRIPTION_TRANSPORT_DUPLICATE_ENDPOINT                     = DESCRIPTION_FACILITY_TRANSPORT + 6,
113         DESCRIPTION_TRANSPORT_IO_ERROR                               = DESCRIPTION_FACILITY_TRANSPORT + 7,
114         DESCRIPTION_TRANSPORT_TIMEOUT                                = DESCRIPTION_FACILITY_TRANSPORT + 8,
115         DESCRIPTION_TRANSPORT_CONNECTION_RESET                       = DESCRIPTION_FACILITY_TRANSPORT + 9,
116         DESCRIPTION_TRANSPORT_INCORRECT_REMOTE_AUTHENTICATION        = DESCRIPTION_FACILITY_TRANSPORT + 10,
117         DESCRIPTION_TRANSPORT_SERVER_REQUEST_ERROR                   = DESCRIPTION_FACILITY_TRANSPORT + 11,
118         DESCRIPTION_TRANSPORT_DECOMPRESSION_FAILURE                  = DESCRIPTION_FACILITY_TRANSPORT + 12,
119         DESCRIPTION_TRANSPORT_CONGESTED_END_POINT                    = DESCRIPTION_FACILITY_TRANSPORT + 13,
120         DESCRIPTION_TRANSPORT_UPNP_CANNOT_INIT                       = DESCRIPTION_FACILITY_TRANSPORT + 14,
121         DESCRIPTION_TRANSPORT_UPNP_CANNOT_ADD_MAPPING                = DESCRIPTION_FACILITY_TRANSPORT + 15,
122         DESCRIPTION_TRANSPORT_NAT_PMP_CANNOT_INIT                    = DESCRIPTION_FACILITY_TRANSPORT + 16,
123         DESCRIPTION_TRANSPORT_NAT_PMP_CANNOT_ADD_MAPPING             = DESCRIPTION_FACILITY_TRANSPORT + 17,
124         DESCRIPTION_TRANSPORT_UNDEFINED                              = DESCRIPTION_FACILITY_TRANSPORT + detail::DESCRIPTION_RETURN_CODE_UNDEFINED,
125 
126         DESCRIPTION_DOCORE_SUCCESS                                   = DESCRIPTION_FACILITY_DOCORE + 0,
127         DESCRIPTION_DOCORE_CALL_POSTPONED                            = DESCRIPTION_FACILITY_DOCORE + 1,
128         DESCRIPTION_DOCORE_STATION_NOT_REACHED                       = DESCRIPTION_FACILITY_DOCORE + 2,
129         DESCRIPTION_DOCORE_TARGET_STATION_DISCONNECT                 = DESCRIPTION_FACILITY_DOCORE + 3,
130         DESCRIPTION_DOCORE_LOCAL_STATION_LEAVING                     = DESCRIPTION_FACILITY_DOCORE + 4,
131         DESCRIPTION_DOCORE_OBJECT_NOT_FOUND                          = DESCRIPTION_FACILITY_DOCORE + 5,
132         DESCRIPTION_DOCORE_INVALID_ROLE                              = DESCRIPTION_FACILITY_DOCORE + 6,
133         DESCRIPTION_DOCORE_CALL_TIMEOUT                              = DESCRIPTION_FACILITY_DOCORE + 7,
134         DESCRIPTION_DOCORE_RMC_DISPATCH_FAILED                       = DESCRIPTION_FACILITY_DOCORE + 8,
135         DESCRIPTION_DOCORE_MIGRATION_IN_PROGRESS                     = DESCRIPTION_FACILITY_DOCORE + 9,
136         DESCRIPTION_DOCORE_NO_AUTHORITY                              = DESCRIPTION_FACILITY_DOCORE + 10,
137         DESCRIPTION_DOCORE_NO_TARGET_STATION_SPECIFIED               = DESCRIPTION_FACILITY_DOCORE + 11,
138         DESCRIPTION_DOCORE_JOIN_FAILED                               = DESCRIPTION_FACILITY_DOCORE + 12,
139         DESCRIPTION_DOCORE_JOIN_DENIED                               = DESCRIPTION_FACILITY_DOCORE + 13,
140         DESCRIPTION_DOCORE_CONNECTIVITY_TEST_FAILED                  = DESCRIPTION_FACILITY_DOCORE + 14,
141         DESCRIPTION_DOCORE_UNKNOWN                                   = DESCRIPTION_FACILITY_DOCORE + 15,
142         DESCRIPTION_DOCORE_UNFREED_REFERENCES                        = DESCRIPTION_FACILITY_DOCORE + 16,
143         DESCRIPTION_DOCORE_UNDEFINED                                 = DESCRIPTION_FACILITY_DOCORE + detail::DESCRIPTION_RETURN_CODE_UNDEFINED,
144 
145         DESCRIPTION_FPD_SUCCESS                                      = DESCRIPTION_FACILITY_FPD + 0,
146         DESCRIPTION_RMC_NOT_CALLED                                   = DESCRIPTION_FACILITY_FPD + 1,
147         DESCRIPTION_DAEMON_NOT_INITIALIZED                           = DESCRIPTION_FACILITY_FPD + 2,
148         DESCRIPTION_DAEMON_ALREADY_INITIALIZED                       = DESCRIPTION_FACILITY_FPD + 3,
149         DESCRIPTION_NOT_CONNECTED                                    = DESCRIPTION_FACILITY_FPD + 4,
150         DESCRIPTION_CONNECTED                                        = DESCRIPTION_FACILITY_FPD + 5,
151         DESCRIPTION_INITIALIZATION_FAILURE                           = DESCRIPTION_FACILITY_FPD + 6,
152         DESCRIPTION_OUT_OF_MEMORY                                    = DESCRIPTION_FACILITY_FPD + 7,
153         DESCRIPTION_RMC_FAILED                                       = DESCRIPTION_FACILITY_FPD + 8,
154         DESCRIPTION_INVALID_ARGUMENT                                 = DESCRIPTION_FACILITY_FPD + 9,
155         DESCRIPTION_INVALID_LOCAL_ACCOUNT_ID                         = DESCRIPTION_FACILITY_FPD + 10,
156         DESCRIPTION_INVALID_PRINCIPAL_ID                             = DESCRIPTION_FACILITY_FPD + 11,
157         DESCRIPTION_INVALID_LOCAL_FRIEND_CODE                        = DESCRIPTION_FACILITY_FPD + 12,
158         DESCRIPTION_LOCAL_ACCOUNT_NOT_EXISTS                         = DESCRIPTION_FACILITY_FPD + 13,
159         DESCRIPTION_LOCAL_ACCOUNT_NOT_LOADED                         = DESCRIPTION_FACILITY_FPD + 14,
160         DESCRIPTION_LOCAL_ACCOUNT_ALREADY_LOADED                     = DESCRIPTION_FACILITY_FPD + 15,
161         DESCRIPTION_FRIEND_ALREADY_EXISTS                            = DESCRIPTION_FACILITY_FPD + 16,
162         DESCRIPTION_FRIEND_NOT_EXISTS                                = DESCRIPTION_FACILITY_FPD + 17,
163         DESCRIPTION_FRIEND_NUM_MAX                                   = DESCRIPTION_FACILITY_FPD + 18,
164         DESCRIPTION_NOT_FRIEND                                       = DESCRIPTION_FACILITY_FPD + 19,
165         DESCRIPTION_FILE_IO_ERROR                                    = DESCRIPTION_FACILITY_FPD + 20,
166         DESCRIPTION_P2P_INTERNET_PROHIBITED                          = DESCRIPTION_FACILITY_FPD + 21,
167         DESCRIPTION_UNKNOWN                                          = DESCRIPTION_FACILITY_FPD + 22,
168         DESCRIPTION_FPD_UNDEFINED                                    = DESCRIPTION_FACILITY_FPD + detail::DESCRIPTION_RETURN_CODE_UNDEFINED,
169 
170         DESCRIPTION_AUTHENTICATION_SUCCESS                           = DESCRIPTION_FACILITY_AUTHENTICATION + 0,
171         DESCRIPTION_AUTHENTICATION_NAS_AUTHENTICATE_ERROR            = DESCRIPTION_FACILITY_AUTHENTICATION + 1,
172         DESCRIPTION_AUTHENTICATION_TOKEN_PARSE_ERROR                 = DESCRIPTION_FACILITY_AUTHENTICATION + 2,
173         DESCRIPTION_AUTHENTICATION_HTTP_CONNECTION_ERROR             = DESCRIPTION_FACILITY_AUTHENTICATION + 3,
174         DESCRIPTION_AUTHENTICATION_HTTP_DNS_ERROR                    = DESCRIPTION_FACILITY_AUTHENTICATION + 4,
175         DESCRIPTION_AUTHENTICATION_HTTP_GET_PROXY_SETTING            = DESCRIPTION_FACILITY_AUTHENTICATION + 5,
176         DESCRIPTION_AUTHENTICATION_TOKEN_EXPIRED                     = DESCRIPTION_FACILITY_AUTHENTICATION + 6,
177         DESCRIPTION_AUTHENTICATION_VALIDATION_FAILED                 = DESCRIPTION_FACILITY_AUTHENTICATION + 7,
178         DESCRIPTION_AUTHENTICATION_INVALID_PARAM                     = DESCRIPTION_FACILITY_AUTHENTICATION + 8,
179         DESCRIPTION_AUTHENTICATION_PRINCIPAL_ID_UNMATCHED            = DESCRIPTION_FACILITY_AUTHENTICATION + 9,
180         DESCRIPTION_AUTHENTICATION_MOVE_COUNT_UNMATCH                = DESCRIPTION_FACILITY_AUTHENTICATION + 10,
181         DESCRIPTION_AUTHENTICATION_UNDER_MAINTENANCE                 = DESCRIPTION_FACILITY_AUTHENTICATION + 11,
182         DESCRIPTION_AUTHENTICATION_UNSUPPORTED_VERSION               = DESCRIPTION_FACILITY_AUTHENTICATION + 12,
183         DESCRIPTION_AUTHENTICATION_UNKNOWN                           = DESCRIPTION_FACILITY_AUTHENTICATION + 13,
184         DESCRIPTION_AUTHENTICATION_UNDEFINED                         = DESCRIPTION_FACILITY_AUTHENTICATION + detail::DESCRIPTION_RETURN_CODE_UNDEFINED,
185 
186         DESCRIPTION_FACILITY_CTR        = 0 << detail::DESCRIPTION_FACILITY_SHIFT,
187 
188         DESCRIPTION_INVALID_FRIEND_CODE = DESCRIPTION_FACILITY_CTR + 1,
189         DESCRIPTION_NOT_LOGGED_IN,
190         DESCRIPTION_NOT_FRIENDS_RESULT,
191         DESCRIPTION_UNDEFINED_FACILITY,
192         DESCRIPTION_AC_NOT_CONNECTED
193     };
194 
195 
196     /*!
197         @class nn::friends::ResultCoreTimeOut
198         @brief 非同期処理がタイムアウトしたことを示します。
199     */
200     NN_DEFINE_RESULT_CONST(
201         ResultCoreTimeOut,
202         Result::LEVEL_STATUS,   Result::SUMMARY_CANCELLED,        Result::MODULE_NN_FRIENDS,
203         DESCRIPTION_CORE_TIMEOUT
204     );
205 
206     /*!
207         @class nn::friends::ResultCoreCallInitiationFailure
208         @brief リモートメソッドコールの開始に失敗したことを示します。認証トークンがあり、かつインターネットに接続できない場合に発生します。
209     */
210     NN_DEFINE_RESULT_CONST(
211         ResultCoreCallInitiationFailure,
212         Result::LEVEL_STATUS,   Result::SUMMARY_INTERNAL,         Result::MODULE_NN_FRIENDS,
213         DESCRIPTION_CORE_CALL_INITIATION_FAILURE
214     );
215 
216     /*!
217         @class nn::friends::ResultTransportConnectionFailure
218         @brief フレンドサーバからの応答がなかったことを示します。非同期処理が強制終了されたときにも発生します。
219     */
220     NN_DEFINE_RESULT_CONST(
221         ResultTransportConnectionFailure,
222         Result::LEVEL_STATUS,   Result::SUMMARY_INTERNAL,         Result::MODULE_NN_FRIENDS,
223         DESCRIPTION_TRANSPORT_CONNECTION_FAILURE
224     );
225 
226 
227     /*!
228         @class nn::friends::ResultRmcNotCalled
229         @brief オフライン状態や前回の送信から間もないために、その時点ではサーバに送信されなかったことを示します。
230                通常、ハンドリングの必要はありません。
231     */
232     NN_DEFINE_RESULT_CONST(
233         ResultRmcNotCalled,
234         Result::LEVEL_SUCCESS,   Result::SUMMARY_SUCCESS,          Result::MODULE_NN_FRIENDS,
235         DESCRIPTION_RMC_NOT_CALLED
236     );
237 
238     /*!
239         :private
240         @class nn::friends::ResultDaemonNotInitialized
241         @brief デーモン内部で初期化処理に失敗したときに返ります。デーモン外に返ることはありません。
242     */
243     NN_DEFINE_RESULT_CONST(
244         ResultDaemonNotInitialized,
245         Result::LEVEL_STATUS,    Result::SUMMARY_INVALID_STATE,    Result::MODULE_NN_FRIENDS,
246         DESCRIPTION_DAEMON_NOT_INITIALIZED
247     );
248 
249     /*!
250         :private
251         @class nn::friends::ResultDaemonAlreadyInitialized
252         @brief デーモン内部で初期化処理が重複したときに返ります。デーモン外に返ることはありません。
253     */
254     NN_DEFINE_RESULT_CONST(
255         ResultDaemonAlreadyInitialized,
256         Result::LEVEL_STATUS,    Result::SUMMARY_INVALID_STATE,    Result::MODULE_NN_FRIENDS,
257         DESCRIPTION_DAEMON_ALREADY_INITIALIZED
258     );
259 
260     /*!
261         :private
262         @class nn::friends::ResultNotConnected
263         @brief デーモン内部で、オフライン状態のためオンライン機能を利用できないことを示します。
264                ライブラリではログイン状態を別途管理しているので、この結果が返ることはありません。
265     */
266     NN_DEFINE_RESULT_CONST(
267         ResultNotConnected,
268         Result::LEVEL_PERMANENT, Result::SUMMARY_INVALID_STATE,    Result::MODULE_NN_FRIENDS,
269         DESCRIPTION_NOT_CONNECTED
270     );
271 
272     /*!
273         :private
274         @class nn::friends::ResultConnected
275         @brief デーモン内部で、オンライン状態で重ねてログインしようとしたことを示します。
276                ライブラリではログイン状態を別途管理しているので、この結果が返ることはありません。
277     */
278     NN_DEFINE_RESULT_CONST(
279         ResultConnected,
280         Result::LEVEL_PERMANENT, Result::SUMMARY_INVALID_STATE,    Result::MODULE_NN_FRIENDS,
281         DESCRIPTION_CONNECTED
282     );
283 
284     /*!
285         @class nn::friends::ResultInitializationFailure
286         @brief 非同期処理の初期化に失敗したことを示します。
287     */
288     NN_DEFINE_RESULT_CONST(
289         ResultInitializationFailure,
290         Result::LEVEL_STATUS,    Result::SUMMARY_INTERNAL,         Result::MODULE_NN_FRIENDS,
291         DESCRIPTION_INITIALIZATION_FAILURE
292     );
293 
294     /*!
295         :private
296         @class nn::friends::ResultOutOfMemory
297         @brief デーモン内部でメモリが足りなくてバッファの確保に失敗したことを示します。
298     */
299     NN_DEFINE_RESULT_CONST(
300         ResultOutOfMemory,
301         Result::LEVEL_STATUS,    Result::SUMMARY_OUT_OF_RESOURCE,  Result::MODULE_NN_FRIENDS,
302         DESCRIPTION_OUT_OF_MEMORY
303     );
304 
305     /*!
306         :private
307         @class nn::friends::ResultRmcFailed
308         @brief デーモン内部でリモートメソッドコールの呼び出しに失敗したことを示します。
309     */
310     NN_DEFINE_RESULT_CONST(
311         ResultRmcFailed,
312         Result::LEVEL_PERMANENT, Result::SUMMARY_CANCELLED,        Result::MODULE_NN_FRIENDS,
313         DESCRIPTION_RMC_FAILED
314     );
315 
316     /*!
317         @class nn::friends::ResultInvalidArgument
318         @brief 指定した引数が無効な値だったことを示します。
319     */
320     NN_DEFINE_RESULT_CONST(
321         ResultInvalidArgument,
322         Result::LEVEL_USAGE,     Result::SUMMARY_INVALID_ARGUMENT, Result::MODULE_NN_FRIENDS,
323         DESCRIPTION_INVALID_ARGUMENT
324     );
325 
326     /*!
327         :private
328         @class nn::friends::ResultInvalidLocalAccountId
329         @brief 指定したローカルアカウント番号が無効だったことを示します。
330     */
331     NN_DEFINE_RESULT_CONST(
332         ResultInvalidLocalAccountId,
333         Result::LEVEL_USAGE,     Result::SUMMARY_INVALID_ARGUMENT, Result::MODULE_NN_FRIENDS,
334         DESCRIPTION_INVALID_LOCAL_ACCOUNT_ID
335     );
336 
337     /*!
338         @class nn::friends::ResultInvalidPrincipalId
339         @brief 指定したプリンシパル ID が無効だったことを示します。
340     */
341     NN_DEFINE_RESULT_CONST(
342         ResultInvalidPrincipalId,
343         Result::LEVEL_USAGE,     Result::SUMMARY_INVALID_ARGUMENT, Result::MODULE_NN_FRIENDS,
344         DESCRIPTION_INVALID_PRINCIPAL_ID
345     );
346 
347     /*!
348         @class nn::friends::ResultInvalidLocalFriendCode
349         @brief 指定したローカルフレンドコードが無効だったことを示します。
350     */
351     NN_DEFINE_RESULT_CONST(
352         ResultInvalidLocalFriendCode,
353         Result::LEVEL_USAGE,     Result::SUMMARY_INVALID_ARGUMENT, Result::MODULE_NN_FRIENDS,
354         DESCRIPTION_INVALID_LOCAL_FRIEND_CODE
355     );
356 
357     /*!
358         :private
359         @class nn::friends::ResultLocalAccountNotExists
360         @brief 指定した番号のアカウントは存在しないことを示します。
361     */
362     NN_DEFINE_RESULT_CONST(
363         ResultLocalAccountNotExists,
364         Result::LEVEL_STATUS,    Result::SUMMARY_NOT_FOUND,        Result::MODULE_NN_FRIENDS,
365         DESCRIPTION_LOCAL_ACCOUNT_NOT_EXISTS
366     );
367 
368     /*!
369         @class nn::friends::ResultLocalAccountNotLoaded
370         @brief 何らかの原因により、デーモンにアカウントが読み込まれていません。
371                この状態では、フレンド・プレゼンスライブラリのほとんどの API は使用できません。
372     */
373     NN_DEFINE_RESULT_CONST(
374         ResultLocalAccountNotLoaded,
375         Result::LEVEL_STATUS,    Result::SUMMARY_INVALID_STATE,    Result::MODULE_NN_FRIENDS,
376         DESCRIPTION_LOCAL_ACCOUNT_NOT_LOADED
377     );
378 
379     /*!
380         :private
381         @class nn::friends::ResultLocalAccountAlreadyLoaded
382         @brief すでにアカウントが読み込まれた状態で重ねてアカウントを読み込もうとしたことを示します。
383     */
384     NN_DEFINE_RESULT_CONST(
385         ResultLocalAccountAlreadyLoaded,
386         Result::LEVEL_PERMANENT, Result::SUMMARY_INVALID_STATE,    Result::MODULE_NN_FRIENDS,
387         DESCRIPTION_LOCAL_ACCOUNT_ALREADY_LOADED
388     );
389 
390     /*!
391         :private
392         @class nn::friends::ResultFriendAlreadyExists
393         @brief 追加しようとしたフレンドがすでにフレンドリストに登録されていることを示します。
394     */
395     NN_DEFINE_RESULT_CONST(
396         ResultFriendAlreadyExists,
397         Result::LEVEL_PERMANENT, Result::SUMMARY_WRONG_ARGUMENT,   Result::MODULE_NN_FRIENDS,
398         DESCRIPTION_FRIEND_ALREADY_EXISTS
399     );
400 
401     /*!
402         @class nn::friends::ResultFriendNotExists
403         @brief 指定した相手がフレンドリストに登録されていないことを示します。
404     */
405     NN_DEFINE_RESULT_CONST(
406         ResultFriendNotExists,
407         Result::LEVEL_PERMANENT, Result::SUMMARY_WRONG_ARGUMENT,   Result::MODULE_NN_FRIENDS,
408         DESCRIPTION_FRIEND_NOT_EXISTS
409     );
410 
411     /*!
412         :private
413         @class nn::friends::ResultFriendNumMax
414         @brief フレンドリストがいっぱいでフレンドが追加できなかったことを示します。
415     */
416     NN_DEFINE_RESULT_CONST(
417         ResultFriendNumMax,
418         Result::LEVEL_PERMANENT, Result::SUMMARY_OUT_OF_RESOURCE,  Result::MODULE_NN_FRIENDS,
419         DESCRIPTION_FRIEND_NUM_MAX
420     );
421 
422     /*!
423         @class nn::friends::ResultNotFriend
424         @brief 指定した相手とはまだフレンド関係が成立していないことを示します。
425     */
426     NN_DEFINE_RESULT_CONST(
427         ResultNotFriend,
428         Result::LEVEL_PERMANENT, Result::SUMMARY_WRONG_ARGUMENT,   Result::MODULE_NN_FRIENDS,
429         DESCRIPTION_NOT_FRIEND
430     );
431 
432     /*!
433         :private
434         @class nn::friends::ResultFileIoError
435         @brief デーモン内のファイルアクセスで失敗したことを示します。
436     */
437     NN_DEFINE_RESULT_CONST(
438         ResultFileIoError,
439         Result::LEVEL_PERMANENT, Result::SUMMARY_INTERNAL,         Result::MODULE_NN_FRIENDS,
440         DESCRIPTION_FILE_IO_ERROR
441     );
442 
443     /*!
444         @class nn::friends::ResultP2pInternetProhibited
445         @brief ペアレンタルコントロールによってフレンド間通信が禁止されていることを示します。
446     */
447     NN_DEFINE_RESULT_CONST(
448         ResultP2pInternetProhibited,
449         Result::LEVEL_PERMANENT, Result::SUMMARY_INVALID_STATE,    Result::MODULE_NN_FRIENDS,
450         DESCRIPTION_P2P_INTERNET_PROHIBITED
451     );
452 
453     /*!
454         :private
455         @class nn::friends::ResultUnknown
456         @brief 不明な結果です。
457     */
458     NN_DEFINE_RESULT_CONST(
459         ResultUnknown,
460         Result::LEVEL_STATUS,    Result::SUMMARY_INTERNAL,         Result::MODULE_NN_FRIENDS,
461         DESCRIPTION_UNKNOWN
462     );
463 
464 
465     /*!
466         @class nn::friends::ResultNasAuthenticationError
467         @brief 認証サーバから拒否応答が返ってきたことを示します。
468     */
469     NN_DEFINE_RESULT_CONST(
470         ResultNasAuthenticationError,
471         Result::LEVEL_STATUS,    Result::SUMMARY_INTERNAL,         Result::MODULE_NN_FRIENDS,
472         DESCRIPTION_AUTHENTICATION_NAS_AUTHENTICATE_ERROR
473     );
474 
475     /*!
476         @class nn::friends::ResultAuthenticationTokenParseError
477         @brief 認証サーバからの応答を正しく解釈できなかったことを示します。
478     */
479     NN_DEFINE_RESULT_CONST(
480         ResultAuthenticationTokenParseError,
481         Result::LEVEL_STATUS,    Result::SUMMARY_INTERNAL,         Result::MODULE_NN_FRIENDS,
482         DESCRIPTION_AUTHENTICATION_TOKEN_PARSE_ERROR
483     );
484 
485     /*!
486         @class nn::friends::ResultAuthenticationHttpConnectionError
487         @brief 認証サーバへの接続に失敗したことを示します。
488     */
489     NN_DEFINE_RESULT_CONST(
490         ResultAuthenticationHttpConnectionError,
491         Result::LEVEL_STATUS,    Result::SUMMARY_INTERNAL,         Result::MODULE_NN_FRIENDS,
492         DESCRIPTION_AUTHENTICATION_HTTP_CONNECTION_ERROR
493     );
494 
495     /*!
496         @class nn::friends::ResultAuthenticationDnsError
497         @brief 認証サーバの名前解決に失敗したことを示します。アクセスポイントに接続できていない場合にも発生します。
498     */
499     NN_DEFINE_RESULT_CONST(
500         ResultAuthenticationDnsError,
501         Result::LEVEL_STATUS,    Result::SUMMARY_INTERNAL,         Result::MODULE_NN_FRIENDS,
502         DESCRIPTION_AUTHENTICATION_HTTP_DNS_ERROR
503     );
504 
505     /*!
506         @class nn::friends::ResultAuthenticationHttpGetProxySetting
507         @brief 機器に設定されている Proxy 値の取得に失敗したことを示します。
508     */
509     NN_DEFINE_RESULT_CONST(
510         ResultAuthenticationHttpGetProxySetting,
511         Result::LEVEL_STATUS,    Result::SUMMARY_INTERNAL,         Result::MODULE_NN_FRIENDS,
512         DESCRIPTION_AUTHENTICATION_HTTP_GET_PROXY_SETTING
513     );
514 
515     /*!
516         :private
517         @class nn::friends::ResultAuthenticationTokenExpired
518         @brief 認証トークンの有効期間を失効したことを示します。この場合、自動で再認証処理を行うため、このエラーは発生しません。
519     */
520     NN_DEFINE_RESULT_CONST(
521         ResultAuthenticationTokenExpired,
522         Result::LEVEL_STATUS,    Result::SUMMARY_INTERNAL,         Result::MODULE_NN_FRIENDS,
523         DESCRIPTION_AUTHENTICATION_TOKEN_EXPIRED
524     );
525 
526     /*!
527         @class nn::friends::ResultAuthenticationValidationFailed
528         @brief フレンドサーバでの認証トークンの検証に失敗したことを示します。
529     */
530     NN_DEFINE_RESULT_CONST(
531         ResultAuthenticationValidationFailed,
532         Result::LEVEL_STATUS,    Result::SUMMARY_INTERNAL,         Result::MODULE_NN_FRIENDS,
533         DESCRIPTION_AUTHENTICATION_VALIDATION_FAILED
534     );
535 
536     /*!
537         @class nn::friends::ResultAuthenticationInvalidParam
538         @brief フレンドサーバでの認証トークンの検証に失敗したことを示します。
539     */
540     NN_DEFINE_RESULT_CONST(
541         ResultAuthenticationInvalidParam,
542         Result::LEVEL_STATUS,    Result::SUMMARY_INTERNAL,         Result::MODULE_NN_FRIENDS,
543         DESCRIPTION_AUTHENTICATION_INVALID_PARAM
544     );
545 
546     /*!
547         @class nn::friends::ResultAuthenticationPrincipalIdUnmatched
548         @brief 認証トークンに含まれたプリンシパル ID と自分のプリンシパル ID が一致していないことを示します。
549     */
550     NN_DEFINE_RESULT_CONST(
551         ResultAuthenticationPrincipalIdUnmatched,
552         Result::LEVEL_STATUS,    Result::SUMMARY_INTERNAL,         Result::MODULE_NN_FRIENDS,
553         DESCRIPTION_AUTHENTICATION_PRINCIPAL_ID_UNMATCHED
554     );
555 
556     /*!
557         @class nn::friends::ResultAuthenticationMoveCountUnmatch
558         @brief アカウントの引越しを行ったことにより、アカウントが不正状態になったことを示します。
559     */
560     NN_DEFINE_RESULT_CONST(
561         ResultAuthenticationMoveCountUnmatch,
562         Result::LEVEL_STATUS,    Result::SUMMARY_INTERNAL,         Result::MODULE_NN_FRIENDS,
563         DESCRIPTION_AUTHENTICATION_MOVE_COUNT_UNMATCH
564     );
565 
566     /*!
567         @class nn::friends::ResultAuthenticationUnderMaintenance
568         @brief フレンドサーバがメンテナンス中であり、オンライン機能を利用できないことを示します。
569     */
570     NN_DEFINE_RESULT_CONST(
571         ResultAuthenticationUnderMaintenance,
572         Result::LEVEL_STATUS,    Result::SUMMARY_INTERNAL,         Result::MODULE_NN_FRIENDS,
573         DESCRIPTION_AUTHENTICATION_UNDER_MAINTENANCE
574     );
575 
576     /*!
577         @class nn::friends::ResultAuthenticationUnsupportedVersion
578         @brief フレンドサーバがサポートしていないバージョンであることを示します。
579     */
580     NN_DEFINE_RESULT_CONST(
581         ResultAuthenticationUnsupportedVersion,
582         Result::LEVEL_STATUS,    Result::SUMMARY_INTERNAL,         Result::MODULE_NN_FRIENDS,
583         DESCRIPTION_AUTHENTICATION_UNSUPPORTED_VERSION
584     );
585 
586     /*!
587         :private
588         @class nn::friends::ResultAuthenticationUnknown
589         @brief 認証処理による未定義のエラーです。
590     */
591     NN_DEFINE_RESULT_CONST(
592         ResultAuthenticationUnknown,
593         Result::LEVEL_STATUS,    Result::SUMMARY_INTERNAL,         Result::MODULE_NN_FRIENDS,
594         DESCRIPTION_AUTHENTICATION_UNKNOWN
595     );
596 
597     /*!
598         :private
599         @class nn::friends::ResultAuthenticationUndefined
600         @brief 認証処理による未定義のエラーです。
601     */
602     NN_DEFINE_RESULT_CONST(
603         ResultAuthenticationUndefined,
604         Result::LEVEL_STATUS,    Result::SUMMARY_INTERNAL,         Result::MODULE_NN_FRIENDS,
605         DESCRIPTION_AUTHENTICATION_UNDEFINED
606     );
607 
608 
609     /*!
610         :private
611         @class nn::friends::ResultInvalidFriendCode
612         @brief 指定したフレンドコードが無効だったことを示します。
613     */
614     NN_DEFINE_RESULT_CONST(
615         ResultInvalidFriendCode,
616         Result::LEVEL_USAGE,     Result::SUMMARY_INVALID_ARGUMENT, Result::MODULE_NN_FRIENDS,
617         DESCRIPTION_INVALID_FRIEND_CODE
618     );
619 
620     /*!
621         @class nn::friends::ResultNotLoggedIn
622         @brief 事前にログインが必要な API をログインせずに呼んだことを示します。
623     */
624     NN_DEFINE_RESULT_CONST(
625         ResultNotLoggedIn,
626         Result::LEVEL_PERMANENT, Result::SUMMARY_INVALID_STATE,    Result::MODULE_NN_FRIENDS,
627         DESCRIPTION_NOT_LOGGED_IN
628     );
629 
630     /*!
631         @class nn::friends::ResultNotFriendsResult
632         @brief 指定した @ref nn::Result はフレンド・プレゼンスライブラリが返したものではないことを示します。
633     */
634     NN_DEFINE_RESULT_CONST(
635         ResultNotFriendsResult,
636         Result::LEVEL_USAGE,     Result::SUMMARY_INVALID_ARGUMENT, Result::MODULE_NN_FRIENDS,
637         DESCRIPTION_NOT_FRIENDS_RESULT
638     );
639 
640     /*!
641         @class nn::friends::ResultUndefinedFacilitySuccess
642         @brief カテゴリ不明な処理の成功を示します。
643     */
644     NN_DEFINE_RESULT_CONST(
645         ResultUndefinedFacilitySuccess,
646         Result::LEVEL_SUCCESS,   Result::SUMMARY_SUCCESS,          Result::MODULE_NN_FRIENDS,
647         DESCRIPTION_UNDEFINED_FACILITY
648     );
649 
650     /*!
651         @class nn::friends::ResultUndefinedFacilityFailure
652         @brief カテゴリ不明な処理の失敗を示します。
653     */
654     NN_DEFINE_RESULT_CONST(
655         ResultUndefinedFacilityFailure,
656         Result::LEVEL_PERMANENT, Result::SUMMARY_INTERNAL,         Result::MODULE_NN_FRIENDS,
657         DESCRIPTION_UNDEFINED_FACILITY
658     );
659 
660     /*!
661         @class nn::friends::ResultAcNotConnected
662         @brief AC への接続要求を出さずに @ref nn::friends::CTR::Login を呼んだことを示します。
663     */
664     NN_DEFINE_RESULT_CONST(
665         ResultAcNotConnected,
666         Result::LEVEL_PERMANENT, Result::SUMMARY_INVALID_STATE,    Result::MODULE_NN_FRIENDS,
667         DESCRIPTION_AC_NOT_CONNECTED
668     );
669 
670 
671     /*!
672         @class nn::friends::ResultNotInitialized
673         @brief フレンド・プレゼンスライブラリを初期化せずに API を使用したことを示します。
674     */
675     NN_DEFINE_RESULT_CONST(
676         ResultNotInitialized,
677         Result::LEVEL_PERMANENT, Result::SUMMARY_INVALID_STATE,    Result::MODULE_NN_FRIENDS,
678         Result::DESCRIPTION_NOT_INITIALIZED
679     );
680 
681     /*!
682         @class nn::friends::ResultInvalidHandle
683         @brief 指定したカーネルオブジェクトのハンドルが無効だったことを示します。主に @ref nn::os::Event を初期化せずに渡したときに発生します。
684     */
685     NN_DEFINE_RESULT_CONST(
686         ResultInvalidHandle,
687         Result::LEVEL_USAGE,     Result::SUMMARY_INVALID_ARGUMENT, Result::MODULE_NN_FRIENDS,
688         Result::DESCRIPTION_INVALID_HANDLE
689     );
690 
691     /*!
692         @class nn::friends::ResultInvalidPointer
693         @brief 指定したポインタが無効だったことを示します。
694     */
695     NN_DEFINE_RESULT_CONST(
696         ResultInvalidPointer,
697         Result::LEVEL_USAGE,     Result::SUMMARY_INVALID_ARGUMENT, Result::MODULE_NN_FRIENDS,
698         Result::DESCRIPTION_INVALID_POINTER
699     );
700 
701     /*!
702         @class nn::friends::ResultTooLarge
703         @brief 指定した配列のサイズが大きすぎたことを示します。主にフレンドリストの最大数を超えるデータを取得しようとしたときに発生します。
704     */
705     NN_DEFINE_RESULT_CONST(
706         ResultTooLarge,
707         Result::LEVEL_USAGE,     Result::SUMMARY_INVALID_ARGUMENT, Result::MODULE_NN_FRIENDS,
708         Result::DESCRIPTION_TOO_LARGE
709     );
710 
711 
712     /*!
713         @class nn::friends::ResultAlreadyDone
714         @brief その操作がすでに実行済みで、今回は何も行われなかったことを示します。
715     */
716     NN_DEFINE_RESULT_CONST(
717         ResultAlreadyDone,
718         Result::LEVEL_SUCCESS,   Result::SUMMARY_NOTHING_HAPPENED, Result::MODULE_NN_FRIENDS,
719         Result::DESCRIPTION_ALREADY_DONE
720     );
721 
722     /*!
723         @class nn::friends::ResultTemporarilyBusy
724         @brief 内部状態が一時的にビジー状態だったことを示します。比較的短時間が経過した後に再試行することで成功する可能性があります。
725     */
726     NN_DEFINE_RESULT_CONST(
727         ResultTemporarilyBusy,
728         Result::LEVEL_STATUS,    Result::SUMMARY_INVALID_STATE,    Result::MODULE_NN_FRIENDS,
729         Result::DESCRIPTION_BUSY
730     );
731 
732 
733     /*!
734         @class nn::friends::ResultNotAuthorized
735         @brief 許可されていない操作を行ったことを示します。スリープ中に API をコールしたときに返ることがあります。
736     */
737     NN_DEFINE_RESULT_CONST(
738         ResultNotAuthorized,
739         Result::LEVEL_STATUS,    Result::SUMMARY_INVALID_STATE,    Result::MODULE_NN_FRIENDS,
740         Result::DESCRIPTION_NOT_AUTHORIZED
741     );
742 
743     /*!
744         @class nn::friends::ResultUnexpectedState
745         @brief 内部状態が不正だったことを示します。
746     */
747     NN_DEFINE_RESULT_CONST(
748         ResultUnexpectedState,
749         Result::LEVEL_STATUS,    Result::SUMMARY_INVALID_STATE,    Result::MODULE_NN_FRIENDS,
750         Result::DESCRIPTION_NOT_IMPLEMENTED
751     );
752 
753 
754     namespace detail {
MakeResult(Result::Level level,Result::Summary summary,int description)755         inline Result MakeResult(Result::Level level, Result::Summary summary, int description)
756             { return Result(level, summary, Result::MODULE_NN_FRIENDS, description); }
757 
MakeInfoResult(Result::Summary summary,int description)758         inline Result MakeInfoResult(Result::Summary summary, int description)
759             { return Result(Result::LEVEL_INFO, summary, Result::MODULE_NN_FRIENDS, description); }
MakeFatalResult(Result::Summary summary,int description)760         inline Result MakeFatalResult(Result::Summary summary, int description)
761             { return Result(Result::LEVEL_FATAL, summary, Result::MODULE_NN_FRIENDS, description); }
MakeResetResult(Result::Summary summary,int description)762         inline Result MakeResetResult(Result::Summary summary, int description)
763             { return Result(Result::LEVEL_RESET, summary, Result::MODULE_NN_FRIENDS, description); }
MakeReInitResult(Result::Summary summary,int description)764         inline Result MakeReInitResult(Result::Summary summary, int description)
765             { return Result(Result::LEVEL_REINIT, summary, Result::MODULE_NN_FRIENDS, description); }
MakeUsageResult(Result::Summary summary,int description)766         inline Result MakeUsageResult(Result::Summary summary, int description)
767             { return Result(Result::LEVEL_USAGE, summary, Result::MODULE_NN_FRIENDS, description); }
MakePermanentResult(Result::Summary summary,int description)768         inline Result MakePermanentResult(Result::Summary summary, int description)
769             { return Result(Result::LEVEL_PERMANENT, summary, Result::MODULE_NN_FRIENDS, description); }
MakeTemporaryResult(Result::Summary summary,int description)770         inline Result MakeTemporaryResult(Result::Summary summary, int description)
771             { return Result(Result::LEVEL_TEMPORARY, summary, Result::MODULE_NN_FRIENDS, description); }
MakeStatusResult(Result::Summary summary,int description)772         inline Result MakeStatusResult(Result::Summary summary, int description)
773             { return Result(Result::LEVEL_STATUS, summary, Result::MODULE_NN_FRIENDS, description); }
774     }
775 
776 } // end of namespace CTR
777     using namespace CTR;
778 } // end of namespace friends
779 } // end of namespace nn
780 
781 #endif // __cplusplus
782 
783 #endif /* NN_FRIENDS_CTR_FRIENDS_RESULT_H_ */
784