1 /*---------------------------------------------------------------------------*
2   Project:  Horizon
3   File:     http_Const.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: 26681 $
14  *---------------------------------------------------------------------------*/
15 
16 #ifndef NN_HTTP_HTTP_CONST_H_
17 #define NN_HTTP_HTTP_CONST_H_
18 
19 #include <nn/net/compatible/nhttp.h>
20 
21 /*!
22   @addtogroup nn_http                       http
23   @{
24 */
25 
26 /*!
27   @brief HTTPリクエストのメソッド
28  */
29 enum nnHttpRequestMethod
30 {
31     NN_HTTP_REQUEST_METHOD_NONE     = NHTTP_REQMETHOD_NONE,             //!< メソッド無し(ライブラリ内部でのみ使用)
32     NN_HTTP_REQUEST_METHOD_GET      = NHTTP_REQMETHOD_GET,              //!< GETメソッド
33     NN_HTTP_REQUEST_METHOD_POST     = NHTTP_REQMETHOD_POST,             //!< POSTメソッド
34     NN_HTTP_REQUEST_METHOD_HEAD     = NHTTP_REQMETHOD_HEAD              //!< HEADメソッド
35 };
36 
37 
38 
39 /*!
40   @brief POSTデータのエンコーディングタイプ
41  */
42 enum nnHttpEncodingType
43 {
44     NN_HTTP_ENCODING_TYPE_AUTO      = NHTTP_ENCODING_TYPE_AUTO,         //!< 自動設定(default)
45     NN_HTTP_ENCODING_TYPE_URL       = NHTTP_ENCODING_TYPE_URL,          //!< application/x-www-form-urlencoded
46     NN_HTTP_ENCODING_TYPE_MULTIPART = NHTTP_ENCODING_TYPE_MULTIPART     //!< multipart/form-data
47 };
48 
49 
50 /*!
51   @brief POSTデータのタイプ
52  */
53 enum nnHttpPostDataType
54 {
55     NN_HTTP_POST_DATA_TYPE_URLENCODE = NHTTP_POST_DATA_TYPE_URLENCODE,  //!< URLENCODE形式
56     NN_HTTP_POST_DATA_TYPE_MULTIPART = NHTTP_POST_DATA_TYPE_MULTIPART,  //!< MULTIPART形式
57     NN_HTTP_POST_DATA_TYPE_RAW       = NHTTP_POST_DATA_TYPE_RAW         //!< RAW形式
58 };
59 
60 
61 /*!
62   @brief 接続ハンドルの状態
63  */
64 enum nnHttpStatus
65 {
66     NN_HTTP_STATUS_CREATED          = NHTTP_CONNST_CREATED,             //!< 初期状態
67     NN_HTTP_STATUS_INITIALIZED      = NHTTP_CONNST_INITIALIZED,         //!< 初期化完了
68     NN_HTTP_STATUS_ENQUEUED_LSN     = NHTTP_CONNST_ENQUEUED_LSN,        //!< リスナースレッドのキューに入っている
69     NN_HTTP_STATUS_IN_LSN           = NHTTP_CONNST_IN_LSN,              //!< リスナースレッドで処理中
70     NN_HTTP_STATUS_ENQUEUED_COMM    = NHTTP_CONNST_ENQUEUED_COMM,       //!< 通信スレッドのキューに入っている
71     NN_HTTP_STATUS_CONNECTING       = NHTTP_CONNST_CONNECTING,          //!< 接続処理中
72     NN_HTTP_STATUS_SENDING          = NHTTP_CONNST_SENDING,             //!< データ送信中
73     NN_HTTP_STATUS_RECEIVING_HEADER = NHTTP_CONNST_RECEIVING_HEADER,    //!< ヘッダ受信中
74     NN_HTTP_STATUS_RECEIVING_BODY   = NHTTP_CONNST_RECEIVING_BODY,      //!< ボディ受信中
75     NN_HTTP_STATUS_RECEIVED         = NHTTP_CONNST_RECEIVED,            //!< 受信終了
76     NN_HTTP_STATUS_FINISHED         = NHTTP_CONNST_FINISHED             //!< 処理終了
77 };
78 
79 
80 /*!
81   @}
82 */
83 
84 #ifdef __cplusplus
85 
86 namespace nn {
87 namespace http {
88 
89 /*!
90  @brief HTTPリクエストのメソッド
91  */
92 enum RequestMethod
93 {
94     REQUEST_METHOD_NONE     = NN_HTTP_REQUEST_METHOD_NONE,             //!< メソッド無し(ライブラリ内部でのみ使用)
95     REQUEST_METHOD_GET      = NN_HTTP_REQUEST_METHOD_GET,              //!< GETメソッド
96     REQUEST_METHOD_POST     = NN_HTTP_REQUEST_METHOD_POST,             //!< POSTメソッド
97     REQUEST_METHOD_HEAD     = NN_HTTP_REQUEST_METHOD_HEAD              //!< HEADメソッド
98 };
99 
100 
101 /*!
102  @brief POSTデータのエンコーディングタイプ
103  */
104 enum EncodingType
105 {
106     ENCODING_TYPE_AUTO      = NN_HTTP_ENCODING_TYPE_AUTO,               //!< 自動設定(default)
107     ENCODING_TYPE_URL       = NN_HTTP_ENCODING_TYPE_URL,                //!< application/x-www-form-urlencoded
108     ENCODING_TYPE_MULTIPART = NN_HTTP_ENCODING_TYPE_MULTIPART           //!< multipart/form-data
109 };
110 
111 
112 /*!
113  @brief POSTデータのタイプ
114  */
115 enum PostDataType
116 {
117     POST_DATA_TYPE_URLENCODE = NN_HTTP_POST_DATA_TYPE_URLENCODE,        //!< URLENCODE形式
118     POST_DATA_TYPE_MULTIPART = NN_HTTP_POST_DATA_TYPE_MULTIPART,        //!< MULTIPART形式
119     POST_DATA_TYPE_RAW       = NN_HTTP_POST_DATA_TYPE_RAW               //!< RAW形式
120 };
121 
122 
123 /*!
124  @brief 接続の状態
125  */
126 enum Status
127 {
128     STATUS_CREATED          = NN_HTTP_STATUS_CREATED,                   //!< 初期状態
129     STATUS_INITIALIZED      = NN_HTTP_STATUS_INITIALIZED,               //!< 初期化完了
130     STATUS_ENQUEUED_LSN     = NN_HTTP_STATUS_ENQUEUED_LSN,              //!< リスナースレッドのキューに入っている
131     STATUS_IN_LSN           = NN_HTTP_STATUS_IN_LSN,                    //!< リスナースレッドで処理中
132     STATUS_ENQUEUED_COMM    = NN_HTTP_STATUS_ENQUEUED_COMM,             //!< 通信スレッドのキューに入っている
133     STATUS_CONNECTING       = NN_HTTP_STATUS_CONNECTING,                //!< 接続処理中
134     STATUS_SENDING          = NN_HTTP_STATUS_SENDING,                   //!< データ送信中
135     STATUS_RECEIVING_HEADER = NN_HTTP_STATUS_RECEIVING_HEADER,          //!< ヘッダ受信中
136     STATUS_RECEIVING_BODY   = NN_HTTP_STATUS_RECEIVING_BODY,            //!< ボディ受信中
137     STATUS_RECEIVED         = NN_HTTP_STATUS_RECEIVED,                  //!< 受信終了
138     STATUS_FINISHED         = NN_HTTP_STATUS_FINISHED                   //!< 処理終了
139 };
140 
141 
142 /*!
143    @brief プロキシの認証タイプ
144  */
145 enum ProxyAuthType
146 {
147     PROXY_AUTH_TYPE_NONE, //!< 認証無し
148     PROXY_AUTH_TYPE_BASIC //!< ベーシック認証
149 };
150 
151 
152 namespace detail
153 {
154     /**
155      * 接続ハンドルコールバックイベント
156      */
157     enum ConnectionEvent
158     {
159         CONN_EV_NONE             = NHTTP_CONN_EV_NONE,                  //!< イベント無し(ライブラリ内部でのみ使用)
160         CONN_EV_POST_SEND        = NHTTP_CONN_EV_POST_SEND,             //!< POSTストリーミング送信開始
161         CONN_EV_POST_SEND_ALL    = NHTTP_CONN_EV_POST_SEND_ALL,         //!< POSTストリーミング送信開始(全データ指定モード)
162         CONN_EV_HEADER_RECV_DONE = NHTTP_CONN_EV_HEADER_RECV_DONE,      //!< ヘッダ受信完了
163         CONN_EV_BODY_RECV_FULL   = NHTTP_CONN_EV_BODY_RECV_FULL,        //!< ボディ受信バッファの満了
164         CONN_EV_BODY_RECV_DONE   = NHTTP_CONN_EV_BODY_RECV_DONE,        //!< ボディ受信完了
165         CONN_EV_COMPLETE         = NHTTP_CONN_EV_COMPLETE,              //!< 接続ハンドル処理完了
166         CONN_EV_MAX              = NHTTP_CONN_EV_MAX                    //!< イベント最大値(ライブラリ内部でのみ使用)
167     };
168 } // end of namespace detail
169 
170 
171 } // end of namespace http
172 } // end of namespace nn
173 
174 
175 #endif /*__cplusplus*/
176 
177 #endif /* NN_HTTP_HTTP_CONST_H_ */
178