1 /*---------------------------------------------------------------------------*
2   Project:  Horizon
3   File:     socket_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: 27755 $
14  *---------------------------------------------------------------------------*/
15 
16 /*!
17     @file
18 
19     :include nn/socket.h
20  */
21 
22 #ifndef NN_SOCKET_SOCKET_RESULT_H_
23 #define NN_SOCKET_SOCKET_RESULT_H_
24 
25 #ifdef __cplusplus
26 
27 #include <nn/Result.h>
28 
29 namespace nn {
30 namespace socket {
31 
32     enum Description
33     {
34         DESCRIPTION_FAILED_TO_INITIALIZE_INTERFACE = 1,
35         DESCRIPTION_FAILED_TO_INITIALIZE_SOCKET_CORE,
36         DESCRIPTION_TOO_MANY_REQUESTS,
37         DESCRIPTION_PERMISSION_DENIED,
38         DESCRIPTION_UNKOWN_CONFIGURATION,
39         DESCRIPTION_UNKOWN_CLIENT,
40         DESCRIPTION_BAD_DESCRIPTOR,
41         DESCRIPTION_REQUEST_SESSION_FULL,
42         DESCRIPTION_NETWORK_RESETTED,
43         DESCRIPTION_TOO_MANY_PROCESSES,
44         DESCRIPTION_ALREADY_REGISTERED,
45         DESCRIPTION_TOO_MANY_SOCKETS,
46         DESCRIPTION_MISMATCH_VERSION,
47         DESCRIPTION_ADDRESS_COLLISION,
48         DESCRIPTION_TIMEOUT,
49         DESCRIPTION_OUT_OF_SYSTEM_RESOURCE,
50         DESCRIPTION_INVLID_CORE_STATE,
51         DESCRIPTION_ABORTED
52     };
53 
54     namespace detail {
55         s32 ConvertErrorResult(Result result);
56     }
57 
58     NN_DEFINE_RESULT_FUNC_LM(MakePermanentResult, Result::LEVEL_PERMANENT, Result::MODULE_NN_SOCKET);
59     NN_DEFINE_RESULT_FUNC_LSM(MakeInternalResult, Result::LEVEL_STATUS, Result::SUMMARY_INTERNAL, Result::MODULE_NN_SOCKET);
60     NN_DEFINE_RESULT_FUNC_LSM(MakeOutOfResourceResult, Result::LEVEL_PERMANENT, Result::SUMMARY_OUT_OF_RESOURCE, Result::MODULE_NN_SOCKET);
61     NN_DEFINE_RESULT_FUNC_LSM(MakeInvalidStateResult, Result::LEVEL_STATUS, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_SOCKET);
62     NN_DEFINE_RESULT_FUNC_LSM(MakeStatusChangedResult, Result::LEVEL_STATUS, Result::SUMMARY_STATUS_CHANGED, Result::MODULE_NN_SOCKET);
63     NN_DEFINE_RESULT_FUNC_LSM(MakeCancelledResult, Result::LEVEL_STATUS, Result::SUMMARY_CANCELLED, Result::MODULE_NN_SOCKET);
64     NN_DEFINE_RESULT_FUNC_LSM(MakeInvalidArgumentResult, Result::LEVEL_PERMANENT, Result::SUMMARY_INVALID_ARGUMENT, Result::MODULE_NN_SOCKET);
65 
66     //!<
67     NN_DEFINE_RESULT_CONST_LSM(
68         ResultFailedToInitializeInterface,
69         MakeInvalidArgumentResult, DESCRIPTION_FAILED_TO_INITIALIZE_INTERFACE
70     );
71 
72     //!<
73     NN_DEFINE_RESULT_CONST_LSM(
74         ResultFailedToInitializeSocketCore,
75         MakeInvalidArgumentResult, DESCRIPTION_FAILED_TO_INITIALIZE_SOCKET_CORE
76     );
77 
78     //!<
79     NN_DEFINE_RESULT_CONST_LSM(
80         ResultTooManyRequests,
81         MakeOutOfResourceResult, DESCRIPTION_TOO_MANY_REQUESTS
82     );
83 
84     //!<
85     NN_DEFINE_RESULT_CONST_LSM(
86         ResultAlreadyInitialized,
87         MakeInvalidStateResult, Result::DESCRIPTION_ALREADY_INITIALIZED
88     );
89 
90     //!<
91     NN_DEFINE_RESULT_CONST_LSM(
92         ResultNotInitialized,
93         MakeInvalidStateResult, Result::DESCRIPTION_NOT_INITIALIZED
94     );
95 
96     //!<
97     NN_DEFINE_RESULT_CONST_LSM(
98         ResultOutOfMemory,
99         MakeOutOfResourceResult, Result::DESCRIPTION_OUT_OF_MEMORY
100     );
101 
102     //!<
103     NN_DEFINE_RESULT_CONST_LSM(
104         ResultPermissionDenied,
105         MakeInvalidStateResult, DESCRIPTION_PERMISSION_DENIED
106     );
107 
108     //!<
109     NN_DEFINE_RESULT_CONST_LSM(
110         ResultUnkownConfiguration,
111         MakeInvalidArgumentResult, DESCRIPTION_UNKOWN_CONFIGURATION
112     );
113 
114     //!<
115     NN_DEFINE_RESULT_CONST_LSM(
116         ResultInvalidSize,
117         MakeInvalidArgumentResult, Result::DESCRIPTION_INVALID_SIZE
118     );
119 
120     //!<
121     NN_DEFINE_RESULT_CONST_LSM(
122         ResultUnkownClient,
123         MakeInvalidArgumentResult, DESCRIPTION_UNKOWN_CLIENT
124     );
125 
126     //!<
127     NN_DEFINE_RESULT_CONST_LSM(
128         ResultBadDescriptor,
129         MakeInvalidArgumentResult, DESCRIPTION_BAD_DESCRIPTOR
130     );
131 
132     //!<
133     NN_DEFINE_RESULT_CONST_LSM(
134         ResultNetworkResetted,
135         MakeInvalidStateResult, DESCRIPTION_NETWORK_RESETTED
136     );
137 
138     //!<
139     NN_DEFINE_RESULT_CONST_LSM(
140         ResultRequestSessionFull,
141         MakeOutOfResourceResult, DESCRIPTION_REQUEST_SESSION_FULL
142     );
143 
144     //!<
145     NN_DEFINE_RESULT_CONST_LSM(
146         ResultToBeDefined,
147         MakeInternalResult, Result::DESCRIPTION_INVALID_RESULT_VALUE
148     );
149 
150     //!<
151     NN_DEFINE_RESULT_CONST_LSM(
152         ResultTooManyProcesses,
153         MakeOutOfResourceResult, DESCRIPTION_TOO_MANY_PROCESSES
154     );
155 
156     //!<
157     NN_DEFINE_RESULT_CONST_LSM(
158         ResultAlreadyRegistered,
159         MakeInvalidStateResult, DESCRIPTION_ALREADY_REGISTERED
160     );
161 
162     //!<
163     NN_DEFINE_RESULT_CONST_LSM(
164         ResultTooManySockets,
165         MakeOutOfResourceResult, DESCRIPTION_TOO_MANY_SOCKETS
166     );
167 
168     //!<
169     NN_DEFINE_RESULT_CONST_LSM(
170         ResultMismatchVersion,
171         MakeInvalidArgumentResult, DESCRIPTION_MISMATCH_VERSION
172     );
173 
174     //!<
175     NN_DEFINE_RESULT_CONST_LSM(
176         ResultAddressCollision,
177         MakeCancelledResult, DESCRIPTION_ADDRESS_COLLISION
178     );
179 
180     //!<
181     NN_DEFINE_RESULT_CONST_LSM(
182         ResultTimeOut,
183         MakeCancelledResult, DESCRIPTION_TIMEOUT
184     );
185 
186     //!<
187     NN_DEFINE_RESULT_CONST_LSM(
188         ResultOutOfSystemResource,
189         MakeOutOfResourceResult, DESCRIPTION_OUT_OF_SYSTEM_RESOURCE
190     );
191 
192     //!<
193     NN_DEFINE_RESULT_CONST_LSM(
194         ResultInvalidCoreState,
195         MakeInvalidStateResult, DESCRIPTION_INVLID_CORE_STATE
196     );
197 
198     //!<
199     NN_DEFINE_RESULT_CONST_LSM(
200         ResultAborted,
201         MakeCancelledResult, DESCRIPTION_ABORTED
202     );
203 }
204 }
205 
206 #endif // __cplusplus
207 
208 #endif /* NN_SOCKET_SOCKET_RESULT_H_ */
209