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: 35785 $
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         :private
286         @class nn::friends::ResultInitializationFailure
287         @brief 非同期処理の初期化に失敗したことを示します。
288     */
289     NN_DEFINE_RESULT_CONST(
290         ResultInitializationFailure,
291         Result::LEVEL_STATUS,    Result::SUMMARY_INTERNAL,         Result::MODULE_NN_FRIENDS,
292         DESCRIPTION_INITIALIZATION_FAILURE
293     );
294 
295     /*!
296         :private
297         @class nn::friends::ResultOutOfMemory
298         @brief デーモン内部でメモリが足りなくてバッファの確保に失敗したことを示します。
299     */
300     NN_DEFINE_RESULT_CONST(
301         ResultOutOfMemory,
302         Result::LEVEL_STATUS,    Result::SUMMARY_OUT_OF_RESOURCE,  Result::MODULE_NN_FRIENDS,
303         DESCRIPTION_OUT_OF_MEMORY
304     );
305 
306     /*!
307         :private
308         @class nn::friends::ResultRmcFailed
309         @brief デーモン内部でリモートメソッドコールの呼び出しに失敗したことを示します。
310     */
311     NN_DEFINE_RESULT_CONST(
312         ResultRmcFailed,
313         Result::LEVEL_PERMANENT, Result::SUMMARY_CANCELLED,        Result::MODULE_NN_FRIENDS,
314         DESCRIPTION_RMC_FAILED
315     );
316 
317     /*!
318         @class nn::friends::ResultInvalidArgument
319         @brief 指定した引数が無効な値だったことを示します。
320     */
321     NN_DEFINE_RESULT_CONST(
322         ResultInvalidArgument,
323         Result::LEVEL_USAGE,     Result::SUMMARY_INVALID_ARGUMENT, Result::MODULE_NN_FRIENDS,
324         DESCRIPTION_INVALID_ARGUMENT
325     );
326 
327     /*!
328         :private
329         @class nn::friends::ResultInvalidLocalAccountId
330         @brief 指定したローカルアカウント番号が無効だったことを示します。
331     */
332     NN_DEFINE_RESULT_CONST(
333         ResultInvalidLocalAccountId,
334         Result::LEVEL_USAGE,     Result::SUMMARY_INVALID_ARGUMENT, Result::MODULE_NN_FRIENDS,
335         DESCRIPTION_INVALID_LOCAL_ACCOUNT_ID
336     );
337 
338     /*!
339         :private
340         @class nn::friends::ResultInvalidPrincipalId
341         @brief 指定したプリンシパル ID が無効だったことを示します。
342     */
343     NN_DEFINE_RESULT_CONST(
344         ResultInvalidPrincipalId,
345         Result::LEVEL_USAGE,     Result::SUMMARY_INVALID_ARGUMENT, Result::MODULE_NN_FRIENDS,
346         DESCRIPTION_INVALID_PRINCIPAL_ID
347     );
348 
349     /*!
350         :private
351         @class nn::friends::ResultInvalidLocalFriendCode
352         @brief 指定したローカルフレンドコードが無効だったことを示します。
353     */
354     NN_DEFINE_RESULT_CONST(
355         ResultInvalidLocalFriendCode,
356         Result::LEVEL_USAGE,     Result::SUMMARY_INVALID_ARGUMENT, Result::MODULE_NN_FRIENDS,
357         DESCRIPTION_INVALID_LOCAL_FRIEND_CODE
358     );
359 
360     /*!
361         :private
362         @class nn::friends::ResultLocalAccountNotExists
363         @brief 指定した番号のアカウントは存在しないことを示します。
364     */
365     NN_DEFINE_RESULT_CONST(
366         ResultLocalAccountNotExists,
367         Result::LEVEL_STATUS,    Result::SUMMARY_NOT_FOUND,        Result::MODULE_NN_FRIENDS,
368         DESCRIPTION_LOCAL_ACCOUNT_NOT_EXISTS
369     );
370 
371     /*!
372         @class nn::friends::ResultLocalAccountNotLoaded
373         @brief 何らかの原因により、デーモンにアカウントが読み込まれていません。
374                この状態では、フレンド・プレゼンスライブラリのほとんどの API は使用できません。
375     */
376     NN_DEFINE_RESULT_CONST(
377         ResultLocalAccountNotLoaded,
378         Result::LEVEL_STATUS,    Result::SUMMARY_INVALID_STATE,    Result::MODULE_NN_FRIENDS,
379         DESCRIPTION_LOCAL_ACCOUNT_NOT_LOADED
380     );
381 
382     /*!
383         :private
384         @class nn::friends::ResultLocalAccountAlreadyLoaded
385         @brief すでにアカウントが読み込まれた状態で重ねてアカウントを読み込もうとしたことを示します。
386     */
387     NN_DEFINE_RESULT_CONST(
388         ResultLocalAccountAlreadyLoaded,
389         Result::LEVEL_PERMANENT, Result::SUMMARY_INVALID_STATE,    Result::MODULE_NN_FRIENDS,
390         DESCRIPTION_LOCAL_ACCOUNT_ALREADY_LOADED
391     );
392 
393     /*!
394         :private
395         @class nn::friends::ResultFriendAlreadyExists
396         @brief 追加しようとしたフレンドがすでにフレンドリストに登録されていることを示します。
397     */
398     NN_DEFINE_RESULT_CONST(
399         ResultFriendAlreadyExists,
400         Result::LEVEL_PERMANENT, Result::SUMMARY_WRONG_ARGUMENT,   Result::MODULE_NN_FRIENDS,
401         DESCRIPTION_FRIEND_ALREADY_EXISTS
402     );
403 
404     /*!
405         :private
406         @class nn::friends::ResultFriendNotExists
407         @brief 指定した相手がフレンドリストに登録されていないことを示します。
408     */
409     NN_DEFINE_RESULT_CONST(
410         ResultFriendNotExists,
411         Result::LEVEL_PERMANENT, Result::SUMMARY_WRONG_ARGUMENT,   Result::MODULE_NN_FRIENDS,
412         DESCRIPTION_FRIEND_NOT_EXISTS
413     );
414 
415     /*!
416         :private
417         @class nn::friends::ResultFriendNumMax
418         @brief フレンドリストがいっぱいでフレンドが追加できなかったことを示します。
419     */
420     NN_DEFINE_RESULT_CONST(
421         ResultFriendNumMax,
422         Result::LEVEL_PERMANENT, Result::SUMMARY_OUT_OF_RESOURCE,  Result::MODULE_NN_FRIENDS,
423         DESCRIPTION_FRIEND_NUM_MAX
424     );
425 
426     /*!
427         :private
428         @class nn::friends::ResultNotFriend
429         @brief 指定した相手とはまだフレンド関係が成立していないことを示します。
430     */
431     NN_DEFINE_RESULT_CONST(
432         ResultNotFriend,
433         Result::LEVEL_PERMANENT, Result::SUMMARY_WRONG_ARGUMENT,   Result::MODULE_NN_FRIENDS,
434         DESCRIPTION_NOT_FRIEND
435     );
436 
437     /*!
438         :private
439         @class nn::friends::ResultFileIoError
440         @brief デーモン内のファイルアクセスで失敗したことを示します。
441     */
442     NN_DEFINE_RESULT_CONST(
443         ResultFileIoError,
444         Result::LEVEL_PERMANENT, Result::SUMMARY_INTERNAL,         Result::MODULE_NN_FRIENDS,
445         DESCRIPTION_FILE_IO_ERROR
446     );
447 
448     /*!
449         @class nn::friends::ResultP2pInternetProhibited
450         @brief ペアレンタルコントロールによってフレンド間通信が禁止されていることを示します。
451     */
452     NN_DEFINE_RESULT_CONST(
453         ResultP2pInternetProhibited,
454         Result::LEVEL_PERMANENT, Result::SUMMARY_INVALID_STATE,    Result::MODULE_NN_FRIENDS,
455         DESCRIPTION_P2P_INTERNET_PROHIBITED
456     );
457 
458     /*!
459         :private
460         @class nn::friends::ResultUnknown
461         @brief 不明な結果です。
462     */
463     NN_DEFINE_RESULT_CONST(
464         ResultUnknown,
465         Result::LEVEL_STATUS,    Result::SUMMARY_INTERNAL,         Result::MODULE_NN_FRIENDS,
466         DESCRIPTION_UNKNOWN
467     );
468 
469 
470     /*!
471         @class nn::friends::ResultNasAuthenticationError
472         @brief 認証サーバから拒否応答が返ってきたことを示します。
473     */
474     NN_DEFINE_RESULT_CONST(
475         ResultNasAuthenticationError,
476         Result::LEVEL_STATUS,    Result::SUMMARY_INTERNAL,         Result::MODULE_NN_FRIENDS,
477         DESCRIPTION_AUTHENTICATION_NAS_AUTHENTICATE_ERROR
478     );
479 
480     /*!
481         @class nn::friends::ResultAuthenticationTokenParseError
482         @brief 認証サーバからの応答を正しく解釈できなかったことを示します。
483     */
484     NN_DEFINE_RESULT_CONST(
485         ResultAuthenticationTokenParseError,
486         Result::LEVEL_STATUS,    Result::SUMMARY_INTERNAL,         Result::MODULE_NN_FRIENDS,
487         DESCRIPTION_AUTHENTICATION_TOKEN_PARSE_ERROR
488     );
489 
490     /*!
491         @class nn::friends::ResultAuthenticationHttpConnectionError
492         @brief 認証サーバへの接続に失敗したことを示します。
493     */
494     NN_DEFINE_RESULT_CONST(
495         ResultAuthenticationHttpConnectionError,
496         Result::LEVEL_STATUS,    Result::SUMMARY_INTERNAL,         Result::MODULE_NN_FRIENDS,
497         DESCRIPTION_AUTHENTICATION_HTTP_CONNECTION_ERROR
498     );
499 
500     /*!
501         @class nn::friends::ResultAuthenticationDnsError
502         @brief 認証サーバの名前解決に失敗したことを示します。アクセスポイントに接続できていない場合にも発生します。
503     */
504     NN_DEFINE_RESULT_CONST(
505         ResultAuthenticationDnsError,
506         Result::LEVEL_STATUS,    Result::SUMMARY_INTERNAL,         Result::MODULE_NN_FRIENDS,
507         DESCRIPTION_AUTHENTICATION_HTTP_DNS_ERROR
508     );
509 
510     /*!
511         @class nn::friends::ResultAuthenticationHttpGetProxySetting
512         @brief 機器に設定されている Proxy 値の取得に失敗したことを示します。
513     */
514     NN_DEFINE_RESULT_CONST(
515         ResultAuthenticationHttpGetProxySetting,
516         Result::LEVEL_STATUS,    Result::SUMMARY_INTERNAL,         Result::MODULE_NN_FRIENDS,
517         DESCRIPTION_AUTHENTICATION_HTTP_GET_PROXY_SETTING
518     );
519 
520     /*!
521         :private
522         @class nn::friends::ResultAuthenticationTokenExpired
523         @brief 認証トークンの有効期間を失効したことを示します。この場合、自動で再認証処理を行うため、このエラーは発生しません。
524     */
525     NN_DEFINE_RESULT_CONST(
526         ResultAuthenticationTokenExpired,
527         Result::LEVEL_STATUS,    Result::SUMMARY_INTERNAL,         Result::MODULE_NN_FRIENDS,
528         DESCRIPTION_AUTHENTICATION_TOKEN_EXPIRED
529     );
530 
531     /*!
532         @class nn::friends::ResultAuthenticationValidationFailed
533         @brief フレンドサーバでの認証トークンの検証に失敗したことを示します。
534     */
535     NN_DEFINE_RESULT_CONST(
536         ResultAuthenticationValidationFailed,
537         Result::LEVEL_STATUS,    Result::SUMMARY_INTERNAL,         Result::MODULE_NN_FRIENDS,
538         DESCRIPTION_AUTHENTICATION_VALIDATION_FAILED
539     );
540 
541     /*!
542         @class nn::friends::ResultAuthenticationInvalidParam
543         @brief フレンドサーバでの認証トークンの検証に失敗したことを示します。
544     */
545     NN_DEFINE_RESULT_CONST(
546         ResultAuthenticationInvalidParam,
547         Result::LEVEL_STATUS,    Result::SUMMARY_INTERNAL,         Result::MODULE_NN_FRIENDS,
548         DESCRIPTION_AUTHENTICATION_INVALID_PARAM
549     );
550 
551     /*!
552         @class nn::friends::ResultAuthenticationPrincipalIdUnmatched
553         @brief 認証トークンに含まれたプリンシパル ID と自分のプリンシパル ID が一致していないことを示します。
554     */
555     NN_DEFINE_RESULT_CONST(
556         ResultAuthenticationPrincipalIdUnmatched,
557         Result::LEVEL_STATUS,    Result::SUMMARY_INTERNAL,         Result::MODULE_NN_FRIENDS,
558         DESCRIPTION_AUTHENTICATION_PRINCIPAL_ID_UNMATCHED
559     );
560 
561     /*!
562         @class nn::friends::ResultAuthenticationMoveCountUnmatch
563         @brief アカウントの引越しを行ったことにより、アカウントが不正状態になったことを示します。
564     */
565     NN_DEFINE_RESULT_CONST(
566         ResultAuthenticationMoveCountUnmatch,
567         Result::LEVEL_STATUS,    Result::SUMMARY_INTERNAL,         Result::MODULE_NN_FRIENDS,
568         DESCRIPTION_AUTHENTICATION_MOVE_COUNT_UNMATCH
569     );
570 
571     /*!
572         @class nn::friends::ResultAuthenticationUnderMaintenance
573         @brief フレンドサーバがメンテナンス中であり、オンライン機能を利用できないことを示します。
574     */
575     NN_DEFINE_RESULT_CONST(
576         ResultAuthenticationUnderMaintenance,
577         Result::LEVEL_STATUS,    Result::SUMMARY_INTERNAL,         Result::MODULE_NN_FRIENDS,
578         DESCRIPTION_AUTHENTICATION_UNDER_MAINTENANCE
579     );
580 
581     /*!
582         @class nn::friends::ResultAuthenticationUnsupportedVersion
583         @brief フレンドサーバがサポートしていないバージョンであることを示します。
584     */
585     NN_DEFINE_RESULT_CONST(
586         ResultAuthenticationUnsupportedVersion,
587         Result::LEVEL_STATUS,    Result::SUMMARY_INTERNAL,         Result::MODULE_NN_FRIENDS,
588         DESCRIPTION_AUTHENTICATION_UNSUPPORTED_VERSION
589     );
590 
591     /*!
592         :private
593         @class nn::friends::ResultAuthenticationUnknown
594         @brief 認証処理による未定義のエラーです。
595     */
596     NN_DEFINE_RESULT_CONST(
597         ResultAuthenticationUnknown,
598         Result::LEVEL_STATUS,    Result::SUMMARY_INTERNAL,         Result::MODULE_NN_FRIENDS,
599         DESCRIPTION_AUTHENTICATION_UNKNOWN
600     );
601 
602     /*!
603         :private
604         @class nn::friends::ResultAuthenticationUndefined
605         @brief 認証処理による未定義のエラーです。
606     */
607     NN_DEFINE_RESULT_CONST(
608         ResultAuthenticationUndefined,
609         Result::LEVEL_STATUS,    Result::SUMMARY_INTERNAL,         Result::MODULE_NN_FRIENDS,
610         DESCRIPTION_AUTHENTICATION_UNDEFINED
611     );
612 
613 
614     /*!
615         :private
616         @class nn::friends::ResultInvalidFriendCode
617         @brief 指定したフレンドコードが無効だったことを示します。
618     */
619     NN_DEFINE_RESULT_CONST(
620         ResultInvalidFriendCode,
621         Result::LEVEL_USAGE,     Result::SUMMARY_INVALID_ARGUMENT, Result::MODULE_NN_FRIENDS,
622         DESCRIPTION_INVALID_FRIEND_CODE
623     );
624 
625     /*!
626         :private
627         @class nn::friends::ResultNotLoggedIn
628         @brief 事前にログインが必要な API をログインせずに呼んだことを示します。
629     */
630     NN_DEFINE_RESULT_CONST(
631         ResultNotLoggedIn,
632         Result::LEVEL_PERMANENT, Result::SUMMARY_INVALID_STATE,    Result::MODULE_NN_FRIENDS,
633         DESCRIPTION_NOT_LOGGED_IN
634     );
635 
636     /*!
637         :private
638         @class nn::friends::ResultNotFriendsResult
639         @brief 指定した @ref nn::Result はフレンド・プレゼンスライブラリが返したものではないことを示します。
640     */
641     NN_DEFINE_RESULT_CONST(
642         ResultNotFriendsResult,
643         Result::LEVEL_USAGE,     Result::SUMMARY_INVALID_ARGUMENT, Result::MODULE_NN_FRIENDS,
644         DESCRIPTION_NOT_FRIENDS_RESULT
645     );
646 
647     /*!
648         :private
649         @class nn::friends::ResultUndefinedFacilitySuccess
650         @brief カテゴリ不明な処理の成功を示します。
651     */
652     NN_DEFINE_RESULT_CONST(
653         ResultUndefinedFacilitySuccess,
654         Result::LEVEL_SUCCESS,   Result::SUMMARY_SUCCESS,          Result::MODULE_NN_FRIENDS,
655         DESCRIPTION_UNDEFINED_FACILITY
656     );
657 
658     /*!
659         :private
660         @class nn::friends::ResultUndefinedFacilityFailure
661         @brief カテゴリ不明な処理の失敗を示します。
662     */
663     NN_DEFINE_RESULT_CONST(
664         ResultUndefinedFacilityFailure,
665         Result::LEVEL_PERMANENT, Result::SUMMARY_INTERNAL,         Result::MODULE_NN_FRIENDS,
666         DESCRIPTION_UNDEFINED_FACILITY
667     );
668 
669     /*!
670         @class nn::friends::ResultAcNotConnected
671         @brief AC への接続要求を出さずに @ref nn::friends::CTR::Login を呼んだことを示します。
672     */
673     NN_DEFINE_RESULT_CONST(
674         ResultAcNotConnected,
675         Result::LEVEL_PERMANENT, Result::SUMMARY_INVALID_STATE,    Result::MODULE_NN_FRIENDS,
676         DESCRIPTION_AC_NOT_CONNECTED
677     );
678 
679 
680     /*!
681         @class nn::friends::ResultNotInitialized
682         @brief フレンド・プレゼンスライブラリを初期化せずに API を使用したことを示します。
683     */
684     NN_DEFINE_RESULT_CONST(
685         ResultNotInitialized,
686         Result::LEVEL_PERMANENT, Result::SUMMARY_INVALID_STATE,    Result::MODULE_NN_FRIENDS,
687         Result::DESCRIPTION_NOT_INITIALIZED
688     );
689 
690     /*!
691         @class nn::friends::ResultInvalidHandle
692         @brief 指定したカーネルオブジェクトのハンドルが無効だったことを示します。主に @ref nn::os::Event を初期化せずに渡したときに発生します。
693     */
694     NN_DEFINE_RESULT_CONST(
695         ResultInvalidHandle,
696         Result::LEVEL_USAGE,     Result::SUMMARY_INVALID_ARGUMENT, Result::MODULE_NN_FRIENDS,
697         Result::DESCRIPTION_INVALID_HANDLE
698     );
699 
700     /*!
701         @class nn::friends::ResultInvalidPointer
702         @brief 指定したポインタが無効だったことを示します。
703     */
704     NN_DEFINE_RESULT_CONST(
705         ResultInvalidPointer,
706         Result::LEVEL_USAGE,     Result::SUMMARY_INVALID_ARGUMENT, Result::MODULE_NN_FRIENDS,
707         Result::DESCRIPTION_INVALID_POINTER
708     );
709 
710     /*!
711         @class nn::friends::ResultTooLarge
712         @brief 指定した配列のサイズが大きすぎたことを示します。主にフレンドリストの最大数を超えるデータを取得しようとしたときに発生します。
713     */
714     NN_DEFINE_RESULT_CONST(
715         ResultTooLarge,
716         Result::LEVEL_USAGE,     Result::SUMMARY_INVALID_ARGUMENT, Result::MODULE_NN_FRIENDS,
717         Result::DESCRIPTION_TOO_LARGE
718     );
719 
720 
721     /*!
722         @class nn::friends::ResultAlreadyDone
723         @brief その操作がすでに実行済みで、今回は何も行われなかったことを示します。
724                成功として扱われます。
725     */
726     NN_DEFINE_RESULT_CONST(
727         ResultAlreadyDone,
728         Result::LEVEL_SUCCESS,   Result::SUMMARY_NOTHING_HAPPENED, Result::MODULE_NN_FRIENDS,
729         Result::DESCRIPTION_ALREADY_DONE
730     );
731 
732     /*!
733         @class nn::friends::ResultTemporarilyBusy
734         @brief 内部状態が一時的にビジー状態だったことを示します。比較的短時間が経過した後に再試行することで成功する可能性があります。
735     */
736     NN_DEFINE_RESULT_CONST(
737         ResultTemporarilyBusy,
738         Result::LEVEL_STATUS,    Result::SUMMARY_INVALID_STATE,    Result::MODULE_NN_FRIENDS,
739         Result::DESCRIPTION_BUSY
740     );
741 
742 
743     /*!
744         @class nn::friends::ResultNotAuthorized
745         @brief 許可されていない操作を行ったことを示します。スリープ中に API をコールしたときに返ることがあります。
746     */
747     NN_DEFINE_RESULT_CONST(
748         ResultNotAuthorized,
749         Result::LEVEL_STATUS,    Result::SUMMARY_INVALID_STATE,    Result::MODULE_NN_FRIENDS,
750         Result::DESCRIPTION_NOT_AUTHORIZED
751     );
752 
753     /*!
754         @class nn::friends::ResultUnexpectedState
755         @brief 内部状態が不正だったことを示します。
756     */
757     NN_DEFINE_RESULT_CONST(
758         ResultUnexpectedState,
759         Result::LEVEL_STATUS,    Result::SUMMARY_INVALID_STATE,    Result::MODULE_NN_FRIENDS,
760         Result::DESCRIPTION_NOT_IMPLEMENTED
761     );
762 
763 
764     namespace detail {
MakeResult(Result::Level level,Result::Summary summary,int description)765         inline Result MakeResult(Result::Level level, Result::Summary summary, int description)
766             { return Result(level, summary, Result::MODULE_NN_FRIENDS, description); }
767 
MakeInfoResult(Result::Summary summary,int description)768         inline Result MakeInfoResult(Result::Summary summary, int description)
769             { return Result(Result::LEVEL_INFO, summary, Result::MODULE_NN_FRIENDS, description); }
MakeFatalResult(Result::Summary summary,int description)770         inline Result MakeFatalResult(Result::Summary summary, int description)
771             { return Result(Result::LEVEL_FATAL, summary, Result::MODULE_NN_FRIENDS, description); }
MakeResetResult(Result::Summary summary,int description)772         inline Result MakeResetResult(Result::Summary summary, int description)
773             { return Result(Result::LEVEL_RESET, summary, Result::MODULE_NN_FRIENDS, description); }
MakeReInitResult(Result::Summary summary,int description)774         inline Result MakeReInitResult(Result::Summary summary, int description)
775             { return Result(Result::LEVEL_REINIT, summary, Result::MODULE_NN_FRIENDS, description); }
MakeUsageResult(Result::Summary summary,int description)776         inline Result MakeUsageResult(Result::Summary summary, int description)
777             { return Result(Result::LEVEL_USAGE, summary, Result::MODULE_NN_FRIENDS, description); }
MakePermanentResult(Result::Summary summary,int description)778         inline Result MakePermanentResult(Result::Summary summary, int description)
779             { return Result(Result::LEVEL_PERMANENT, summary, Result::MODULE_NN_FRIENDS, description); }
MakeTemporaryResult(Result::Summary summary,int description)780         inline Result MakeTemporaryResult(Result::Summary summary, int description)
781             { return Result(Result::LEVEL_TEMPORARY, summary, Result::MODULE_NN_FRIENDS, description); }
MakeStatusResult(Result::Summary summary,int description)782         inline Result MakeStatusResult(Result::Summary summary, int description)
783             { return Result(Result::LEVEL_STATUS, summary, Result::MODULE_NN_FRIENDS, description); }
784     }
785 
786 } // end of namespace CTR
787     using namespace CTR;
788 } // end of namespace friends
789 } // end of namespace nn
790 
791 #endif // __cplusplus
792 
793 #endif /* NN_FRIENDS_CTR_FRIENDS_RESULT_H_ */
794