1 /*---------------------------------------------------------------------------* 2 Project: Horizon 3 File: http_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: 29844 $ 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 //NHTTPライブラリのResultコードを、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 /*! 30 @addtogroup nn_http http 31 @{ 32 */ 33 34 /*! 35 @brief APIのC言語用結果コード。APIの返値であるnnResultのdescription要素として格納される。 36 */ 37 enum nnHttpResultCode 38 { 39 /* 汎用*/ 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)), //!< 同時に接続可能なIPCセッション数のセッションがすでに接続されている(つまりクライアント数、コネクション数共に最大値に達している。) 53 NN_HTTP_ER_TIMEOUT = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CODE(105)), //!< タイムアウト 54 55 /* ライブラリ処理関連 */ 56 NN_HTTP_ER_ALREADY_INITIALIZED = nn::Result::DESCRIPTION_ALREADY_INITIALIZED, //!< ライブラリが初期化済み 57 NN_HTTP_ER_NOT_INITIALIZED = nn::Result::DESCRIPTION_NOT_INITIALIZED, //!< ライブラリが未初期化 58 59 /* メッセージキュー関連 */ 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 /* 接続ハンドル関連 */ 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)), //!< 1プロセスの使用コネクション最大数越え 72 73 /* リクエスト関連 */ 74 NN_HTTP_ER_REQ_URL = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_REQ_URL), //!< 不正なURL 75 NN_HTTP_ER_REQ_CONNMSG_PORT = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_REQ_CONNMSG_PORT), //!< CONNECT送信用ポート番号不正 76 NN_HTTP_ER_REQ_UNKNOWN_METHOD = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_REQ_UNKNOWN_METHOD), //!< 認識できないメソッド 77 78 /* レスポンス関連 */ 79 NN_HTTP_ER_RES_HEADER = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_RES_HEADER), //!< 不正なHTTPヘッダ 80 NN_HTTP_ER_RES_NONEWLINE = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_RES_NONEWLINE), //!< HTTPヘッダ次行なし 81 NN_HTTP_ER_RES_BODYBUF = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_RES_BODYBUF), //!< HTTPボディ受信バッファエラー 82 NN_HTTP_ER_RES_BODYBUF_SHORTAGE = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CODE(43)), //!< HTTPボディ受信バッファの不足 83 84 /* POST関連 */ 85 NN_HTTP_ER_POST_ADDED_ANOTHER = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_POST_ADDED_ANOTHER), //!< POSTデータ追加失敗(別タイプPOSTが既存) 86 NN_HTTP_ER_POST_BOUNDARY = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_POST_BOUNDARY), //!< Boundaryが正しく設定できない 87 NN_HTTP_ER_POST_SEND = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_POST_SEND), //!< POSTリクエスト送信失敗 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関連 */ 92 NN_HTTP_ER_SSL = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_SSL), //!< SSLエラー 93 NN_HTTP_ER_SSL_CERT_EXIST = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_SSL_CERT_EXIST), //!< SSL 証明書設定済み(再登録前に削除が必要) 94 NN_HTTP_ER_SSL_NO_CA_CERT_STORE = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CODE(200)), //!< SSL 該当するCA証明書ストアが登録されていない 95 NN_HTTP_ER_SSL_NO_CLIENT_CERT = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CODE(201)), //!< SSL 該当するクライアント証明書が登録されていない 96 NN_HTTP_ER_SSL_CA_CERT_STORE_MAX = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CODE(202)), //!< SSL プロセスごとのCA証明書ストア同時登録最大数の証明書ストアがすでに登録されている。 97 NN_HTTP_ER_SSL_CLIENT_CERT_MAX = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CODE(203)), //!< SSL プロセスごとのクライアント証明書同時登録最大数の証明書がすでに登録されている。 98 NN_HTTP_ER_SSL_FAIL_TO_CREATE_CERT_STORE = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CODE(204)), //!< SSL 証明書ストアの作成に失敗 99 NN_HTTP_ER_SSL_FAIL_TO_CREATE_CLIENT_CERT = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CODE(205)), //!< SSL クライアント証明書の作成に失敗 100 101 /* ソケット関連 */ 102 NN_HTTP_ER_SOC_DNS = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_SOC_DNS), //!< 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 /* プロキシ関連 */ 109 NN_HTTP_ER_GET_PROXY_SETTING = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_GET_DEFAULT_PROXY) //!< 機器に設定されているProxy値の取得に失敗した。 110 }; 111 112 /*! 113 @} 114 */ 115 116 #ifdef __cplusplus 117 118 119 namespace nn { 120 namespace http { 121 /*! 122 @brief APIの結果コード。APIの返値であるResultのdescription要素として格納される。 123 @note 現状はNHTTPライブラリの結果コード値と合わせる(ただしResultのdescriptionは10bitであるため、下位10bitのみ用いる。)NHTTPライブラリと依存関係になってしまうため、将来的には独立した値に変更する。 124 */ 125 enum ResultCode 126 { 127 /* 汎用*/ 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, //!< IPCセッションが不正である 139 ER_CLIENT_PROCESS_MAX = NN_HTTP_ER_CLIENT_PROCESS_MAX, //!< 同時利用可能なクライアントプロセス数のクライアントがすでに利用中である。 140 ER_IPC_SESSION_MAX = NN_HTTP_ER_IPC_SESSION_MAX , //!< 同時に接続可能なIPCセッション数のセッションがすでに接続されている(つまりクライアント数、コネクション数共に最大値に達している。) 141 ER_TIMEOUT = NN_HTTP_ER_TIMEOUT, //!< タイムアウト 142 143 /* ライブラリ処理関連 */ 144 ER_ALREADY_INITIALIZED = NN_HTTP_ER_ALREADY_INITIALIZED, //!< ライブラリが初期化済み 145 ER_NOT_INITIALIZED = NN_HTTP_ER_NOT_INITIALIZED, //!< ライブラリが未初期化 146 147 /* メッセージキュー関連 */ 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 /* 接続ハンドル関連 */ 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, //!< 1プロセスの使用コネクション最大数越え 160 161 /* リクエスト関連 */ 162 ER_REQ_URL = NN_HTTP_ER_REQ_URL, //!< 不正なURL 163 ER_REQ_CONNMSG_PORT = NN_HTTP_ER_REQ_CONNMSG_PORT, //!< CONNECT送信用ポート番号不正 164 ER_REQ_UNKNOWN_METHOD = NN_HTTP_ER_REQ_UNKNOWN_METHOD, //!< 認識できないメソッド 165 166 /* レスポンス関連 */ 167 ER_RES_HEADER = NN_HTTP_ER_RES_HEADER, //!< 不正なHTTPヘッダ 168 ER_RES_NONEWLINE = NN_HTTP_ER_RES_NONEWLINE, //!< HTTPヘッダ次行なし 169 ER_RES_BODYBUF = NN_HTTP_ER_RES_BODYBUF, //!< HTTPボディ受信バッファエラー 170 ER_RES_BODYBUF_SHORTAGE = NN_HTTP_ER_RES_BODYBUF_SHORTAGE, //!< HTTPボディ受信バッファの不足 171 172 /* POST関連 */ 173 ER_POST_ADDED_ANOTHER = NN_HTTP_ER_POST_ADDED_ANOTHER, //!< POSTデータ追加失敗(別タイプPOSTが既存) 174 ER_POST_BOUNDARY = NN_HTTP_ER_POST_BOUNDARY, //!< Boundaryが正しく設定できない 175 ER_POST_SEND = NN_HTTP_ER_POST_SEND, //!< POSTリクエスト送信失敗 176 ER_POST_UNKNOWN_ENCTYPE = NN_HTTP_ER_POST_UNKNOWN_ENCTYPE, //!< 不明なエンコードタイプ 177 ER_POST_NODATA = NN_HTTP_ER_POST_NODATA, //!< 送信データ設定無し 178 179 /* SSL関連 */ 180 ER_SSL = NN_HTTP_ER_SSL, //!< SSLエラー 181 ER_SSL_CERT_EXIST = NN_HTTP_ER_SSL_CERT_EXIST, //!< SSL 証明書設定済み(再登録前に削除が必要) 182 ER_SSL_NO_CA_CERT_STORE = NN_HTTP_ER_SSL_NO_CA_CERT_STORE, //!< SSL 該当するCA証明書ストアが登録されていない 183 ER_SSL_NO_CLIENT_CERT = NN_HTTP_ER_SSL_NO_CLIENT_CERT, //!< SSL 該当するクライアント証明書が登録されていない 184 ER_SSL_CA_CERT_STORE_MAX = NN_HTTP_ER_SSL_CA_CERT_STORE_MAX, //!< SSL プロセスごとのCA証明書ストア同時登録最大数の証明書ストアがすでに登録されている。 185 ER_SSL_CLIENT_CERT_MAX = NN_HTTP_ER_SSL_CLIENT_CERT_MAX, //!< SSL プロセスごとのクライアント証明書同時登録最大数の証明書がすでに登録されている。 186 ER_SSL_FAIL_TO_CREATE_CERT_STORE = NN_HTTP_ER_SSL_FAIL_TO_CREATE_CERT_STORE, //!< SSL 証明書ストアの作成に失敗 187 ER_SSL_FAIL_TO_CREATE_CLIENT_CERT = NN_HTTP_ER_SSL_FAIL_TO_CREATE_CLIENT_CERT, //!< SSL クライアント証明書の作成に失敗 188 189 /* ソケット関連 */ 190 ER_SOC_DNS = NN_HTTP_ER_SOC_DNS, //!< 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 /* プロキシ関連*/ 197 ER_GET_PROXY_SETTING = NN_HTTP_ER_GET_PROXY_SETTING //!< 機器に設定されているProxy値の取得に失敗した。 198 199 }; 200 201 namespace detail { 202 /** 203 * @brief NHTTPのPermanentエラーを表すResultを返す。 204 * @param summary エラーを表すResult::Summary値。 205 * @param errCode エラーコード(nn::http::ResultCode列挙体のいずれかの値) 206 * @return 引数に対応するPermanentエラーを表すResult。 207 */ 208 NN_DEFINE_RESULT_FUNC_LM(MakePermanentResult, Result::LEVEL_PERMANENT, Result::MODULE_NN_HTTP); 209 210 211 /** 212 * @brief リターンコードに対して、それを表すResultを返す。 213 * @param returnCode リターンコード(nn::http::ResultCode列挙体のいずれかの値) 214 * @return 引数の内容を表すResult。 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 /** 233 * @brief リターンコードに対して、それを表すResultを返す。 234 * @param returnCode リターンコード(nn::http::ResultCode列挙体の各要素の即値) 235 * @return 引数の内容を表すResult。 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 /*! 244 :category Result 245 @class nn::http::ResultInvalidStatusErr 246 @brief 不正なステータスを表します。 247 */ 248 NN_DEFINE_RESULT_CONST_LM( 249 ResultInvalidStatusErr, 250 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_INVALID_STATUS 251 ); 252 253 254 /*! 255 :category Result 256 @class nn::http::ResultInvalidParamErr 257 @brief 不正なパラメータを表します。 258 */ 259 NN_DEFINE_RESULT_CONST_LM( 260 ResultInvalidParamErr, 261 detail::MakePermanentResult, Result::SUMMARY_INVALID_ARGUMENT, ER_INVALID_PARAM 262 ); 263 264 /*! 265 :category Result 266 @class nn::http::ResultOutOfMemoryErr 267 @brief メモリの動的確保失敗を表します。 268 */ 269 NN_DEFINE_RESULT_CONST_LM( 270 ResultOutOfMemoryErr, 271 detail::MakePermanentResult, Result::SUMMARY_OUT_OF_RESOURCE, ER_NOMEM 272 ); 273 274 /*! 275 :category Result 276 @class nn::http::ResultCreateEventErr 277 @brief イベント生成失敗を表します。 278 */ 279 NN_DEFINE_RESULT_CONST_LM( 280 ResultCreateEventErr, 281 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CREATE_EVENT 282 ); 283 284 /*! 285 :category Result 286 @class nn::http::ResultCreateMutexErr 287 @brief ミューテックス生成失敗を表します。 288 */ 289 NN_DEFINE_RESULT_CONST_LM( 290 ResultCreateMutexErr, 291 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CREATE_MUTEX 292 ); 293 294 /*! 295 :category Result 296 @class nn::http::ResultCreateQueueErr 297 @brief メッセージキュー生成失敗を表します。 298 */ 299 NN_DEFINE_RESULT_CONST_LM( 300 ResultCreateQueueErr, 301 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CREATE_QUEUE 302 ); 303 304 /*! 305 :category Result 306 @class nn::http::ResultCreateThreadErr 307 @brief スレッド生成失敗を表します。 308 */ 309 NN_DEFINE_RESULT_CONST_LM( 310 ResultCreateThreadErr, 311 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CREATE_THREAD 312 ); 313 314 /*! 315 :category Result 316 @class nn::http::ResultNotConnectedErr 317 @brief コネクションの未初期化を表します。 318 */ 319 NN_DEFINE_RESULT_CONST_LM( 320 ResultNotConnectedErr, 321 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CONNECTION_NOT_INITIALIZED 322 ); 323 324 /*! 325 :category Result 326 @class nn::http::ResultAlreadyAssignHostErr 327 @brief すでに通信先ホストが割り当て済みを表します。 328 */ 329 NN_DEFINE_RESULT_CONST_LM( 330 ResultAlreadyAssignHostErr, 331 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_ALREADY_ASSIGN_HOST 332 ); 333 334 /*! 335 :category Result 336 @class nn::http::ResultSessionErr 337 @brief IPCセッションが不正であるを表します。 338 */ 339 NN_DEFINE_RESULT_CONST_LM( 340 ResultSessionErr, 341 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SESSION 342 ); 343 344 /*! 345 :category Result 346 @class nn::http::ResultClientProcessMaxErr 347 @brief 同時利用可能なクライアントプロセス数のクライアントがすでに利用中であるを表します。 348 */ 349 NN_DEFINE_RESULT_CONST_LM( 350 ResultClientProcessMaxErr, 351 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CLIENT_PROCESS_MAX 352 ); 353 354 /*! 355 :category Result 356 @class nn::http::ResultIpcSessionMaxErr 357 @brief 同時に接続可能なIPCセッション数のセッションがすでに接続されているを表します。 358 */ 359 NN_DEFINE_RESULT_CONST_LM( 360 ResultIpcSessionMaxErr, 361 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_IPC_SESSION_MAX 362 ); 363 364 /*! 365 :category Result 366 @class nn::http::ResultAlreadyInitializedErr 367 @brief ライブラリが初期化済を表します。 368 */ 369 NN_DEFINE_RESULT_CONST_LM( 370 ResultAlreadyInitializedErr, 371 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_ALREADY_INITIALIZED 372 ); 373 374 /*! 375 :category Result 376 @class nn::http::ResultNotInitializedErr 377 @brief ライブラリが未初期化を表します。 378 */ 379 NN_DEFINE_RESULT_CONST_LM( 380 ResultNotInitializedErr, 381 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_NOT_INITIALIZED 382 ); 383 384 /*! 385 :category Result 386 @class nn::http::ResultMessageSendToListenThreadErr 387 @brief リスナースレッドメッセージキューへの送信失敗を表します。 388 */ 389 NN_DEFINE_RESULT_CONST_LM( 390 ResultMessageSendToListenThreadErr, 391 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_MSGQ_SEND_LSN 392 ); 393 394 /*! 395 :category Result 396 @class nn::http::ResultMessageRecvInListenThreadErr 397 @brief リスナースレッドメッセージキュー受信失敗を表します。 398 */ 399 NN_DEFINE_RESULT_CONST_LM( 400 ResultMessageRecvInListenThreadErr, 401 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_MSGQ_RECV_LSN 402 ); 403 404 /*! 405 :category Result 406 @class nn::http::ResultMessageRecvInCommunicationThreadErr 407 @brief 通信スレッドメッセージキュー受信失敗を表します。 408 */ 409 NN_DEFINE_RESULT_CONST_LM( 410 ResultMessageRecvInCommunicationThreadErr, 411 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_MSGQ_RECV_COMM 412 ); 413 414 /*! 415 :category Result 416 @class nn::http::ResultConnectionNoMoreErr 417 @brief 接続ハンドル登録最大数越えを表します。 418 */ 419 NN_DEFINE_RESULT_CONST_LM( 420 ResultConnectionNoMoreErr, 421 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CONN_NOMORE 422 ); 423 424 /*! 425 :category Result 426 @class nn::http::ResultNoSuchConnectionErr 427 @brief 存在しないコネクションに対する処理依頼を表します。 428 */ 429 NN_DEFINE_RESULT_CONST_LM( 430 ResultNoSuchConnectionErr, 431 detail::MakePermanentResult, Result::SUMMARY_NOT_FOUND, ER_CONN_NOSUCH 432 ); 433 434 /*! 435 :category Result 436 @class nn::http::ResultConnectionStatusErr 437 @brief コネクションのステータス不正を表します。 438 */ 439 NN_DEFINE_RESULT_CONST_LM( 440 ResultConnectionStatusErr, 441 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CONN_STATUS 442 ); 443 444 /*! 445 :category Result 446 @class nn::http::ResultConnectionAddErr 447 @brief コネクションの登録失敗を表します。 448 */ 449 NN_DEFINE_RESULT_CONST_LM( 450 ResultConnectionAddErr, 451 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CONN_ADD 452 ); 453 454 /*! 455 :category Result 456 @class nn::http::ResultConnectionCanceledErr 457 @brief コネクションのキャンセルを表します。 458 */ 459 NN_DEFINE_RESULT_CONST_LM( 460 ResultConnectionCanceledErr, 461 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CONN_CANCELED 462 ); 463 464 /*! 465 :category Result 466 @class nn::http::ResultConnectionHostMaxErr 467 @brief 同一ホストへの最大同時接続数越えを表します。 468 */ 469 NN_DEFINE_RESULT_CONST_LM( 470 ResultConnectionHostMaxErr, 471 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CONN_HOST_MAX 472 ); 473 474 /*! 475 :category Result 476 @class nn::http::ResultConnectionProcessMaxErr 477 @brief 1プロセスの使用コネクション最大数越えを表します。 478 */ 479 NN_DEFINE_RESULT_CONST_LM( 480 ResultConnectionProcessMaxErr, 481 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CONN_PROCESS_MAX 482 ); 483 484 /*! 485 :category Result 486 @class nn::http::ResultRequestUrlErr 487 @brief 不正なURLを表します。 488 */ 489 NN_DEFINE_RESULT_CONST_LM( 490 ResultRequestUrlErr, 491 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_REQ_URL 492 ); 493 494 /*! 495 :category Result 496 @class nn::http::ResultRequestPortErr 497 @brief 不正な通信先ポート番号を表します。 498 */ 499 NN_DEFINE_RESULT_CONST_LM( 500 ResultRequestPortErr, 501 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_REQ_CONNMSG_PORT 502 ); 503 504 /*! 505 :category Result 506 @class nn::http::ResultRequestUnknownMethodErr 507 @brief 認識できないメソッドを表します。 508 */ 509 NN_DEFINE_RESULT_CONST_LM( 510 ResultRequestUnknownMethodErr, 511 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_REQ_UNKNOWN_METHOD 512 ); 513 514 515 /*! 516 :category Result 517 @class nn::http::ResultRequestHeaderErr 518 @brief 不正なHTTPヘッダを表します。 519 */ 520 NN_DEFINE_RESULT_CONST_LM( 521 ResultRequestHeaderErr, 522 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_RES_HEADER 523 ); 524 525 /*! 526 :category Result 527 @class nn::http::ResultRequestNoNewLineErr 528 @brief HTTPヘッダ次行なしを表します。 529 */ 530 NN_DEFINE_RESULT_CONST_LM( 531 ResultRequestNoNewLineErr, 532 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_RES_NONEWLINE 533 ); 534 535 /*! 536 :category Result 537 @class nn::http::ResultBodyBufErr 538 @brief HTTPボディ受信バッファエラーを表します。 539 */ 540 NN_DEFINE_RESULT_CONST_LM( 541 ResultBodyBufErr, 542 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_RES_BODYBUF 543 ); 544 545 /*! 546 :category Result 547 @class nn::http::ResultBodyBufShortage 548 @brief HTTP Body受信バッファの容量不足を表します。 549 */ 550 NN_DEFINE_RESULT_CONST_LM( 551 ResultBodyBufShortage, 552 detail::MakePermanentResult, Result::SUMMARY_WOULD_BLOCK, ER_RES_BODYBUF_SHORTAGE 553 ); 554 555 /*! 556 :category Result 557 @class nn::http::ResultPostAddedAnotherErr 558 @brief POSTデータ追加失敗を表します。 559 */ 560 NN_DEFINE_RESULT_CONST_LM( 561 ResultPostAddedAnotherErr, 562 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_POST_ADDED_ANOTHER 563 ); 564 565 /*! 566 :category Result 567 @class nn::http::ResultPostBoundaryErr 568 @brief POSTデータのBoundaryが正しく設定できないを表します。 569 */ 570 NN_DEFINE_RESULT_CONST_LM( 571 ResultPostBoundaryErr, 572 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_POST_BOUNDARY 573 ); 574 575 /*! 576 :category Result 577 @class nn::http::ResultPostSendErr 578 @brief POSTリクエスト送信失敗を表します。 579 */ 580 NN_DEFINE_RESULT_CONST_LM( 581 ResultPostSendErr, 582 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_POST_SEND 583 ); 584 585 /*! 586 :category Result 587 @class nn::http::ResultPostUnknownEnctypeErr 588 @brief POST用として不明なエンコードタイプを表します。 589 */ 590 NN_DEFINE_RESULT_CONST_LM( 591 ResultPostUnknownEnctypeErr, 592 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_POST_UNKNOWN_ENCTYPE 593 ); 594 595 /*! 596 :category Result 597 @class nn::http::ResultPostNoDataErr 598 @brief POST用の送信データ設定無しを表します。 599 */ 600 NN_DEFINE_RESULT_CONST_LM( 601 ResultPostNoDataErr, 602 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_POST_NODATA 603 ); 604 605 606 /*! 607 :category Result 608 @class nn::http::ResultSslErr 609 @brief SSLエラーを表します。 610 */ 611 NN_DEFINE_RESULT_CONST_LM( 612 ResultSslErr, 613 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SSL 614 ); 615 616 /*! 617 :category Result 618 @class nn::http::ResultCertExistErr 619 @brief SSL 証明書設定済み(再登録前に削除が必要)を表します。 620 */ 621 NN_DEFINE_RESULT_CONST_LM( 622 ResultCertExistErr, 623 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SSL_CERT_EXIST 624 ); 625 626 /*! 627 :category Result 628 @class nn::http::ResultNoCaCertStoreErr 629 @brief SSL 該当するCA証明書ストアが登録されていないを表します。 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 /*! 637 :category Result 638 @class nn::http::ResultNoClientCertErr 639 @brief SSL 該当するクライアント証明書が登録されていないを表します。 640 */ 641 NN_DEFINE_RESULT_CONST_LM( 642 ResultNoClientCertErr, 643 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SSL_NO_CLIENT_CERT 644 ); 645 646 /*! 647 :category Result 648 @class nn::http::ResultCaCertStoreMaxErr 649 @brief SSL プロセスごとのCA証明書ストア同時登録最大数の証明書ストアがすでに登録されているを表します。 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 /*! 657 :category Result 658 @class nn::http::ResultClientCertMaxErr 659 @brief SSL プロセスごとのクライアント証明書同時登録最大数の証明書がすでに登録されているを表します。 660 */ 661 NN_DEFINE_RESULT_CONST_LM( 662 ResultClientCertMaxErr, 663 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SSL_CLIENT_CERT_MAX 664 ); 665 666 /*! 667 :category Result 668 @class nn::http::ResultFailToCreateCertStoreErr 669 @brief SSL 証明書ストアの作成に失敗を表します。 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 /*! 677 :category Result 678 @class nn::http::ResultFailToCreateClientCertErr 679 @brief SSL クライアント証明書の作成に失敗を表します。 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 /*! 687 :category Result 688 @class nn::http::ResultDnsResolutionErr 689 @brief DNS名前解決失敗を表します。 690 */ 691 NN_DEFINE_RESULT_CONST_LM( 692 ResultDnsResolutionErr, 693 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SOC_DNS 694 ); 695 696 /*! 697 :category Result 698 @class nn::http::ResultSocketSendErr 699 @brief ソケットデータ送信失敗を表します。 700 */ 701 NN_DEFINE_RESULT_CONST_LM( 702 ResultSocketSendErr, 703 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SOC_SEND 704 ); 705 706 /*! 707 :category Result 708 @class nn::http::ResultSocketReceiveErr 709 @brief ソケットデータ受信失敗を表します。 710 */ 711 NN_DEFINE_RESULT_CONST_LM( 712 ResultSocketReceiveErr, 713 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SOC_RECV 714 ); 715 716 /*! 717 :category Result 718 @class nn::http::ResultSocketConnectErr 719 @brief ソケット接続失敗を表します。 720 */ 721 NN_DEFINE_RESULT_CONST_LM( 722 ResultSocketConnectErr, 723 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SOC_CONN 724 ); 725 726 /*! 727 :category Result 728 @class nn::http::ResultGetProxySettingErr 729 @brief 機器に設定されているProxy値の取得に失敗を表します。 730 */ 731 NN_DEFINE_RESULT_CONST_LM( 732 ResultGetProxySettingErr, 733 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_GET_PROXY_SETTING 734 ); 735 736 /*! 737 :category Result 738 @class nn::http::ResultNotImplementedErr 739 @brief 処理が未実装を表します。 740 */ 741 NN_DEFINE_RESULT_CONST_LM( 742 ResultNotImplementedErr, 743 detail::MakePermanentResult, Result::SUMMARY_INTERNAL, nn::Result::DESCRIPTION_NOT_IMPLEMENTED 744 ); 745 746 /*! 747 :category Result 748 @class nn::http::ResultTimeout 749 @brief タイムアウトを表します。 750 */ 751 NN_DEFINE_RESULT_CONST_LM( 752 ResultTimeout, 753 detail::MakePermanentResult, Result::SUMMARY_NOTHING_HAPPENED, ER_TIMEOUT 754 ); 755 756 /*! 757 :category Result 758 @class nn::http::ResultSocketKeepAliveDisconnected 759 @brief キープアライブ通信がサーバ側から切断されたを表します。 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