1 /*---------------------------------------------------------------------------*
2   Project:  Horizon
3   File:     http_Result.h
4 
5   Copyright (C)2009-2012 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: 46347 $
14  *---------------------------------------------------------------------------*/
15 
16 #ifndef NN_HTTP_HTTP_RESULT_H_
17 #define NN_HTTP_HTTP_RESULT_H_
18 
19 
20 #include <nn/Result.h>
21 #include <nn/net/compatible/nhttp.h>
22 
23 //Macro for converting result code from NHTTP library into HTTP ResultCode.
24 #define CHANGE_NHTTP_RESULT_CODE_MASK 0x000003ff
25 #define CHANGE_NHTTP_RESULT_CODE(nhttpCode) \
26     (nhttpCode) & (CHANGE_NHTTP_RESULT_CODE_MASK)
27 
28 
29 /* Please see man pages for details
30 
31 
32 */
33 
34 /* Please see man pages for details
35 
36 */
37 enum nnHttpResultCode
38 {
39     /* general use*/
40     NN_HTTP_ER_NONE                     = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_NONE),                                //
41     NN_HTTP_ER_INVALID_STATUS           = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_INVALID_STATUS),                      //
42     NN_HTTP_ER_INVALID_PARAM            = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_INVALID_PARAM),                       //
43     NN_HTTP_ER_NOMEM                    = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_NOMEM),                               //
44     NN_HTTP_ER_CREATE_EVENT             = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CREATE_EVENT),                        //
45     NN_HTTP_ER_CREATE_MUTEX             = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CREATE_MUTEX),                        //
46     NN_HTTP_ER_CREATE_QUEUE             = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CREATE_QUEUE),                        //
47     NN_HTTP_ER_CREATE_THREAD            = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CREATE_THREAD),                       //
48     NN_HTTP_ER_CONNECTION_NOT_INITIALIZED          = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CODE(100)),                //
49     NN_HTTP_ER_ALREADY_ASSIGN_HOST      = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CODE(101)),                           //
50     NN_HTTP_ER_SESSION                  = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CODE(102)),                           //
51     NN_HTTP_ER_CLIENT_PROCESS_MAX       = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CODE(103)),                           //
52     NN_HTTP_ER_IPC_SESSION_MAX          = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CODE(104)),                           //
53     NN_HTTP_ER_TIMEOUT                  = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CODE(105)),                           //
54 
55     /* For library processing */
56     NN_HTTP_ER_ALREADY_INITIALIZED      = nn::Result::DESCRIPTION_ALREADY_INITIALIZED,  //
57     NN_HTTP_ER_NOT_INITIALIZED          = nn::Result::DESCRIPTION_NOT_INITIALIZED,      //
58 
59     /* For message queue */
60     NN_HTTP_ER_MSGQ_SEND_LSN    = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_MSGQ_SEND_LSN),         //
61     NN_HTTP_ER_MSGQ_RECV_LSN    = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_MSGQ_RECV_LSN),         //
62     NN_HTTP_ER_MSGQ_RECV_COMM   = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_MSGQ_RECV_COMM),        //
63 
64     /* For connection handling */
65     NN_HTTP_ER_CONN_NOMORE      = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CONN_NOMORE),         //
66     NN_HTTP_ER_CONN_NOSUCH      = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CONN_NOSUCH),         //
67     NN_HTTP_ER_CONN_STATUS      = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CONN_STATUS),         //
68     NN_HTTP_ER_CONN_ADD         = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CONN_ADD),            //
69     NN_HTTP_ER_CONN_CANCELED    = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CONN_CANCELED),       //
70     NN_HTTP_ER_CONN_HOST_MAX    = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CONN_HOST_MAX),       //
71     NN_HTTP_ER_CONN_PROCESS_MAX = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CODE(26)),            //
72 
73     /* For requests */
74     NN_HTTP_ER_REQ_URL              = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_REQ_URL),             //
75     NN_HTTP_ER_REQ_CONNMSG_PORT     = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_REQ_CONNMSG_PORT),    //
76     NN_HTTP_ER_REQ_UNKNOWN_METHOD   = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_REQ_UNKNOWN_METHOD),  //
77 
78     /* For responses */
79     NN_HTTP_ER_RES_HEADER           = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_RES_HEADER),          //
80     NN_HTTP_ER_RES_NONEWLINE        = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_RES_NONEWLINE),       //
81     NN_HTTP_ER_RES_BODYBUF          = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_RES_BODYBUF),         //
82     NN_HTTP_ER_RES_BODYBUF_SHORTAGE = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CODE(43)),            //
83 
84     /* For POST */
85     NN_HTTP_ER_POST_ADDED_ANOTHER   = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_POST_ADDED_ANOTHER),  //
86     NN_HTTP_ER_POST_BOUNDARY        = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_POST_BOUNDARY),       //
87     NN_HTTP_ER_POST_SEND            = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_POST_SEND),           //
88     NN_HTTP_ER_POST_UNKNOWN_ENCTYPE = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_POST_UNKNOWN_ENCTYPE),//
89     NN_HTTP_ER_POST_NODATA          = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_POST_NODATA),         //
90 
91     /* SSL-related */
92     NN_HTTP_ER_SSL                   = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_SSL),                  //
93     NN_HTTP_ER_SSL_CERT_EXIST        = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_SSL_CERT_EXIST),       //
94     NN_HTTP_ER_SSL_NO_CA_CERT_STORE  = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CODE(200)),            //
95     NN_HTTP_ER_SSL_NO_CLIENT_CERT    = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CODE(201)),            //
96     NN_HTTP_ER_SSL_CA_CERT_STORE_MAX = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CODE(202)),            //
97     NN_HTTP_ER_SSL_CLIENT_CERT_MAX   = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CODE(203)),            //
98     NN_HTTP_ER_SSL_FAIL_TO_CREATE_CERT_STORE = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CODE(204)),    //
99     NN_HTTP_ER_SSL_FAIL_TO_CREATE_CLIENT_CERT = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CODE(205)),   //
100 
101     /* For sockets */
102     NN_HTTP_ER_SOC_DNS  = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_SOC_DNS),             //
103     NN_HTTP_ER_SOC_SEND = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_SOC_SEND),            //
104     NN_HTTP_ER_SOC_RECV = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_SOC_RECV),            //
105     NN_HTTP_ER_SOC_CONN = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_SOC_CONN),            //
106     NN_HTTP_ER_SOC_KEEPALIVE_DISCONNECTED = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_SOC_KEEPALIVE_DISCONNECTED), //
107 
108     /* For proxies */
109     NN_HTTP_ER_GET_PROXY_SETTING = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_GET_DEFAULT_PROXY)                   //
110 };
111 
112 /*
113 
114 */
115 
116 #ifdef __cplusplus
117 
118 
119 namespace nn {
120 namespace http {
121     /* Please see man pages for details
122 
123 
124     */
125     enum ResultCode
126     {
127         /* general use*/
128         ER_NONE                 = NN_HTTP_ER_NONE,                   //
129         ER_INVALID_STATUS       = NN_HTTP_ER_INVALID_STATUS,         //
130         ER_INVALID_PARAM        = NN_HTTP_ER_INVALID_PARAM,          //
131         ER_NOMEM                = NN_HTTP_ER_NOMEM,                  //
132         ER_CREATE_EVENT         = NN_HTTP_ER_CREATE_EVENT,           //
133         ER_CREATE_MUTEX         = NN_HTTP_ER_CREATE_MUTEX,           //
134         ER_CREATE_QUEUE         = NN_HTTP_ER_CREATE_QUEUE,           //
135         ER_CREATE_THREAD        = NN_HTTP_ER_CREATE_THREAD,          //
136         ER_CONNECTION_NOT_INITIALIZED      = NN_HTTP_ER_CONNECTION_NOT_INITIALIZED,        //
137         ER_ALREADY_ASSIGN_HOST  = NN_HTTP_ER_ALREADY_ASSIGN_HOST,    //
138         ER_SESSION              = NN_HTTP_ER_SESSION,                //
139         ER_CLIENT_PROCESS_MAX   = NN_HTTP_ER_CLIENT_PROCESS_MAX,     //
140         ER_IPC_SESSION_MAX      = NN_HTTP_ER_IPC_SESSION_MAX ,       //
141         ER_TIMEOUT              = NN_HTTP_ER_TIMEOUT,                //
142 
143         /* For library processing */
144         ER_ALREADY_INITIALIZED  = NN_HTTP_ER_ALREADY_INITIALIZED,    //
145         ER_NOT_INITIALIZED      = NN_HTTP_ER_NOT_INITIALIZED,        //
146 
147         /* For message queue */
148         ER_MSGQ_SEND_LSN        = NN_HTTP_ER_MSGQ_SEND_LSN,          //
149         ER_MSGQ_RECV_LSN        = NN_HTTP_ER_MSGQ_RECV_LSN,          //
150         ER_MSGQ_RECV_COMM       = NN_HTTP_ER_MSGQ_RECV_COMM,         //
151 
152         /* For connection handling */
153         ER_CONN_NOMORE          = NN_HTTP_ER_CONN_NOMORE,            //
154         ER_CONN_NOSUCH          = NN_HTTP_ER_CONN_NOSUCH,            //
155         ER_CONN_STATUS          = NN_HTTP_ER_CONN_STATUS,            //
156         ER_CONN_ADD             = NN_HTTP_ER_CONN_ADD,               //
157         ER_CONN_CANCELED        = NN_HTTP_ER_CONN_CANCELED,          //
158         ER_CONN_HOST_MAX        = NN_HTTP_ER_CONN_HOST_MAX,          //
159         ER_CONN_PROCESS_MAX     = NN_HTTP_ER_CONN_PROCESS_MAX,       //
160 
161         /* For requests */
162         ER_REQ_URL              = NN_HTTP_ER_REQ_URL,                //
163         ER_REQ_CONNMSG_PORT     = NN_HTTP_ER_REQ_CONNMSG_PORT,       //
164         ER_REQ_UNKNOWN_METHOD   = NN_HTTP_ER_REQ_UNKNOWN_METHOD,     //
165 
166         /* For responses */
167         ER_RES_HEADER           = NN_HTTP_ER_RES_HEADER,             //
168         ER_RES_NONEWLINE        = NN_HTTP_ER_RES_NONEWLINE,          //
169         ER_RES_BODYBUF          = NN_HTTP_ER_RES_BODYBUF,            //
170         ER_RES_BODYBUF_SHORTAGE = NN_HTTP_ER_RES_BODYBUF_SHORTAGE,   //
171 
172         /* For POST */
173         ER_POST_ADDED_ANOTHER   = NN_HTTP_ER_POST_ADDED_ANOTHER,     //
174         ER_POST_BOUNDARY        = NN_HTTP_ER_POST_BOUNDARY,          //
175         ER_POST_SEND            = NN_HTTP_ER_POST_SEND,              //
176         ER_POST_UNKNOWN_ENCTYPE = NN_HTTP_ER_POST_UNKNOWN_ENCTYPE,   //
177         ER_POST_NODATA          = NN_HTTP_ER_POST_NODATA,            //
178 
179         /* SSL-related */
180         ER_SSL                   = NN_HTTP_ER_SSL,                    //
181         ER_SSL_CERT_EXIST        = NN_HTTP_ER_SSL_CERT_EXIST,         //
182         ER_SSL_NO_CA_CERT_STORE  = NN_HTTP_ER_SSL_NO_CA_CERT_STORE,   //
183         ER_SSL_NO_CLIENT_CERT    = NN_HTTP_ER_SSL_NO_CLIENT_CERT,     //
184         ER_SSL_CA_CERT_STORE_MAX = NN_HTTP_ER_SSL_CA_CERT_STORE_MAX,  //
185         ER_SSL_CLIENT_CERT_MAX   = NN_HTTP_ER_SSL_CLIENT_CERT_MAX,    //
186         ER_SSL_FAIL_TO_CREATE_CERT_STORE = NN_HTTP_ER_SSL_FAIL_TO_CREATE_CERT_STORE,   //
187         ER_SSL_FAIL_TO_CREATE_CLIENT_CERT = NN_HTTP_ER_SSL_FAIL_TO_CREATE_CLIENT_CERT, //
188 
189         /* For sockets */
190         ER_SOC_DNS              = NN_HTTP_ER_SOC_DNS,                //
191         ER_SOC_SEND             = NN_HTTP_ER_SOC_SEND,               //
192         ER_SOC_RECV             = NN_HTTP_ER_SOC_RECV,               //
193         ER_SOC_CONN             = NN_HTTP_ER_SOC_CONN,               //
194         ER_SOC_KEEPALIVE_DISCONNECTED = NN_HTTP_ER_SOC_KEEPALIVE_DISCONNECTED, //
195 
196         /* For proxies*/
197         ER_GET_PROXY_SETTING    = NN_HTTP_ER_GET_PROXY_SETTING                   //
198 
199     };
200 
201     namespace detail {
202         /* Please see man pages for details
203 
204 
205 
206 
207         */
208         NN_DEFINE_RESULT_FUNC_LM(MakePermanentResult, Result::LEVEL_PERMANENT, Result::MODULE_NN_HTTP);
209 
210 
211         /* Please see man pages for details
212 
213 
214 
215         */
ChangeNetHttpRetCodeToResult(ResultCode returnCode)216         inline Result ChangeNetHttpRetCodeToResult(ResultCode returnCode)
217         {
218             if(returnCode == ER_NONE)
219             {
220                 return ResultSuccess();
221             }
222             else if(returnCode == ER_INVALID_PARAM)
223             {
224                 return MakePermanentResult(Result::SUMMARY_INVALID_ARGUMENT, returnCode);
225             }
226             else
227             {
228                 return MakePermanentResult(Result::SUMMARY_INVALID_STATE, returnCode);
229             }
230         }
231 
232         /* Please see man pages for details
233 
234 
235 
236         */
ChangeNetHttpRetCodeToResult(s32 returnCode)237         inline Result ChangeNetHttpRetCodeToResult(s32 returnCode)
238         {
239             return ChangeNetHttpRetCodeToResult(static_cast<ResultCode>(CHANGE_NHTTP_RESULT_CODE(returnCode)));
240         }
241     }
242 
243     /* Please see man pages for details
244 
245 
246 
247     */
248     NN_DEFINE_RESULT_CONST_LM(
249         ResultInvalidStatusErr,
250         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_INVALID_STATUS
251     );
252 
253 
254     /* Please see man pages for details
255 
256 
257 
258     */
259     NN_DEFINE_RESULT_CONST_LM(
260         ResultInvalidParamErr,
261         detail::MakePermanentResult, Result::SUMMARY_INVALID_ARGUMENT, ER_INVALID_PARAM
262     );
263 
264     /* Please see man pages for details
265 
266 
267 
268     */
269     NN_DEFINE_RESULT_CONST_LM(
270         ResultOutOfMemoryErr,
271         detail::MakePermanentResult, Result::SUMMARY_OUT_OF_RESOURCE, ER_NOMEM
272     );
273 
274     /* Please see man pages for details
275 
276 
277 
278     */
279     NN_DEFINE_RESULT_CONST_LM(
280         ResultCreateEventErr,
281         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CREATE_EVENT
282     );
283 
284     /* Please see man pages for details
285 
286 
287 
288     */
289     NN_DEFINE_RESULT_CONST_LM(
290         ResultCreateMutexErr,
291         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CREATE_MUTEX
292     );
293 
294     /* Please see man pages for details
295 
296 
297 
298     */
299     NN_DEFINE_RESULT_CONST_LM(
300         ResultCreateQueueErr,
301         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CREATE_QUEUE
302     );
303 
304     /* Please see man pages for details
305 
306 
307 
308     */
309     NN_DEFINE_RESULT_CONST_LM(
310         ResultCreateThreadErr,
311         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CREATE_THREAD
312     );
313 
314     /* Please see man pages for details
315 
316 
317 
318     */
319     NN_DEFINE_RESULT_CONST_LM(
320         ResultNotConnectedErr,
321         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CONNECTION_NOT_INITIALIZED
322     );
323 
324     /* Please see man pages for details
325 
326 
327 
328     */
329     NN_DEFINE_RESULT_CONST_LM(
330         ResultAlreadyAssignHostErr,
331         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_ALREADY_ASSIGN_HOST
332     );
333 
334     /* Please see man pages for details
335 
336 
337 
338     */
339     NN_DEFINE_RESULT_CONST_LM(
340         ResultSessionErr,
341         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SESSION
342     );
343 
344     /* Please see man pages for details
345 
346 
347 
348     */
349     NN_DEFINE_RESULT_CONST_LM(
350         ResultClientProcessMaxErr,
351         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CLIENT_PROCESS_MAX
352     );
353 
354     /* Please see man pages for details
355 
356 
357 
358     */
359     NN_DEFINE_RESULT_CONST_LM(
360         ResultIpcSessionMaxErr,
361         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_IPC_SESSION_MAX
362     );
363 
364     /* Please see man pages for details
365 
366 
367 
368     */
369     NN_DEFINE_RESULT_CONST_LM(
370         ResultAlreadyInitializedErr,
371         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_ALREADY_INITIALIZED
372     );
373 
374     /* Please see man pages for details
375 
376 
377 
378     */
379     NN_DEFINE_RESULT_CONST_LM(
380         ResultNotInitializedErr,
381         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_NOT_INITIALIZED
382     );
383 
384     /* Please see man pages for details
385 
386 
387 
388     */
389     NN_DEFINE_RESULT_CONST_LM(
390         ResultMessageSendToListenThreadErr,
391         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_MSGQ_SEND_LSN
392     );
393 
394     /* Please see man pages for details
395 
396 
397 
398     */
399     NN_DEFINE_RESULT_CONST_LM(
400         ResultMessageRecvInListenThreadErr,
401         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_MSGQ_RECV_LSN
402     );
403 
404     /* Please see man pages for details
405 
406 
407 
408     */
409     NN_DEFINE_RESULT_CONST_LM(
410         ResultMessageRecvInCommunicationThreadErr,
411         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_MSGQ_RECV_COMM
412     );
413 
414     /* Please see man pages for details
415 
416 
417 
418     */
419     NN_DEFINE_RESULT_CONST_LM(
420         ResultConnectionNoMoreErr,
421         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CONN_NOMORE
422     );
423 
424     /* Please see man pages for details
425 
426 
427 
428     */
429     NN_DEFINE_RESULT_CONST_LM(
430         ResultNoSuchConnectionErr,
431         detail::MakePermanentResult, Result::SUMMARY_NOT_FOUND, ER_CONN_NOSUCH
432     );
433 
434     /* Please see man pages for details
435 
436 
437 
438     */
439     NN_DEFINE_RESULT_CONST_LM(
440         ResultConnectionStatusErr,
441         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CONN_STATUS
442     );
443 
444     /* Please see man pages for details
445 
446 
447 
448     */
449     NN_DEFINE_RESULT_CONST_LM(
450         ResultConnectionAddErr,
451         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CONN_ADD
452     );
453 
454     /* Please see man pages for details
455 
456 
457 
458     */
459     NN_DEFINE_RESULT_CONST_LM(
460         ResultConnectionCanceledErr,
461         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CONN_CANCELED
462     );
463 
464     /* Please see man pages for details
465 
466 
467 
468     */
469     NN_DEFINE_RESULT_CONST_LM(
470         ResultConnectionHostMaxErr,
471         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CONN_HOST_MAX
472     );
473 
474     /* Please see man pages for details
475 
476 
477 
478     */
479     NN_DEFINE_RESULT_CONST_LM(
480         ResultConnectionProcessMaxErr,
481         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CONN_PROCESS_MAX
482     );
483 
484     /* Please see man pages for details
485 
486 
487 
488     */
489     NN_DEFINE_RESULT_CONST_LM(
490         ResultRequestUrlErr,
491         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_REQ_URL
492     );
493 
494     /* Please see man pages for details
495 
496 
497 
498     */
499     NN_DEFINE_RESULT_CONST_LM(
500         ResultRequestPortErr,
501         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_REQ_CONNMSG_PORT
502     );
503 
504     /* Please see man pages for details
505 
506 
507 
508     */
509     NN_DEFINE_RESULT_CONST_LM(
510         ResultRequestUnknownMethodErr,
511         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_REQ_UNKNOWN_METHOD
512     );
513 
514 
515     /* Please see man pages for details
516 
517 
518 
519     */
520     NN_DEFINE_RESULT_CONST_LM(
521         ResultRequestHeaderErr,
522         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_RES_HEADER
523     );
524 
525     /* Please see man pages for details
526 
527 
528 
529     */
530     NN_DEFINE_RESULT_CONST_LM(
531         ResultRequestNoNewLineErr,
532         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_RES_NONEWLINE
533     );
534 
535     /* Please see man pages for details
536 
537 
538 
539     */
540     NN_DEFINE_RESULT_CONST_LM(
541         ResultBodyBufErr,
542         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_RES_BODYBUF
543     );
544 
545     /* Please see man pages for details
546 
547 
548 
549     */
550     NN_DEFINE_RESULT_CONST_LM(
551         ResultBodyBufShortage,
552         detail::MakePermanentResult, Result::SUMMARY_WOULD_BLOCK, ER_RES_BODYBUF_SHORTAGE
553     );
554 
555     /* Please see man pages for details
556 
557 
558 
559     */
560     NN_DEFINE_RESULT_CONST_LM(
561         ResultPostAddedAnotherErr,
562         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_POST_ADDED_ANOTHER
563     );
564 
565     /* Please see man pages for details
566 
567 
568 
569     */
570     NN_DEFINE_RESULT_CONST_LM(
571         ResultPostBoundaryErr,
572         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_POST_BOUNDARY
573     );
574 
575     /* Please see man pages for details
576 
577 
578 
579     */
580     NN_DEFINE_RESULT_CONST_LM(
581         ResultPostSendErr,
582         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_POST_SEND
583     );
584 
585     /* Please see man pages for details
586 
587 
588 
589     */
590     NN_DEFINE_RESULT_CONST_LM(
591         ResultPostUnknownEnctypeErr,
592         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_POST_UNKNOWN_ENCTYPE
593     );
594 
595     /* Please see man pages for details
596 
597 
598 
599     */
600     NN_DEFINE_RESULT_CONST_LM(
601         ResultPostNoDataErr,
602         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_POST_NODATA
603     );
604 
605 
606     /* Please see man pages for details
607 
608 
609 
610     */
611     NN_DEFINE_RESULT_CONST_LM(
612         ResultSslErr,
613         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SSL
614     );
615 
616     /* Please see man pages for details
617 
618 
619 
620     */
621     NN_DEFINE_RESULT_CONST_LM(
622         ResultCertExistErr,
623         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SSL_CERT_EXIST
624     );
625 
626     /* Please see man pages for details
627 
628 
629 
630     */
631     NN_DEFINE_RESULT_CONST_LM(
632         ResultNoCaCertStoreErr,
633         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SSL_NO_CA_CERT_STORE
634     );
635 
636     /* Please see man pages for details
637 
638 
639 
640     */
641     NN_DEFINE_RESULT_CONST_LM(
642         ResultNoClientCertErr,
643         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SSL_NO_CLIENT_CERT
644     );
645 
646     /* Please see man pages for details
647 
648 
649 
650     */
651     NN_DEFINE_RESULT_CONST_LM(
652         ResultCaCertStoreMaxErr,
653         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SSL_CA_CERT_STORE_MAX
654     );
655 
656     /* Please see man pages for details
657 
658 
659 
660     */
661     NN_DEFINE_RESULT_CONST_LM(
662         ResultClientCertMaxErr,
663         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SSL_CLIENT_CERT_MAX
664     );
665 
666     /* Please see man pages for details
667 
668 
669 
670     */
671     NN_DEFINE_RESULT_CONST_LM(
672         ResultFailToCreateCertStoreErr,
673         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SSL_FAIL_TO_CREATE_CERT_STORE
674     );
675 
676     /* Please see man pages for details
677 
678 
679 
680     */
681     NN_DEFINE_RESULT_CONST_LM(
682         ResultFailToCreateClientCertErr,
683         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SSL_FAIL_TO_CREATE_CLIENT_CERT
684     );
685 
686     /* Please see man pages for details
687 
688 
689 
690     */
691     NN_DEFINE_RESULT_CONST_LM(
692         ResultDnsResolutionErr,
693         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SOC_DNS
694     );
695 
696     /* Please see man pages for details
697 
698 
699 
700     */
701     NN_DEFINE_RESULT_CONST_LM(
702         ResultSocketSendErr,
703         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SOC_SEND
704     );
705 
706     /* Please see man pages for details
707 
708 
709 
710     */
711     NN_DEFINE_RESULT_CONST_LM(
712         ResultSocketReceiveErr,
713         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SOC_RECV
714     );
715 
716     /* Please see man pages for details
717 
718 
719 
720     */
721     NN_DEFINE_RESULT_CONST_LM(
722         ResultSocketConnectErr,
723         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SOC_CONN
724     );
725 
726     /* Please see man pages for details
727 
728 
729 
730     */
731     NN_DEFINE_RESULT_CONST_LM(
732         ResultGetProxySettingErr,
733         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_GET_PROXY_SETTING
734     );
735 
736     /* Please see man pages for details
737 
738 
739 
740     */
741     NN_DEFINE_RESULT_CONST_LM(
742         ResultNotImplementedErr,
743         detail::MakePermanentResult, Result::SUMMARY_INTERNAL, nn::Result::DESCRIPTION_NOT_IMPLEMENTED
744     );
745 
746     /* Please see man pages for details
747 
748 
749 
750     */
751     NN_DEFINE_RESULT_CONST_LM(
752         ResultTimeout,
753         detail::MakePermanentResult, Result::SUMMARY_NOTHING_HAPPENED, ER_TIMEOUT
754     );
755 
756     /* Please see man pages for details
757 
758 
759 
760     */
761     NN_DEFINE_RESULT_CONST_LM(
762         ResultSocketKeepAliveDisconnected,
763         detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SOC_KEEPALIVE_DISCONNECTED
764     );
765 }
766 }
767 
768 #endif // __cplusplus
769 
770 
771 
772 
773 
774 #endif /* NN_NHTTP_NHTTP_RESULT_H_ */
775