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: 22590 $ 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 107 /* プロキシ関連 */ 108 NN_HTTP_ER_GET_PROXY_SETTING = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_GET_DEFAULT_PROXY) //!< 機器に設定されているProxy値の取得に失敗した。 109 }; 110 111 /*! 112 @} 113 */ 114 115 #ifdef __cplusplus 116 117 118 namespace nn { 119 namespace http { 120 /*! 121 @brief APIの結果コード。APIの返値であるResultのdescription要素として格納される。 122 @note 現状はNHTTPライブラリの結果コード値と合わせる(ただしResultのdescriptionは10bitであるため、下位10bitのみ用いる。)NHTTPライブラリと依存関係になってしまうため、将来的には独立した値に変更する。 123 */ 124 enum ResultCode 125 { 126 /* 汎用*/ 127 ER_NONE = NN_HTTP_ER_NONE, //!< エラー無し 128 ER_INVALID_STATUS = NN_HTTP_ER_INVALID_STATUS, //!< 不正なステータス 129 ER_INVALID_PARAM = NN_HTTP_ER_INVALID_PARAM, //!< 不正なパラメータ 130 ER_NOMEM = NN_HTTP_ER_NOMEM, //!< メモリの動的確保失敗 131 ER_CREATE_EVENT = NN_HTTP_ER_CREATE_EVENT, //!< イベント生成失敗 132 ER_CREATE_MUTEX = NN_HTTP_ER_CREATE_MUTEX, //!< ミューテックス生成失敗 133 ER_CREATE_QUEUE = NN_HTTP_ER_CREATE_QUEUE, //!< メッセージキュー生成失敗 134 ER_CREATE_THREAD = NN_HTTP_ER_CREATE_THREAD, //!< スレッド生成失敗 135 ER_CONNECTION_NOT_INITIALIZED = NN_HTTP_ER_CONNECTION_NOT_INITIALIZED, //!< 通信先が割り当てられていない 136 ER_ALREADY_ASSIGN_HOST = NN_HTTP_ER_ALREADY_ASSIGN_HOST, //!< 通信先がすでに割り当て済みである 137 ER_SESSION = NN_HTTP_ER_SESSION, //!< IPCセッションが不正である 138 ER_CLIENT_PROCESS_MAX = NN_HTTP_ER_CLIENT_PROCESS_MAX, //!< 同時利用可能なクライアントプロセス数のクライアントがすでに利用中である。 139 ER_IPC_SESSION_MAX = NN_HTTP_ER_IPC_SESSION_MAX , //!< 同時に接続可能なIPCセッション数のセッションがすでに接続されている(つまりクライアント数、コネクション数共に最大値に達している。) 140 ER_TIMEOUT = NN_HTTP_ER_TIMEOUT, //!< タイムアウト 141 142 /* ライブラリ処理関連 */ 143 ER_ALREADY_INITIALIZED = NN_HTTP_ER_ALREADY_INITIALIZED, //!< ライブラリが初期化済み 144 ER_NOT_INITIALIZED = NN_HTTP_ER_NOT_INITIALIZED, //!< ライブラリが未初期化 145 146 /* メッセージキュー関連 */ 147 ER_MSGQ_SEND_LSN = NN_HTTP_ER_MSGQ_SEND_LSN, //!< リスナースレッドメッセージキューへの送信失敗 148 ER_MSGQ_RECV_LSN = NN_HTTP_ER_MSGQ_RECV_LSN, //!< リスナースレッドメッセージキュー受信失敗 149 ER_MSGQ_RECV_COMM = NN_HTTP_ER_MSGQ_RECV_COMM, //!< 通信スレッドメッセージキュー受信失敗 150 151 /* 接続ハンドル関連 */ 152 ER_CONN_NOMORE = NN_HTTP_ER_CONN_NOMORE, //!< 接続ハンドル登録最大数越え 153 ER_CONN_NOSUCH = NN_HTTP_ER_CONN_NOSUCH, //!< 該当接続ハンドルなし 154 ER_CONN_STATUS = NN_HTTP_ER_CONN_STATUS, //!< 接続ハンドル不正ステータス 155 ER_CONN_ADD = NN_HTTP_ER_CONN_ADD, //!< 接続ハンドル登録失敗 156 ER_CONN_CANCELED = NN_HTTP_ER_CONN_CANCELED, //!< 接続ハンドルキャンセル 157 ER_CONN_HOST_MAX = NN_HTTP_ER_CONN_HOST_MAX, //!< 同一ホストへの最大同時接続数越え 158 ER_CONN_PROCESS_MAX = NN_HTTP_ER_CONN_PROCESS_MAX, //!< 1プロセスの使用コネクション最大数越え 159 160 /* リクエスト関連 */ 161 ER_REQ_URL = NN_HTTP_ER_REQ_URL, //!< 不正なURL 162 ER_REQ_CONNMSG_PORT = NN_HTTP_ER_REQ_CONNMSG_PORT, //!< CONNECT送信用ポート番号不正 163 ER_REQ_UNKNOWN_METHOD = NN_HTTP_ER_REQ_UNKNOWN_METHOD, //!< 認識できないメソッド 164 165 /* レスポンス関連 */ 166 ER_RES_HEADER = NN_HTTP_ER_RES_HEADER, //!< 不正なHTTPヘッダ 167 ER_RES_NONEWLINE = NN_HTTP_ER_RES_NONEWLINE, //!< HTTPヘッダ次行なし 168 ER_RES_BODYBUF = NN_HTTP_ER_RES_BODYBUF, //!< HTTPボディ受信バッファエラー 169 ER_RES_BODYBUF_SHORTAGE = NN_HTTP_ER_RES_BODYBUF_SHORTAGE, //!< HTTPボディ受信バッファの不足 170 171 /* POST関連 */ 172 ER_POST_ADDED_ANOTHER = NN_HTTP_ER_POST_ADDED_ANOTHER, //!< POSTデータ追加失敗(別タイプPOSTが既存) 173 ER_POST_BOUNDARY = NN_HTTP_ER_POST_BOUNDARY, //!< Boundaryが正しく設定できない 174 ER_POST_SEND = NN_HTTP_ER_POST_SEND, //!< POSTリクエスト送信失敗 175 ER_POST_UNKNOWN_ENCTYPE = NN_HTTP_ER_POST_UNKNOWN_ENCTYPE, //!< 不明なエンコードタイプ 176 ER_POST_NODATA = NN_HTTP_ER_POST_NODATA, //!< 送信データ設定無し 177 178 /* SSL関連 */ 179 ER_SSL = NN_HTTP_ER_SSL, //!< SSLエラー 180 ER_SSL_CERT_EXIST = NN_HTTP_ER_SSL_CERT_EXIST, //!< SSL 証明書設定済み(再登録前に削除が必要) 181 ER_SSL_NO_CA_CERT_STORE = NN_HTTP_ER_SSL_NO_CA_CERT_STORE, //!< SSL 該当するCA証明書ストアが登録されていない 182 ER_SSL_NO_CLIENT_CERT = NN_HTTP_ER_SSL_NO_CLIENT_CERT, //!< SSL 該当するクライアント証明書が登録されていない 183 ER_SSL_CA_CERT_STORE_MAX = NN_HTTP_ER_SSL_CA_CERT_STORE_MAX, //!< SSL プロセスごとのCA証明書ストア同時登録最大数の証明書ストアがすでに登録されている。 184 ER_SSL_CLIENT_CERT_MAX = NN_HTTP_ER_SSL_CLIENT_CERT_MAX, //!< SSL プロセスごとのクライアント証明書同時登録最大数の証明書がすでに登録されている。 185 ER_SSL_FAIL_TO_CREATE_CERT_STORE = NN_HTTP_ER_SSL_FAIL_TO_CREATE_CERT_STORE, //!< SSL 証明書ストアの作成に失敗 186 ER_SSL_FAIL_TO_CREATE_CLIENT_CERT = NN_HTTP_ER_SSL_FAIL_TO_CREATE_CLIENT_CERT, //!< SSL クライアント証明書の作成に失敗 187 188 /* ソケット関連 */ 189 ER_SOC_DNS = NN_HTTP_ER_SOC_DNS, //!< DNS名前解決失敗 190 ER_SOC_SEND = NN_HTTP_ER_SOC_SEND, //!< ソケットデータ送信失敗 191 ER_SOC_RECV = NN_HTTP_ER_SOC_RECV, //!< ソケットデータ受信失敗/ 192 ER_SOC_CONN = NN_HTTP_ER_SOC_CONN, //!< ソケット接続失敗 193 194 /* プロキシ関連*/ 195 ER_GET_PROXY_SETTING = NN_HTTP_ER_GET_PROXY_SETTING //!< 機器に設定されているProxy値の取得に失敗した。 196 197 }; 198 199 namespace detail { 200 /** 201 * @brief NHTTPのPermanentエラーを表すResultを返す。 202 * @param summary エラーを表すResult::Summary値。 203 * @param errCode エラーコード(nn::http::ResultCode列挙体のいずれかの値) 204 * @return 引数に対応するPermanentエラーを表すResult。 205 */ 206 NN_DEFINE_RESULT_FUNC_LM(MakePermanentResult, Result::LEVEL_PERMANENT, Result::MODULE_NN_HTTP); 207 208 209 /** 210 * @brief リターンコードに対して、それを表すResultを返す。 211 * @param returnCode リターンコード(nn::http::ResultCode列挙体のいずれかの値) 212 * @return 引数の内容を表すResult。 213 */ ChangeNetHttpRetCodeToResult(ResultCode returnCode)214 inline Result ChangeNetHttpRetCodeToResult(ResultCode returnCode) 215 { 216 if(returnCode == ER_NONE) 217 { 218 return ResultSuccess(); 219 } 220 else if(returnCode == ER_INVALID_PARAM) 221 { 222 return MakePermanentResult(Result::SUMMARY_INVALID_ARGUMENT, returnCode); 223 } 224 else 225 { 226 return MakePermanentResult(Result::SUMMARY_INVALID_STATE, returnCode); 227 } 228 } 229 230 /** 231 * @brief リターンコードに対して、それを表すResultを返す。 232 * @param returnCode リターンコード(nn::http::ResultCode列挙体の各要素の即値) 233 * @return 引数の内容を表すResult。 234 */ ChangeNetHttpRetCodeToResult(s32 returnCode)235 inline Result ChangeNetHttpRetCodeToResult(s32 returnCode) 236 { 237 return ChangeNetHttpRetCodeToResult(static_cast<ResultCode>(returnCode)); 238 } 239 } 240 241 /** 242 * @brief 「不正なステータス」を表すResultを返す。 243 * @return 「不正なステータス」を表すResult 244 */ 245 NN_DEFINE_RESULT_CONST_LM( 246 ResultInvalidStatusErr, 247 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_INVALID_STATUS 248 ); 249 250 /** 251 * @brief 「不正なパラメータ」エラーを表すResultを返す。 252 * @return 「不正なパラメータ」エラーを表すResult 253 */ 254 NN_DEFINE_RESULT_CONST_LM( 255 ResultInvalidParamErr, 256 detail::MakePermanentResult, Result::SUMMARY_INVALID_ARGUMENT, ER_INVALID_PARAM 257 ); 258 259 /** 260 * @brief 「メモリの動的確保失敗」エラーを表すResultを返す。 261 * @return 「メモリの動的確保失敗」エラーを表すResult 262 */ 263 NN_DEFINE_RESULT_CONST_LM( 264 ResultOutOfMemoryErr, 265 detail::MakePermanentResult, Result::SUMMARY_OUT_OF_RESOURCE, ER_NOMEM 266 ); 267 268 /** 269 * @brief 「イベント生成失敗」エラーを表すResultを返す。 270 * @return 「イベント生成失敗」エラーを表すResult 271 */ 272 NN_DEFINE_RESULT_CONST_LM( 273 ResultCreateEventErr, 274 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CREATE_EVENT 275 ); 276 277 /** 278 * @brief 「ミューテックス生成失敗」エラーを表すResultを返す。 279 * @return 「ミューテックス生成失敗」エラーを表すResult 280 */ 281 NN_DEFINE_RESULT_CONST_LM( 282 ResultCreateMutexErr, 283 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CREATE_MUTEX 284 ); 285 286 /** 287 * @brief 「メッセージキュー生成失敗」エラーを表すResultを返す。 288 * @return 「メッセージキュー生成失敗」エラーを表すResult 289 */ 290 NN_DEFINE_RESULT_CONST_LM( 291 ResultCreateQueueErr, 292 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CREATE_QUEUE 293 ); 294 295 /** 296 * @brief 「スレッド生成失敗」エラーを表すResultを返す。 297 * @return 「スレッド生成失敗」エラーを表すResult 298 */ 299 NN_DEFINE_RESULT_CONST_LM( 300 ResultCreateThreadErr, 301 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CREATE_THREAD 302 ); 303 304 /** 305 * @brief 「コネクションの未初期化」エラーを表すResultを返す。 306 * @return 「コネクションの未初期化」エラーを表すResult 307 */ 308 NN_DEFINE_RESULT_CONST_LM( 309 ResultNotConnectedErr, 310 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CONNECTION_NOT_INITIALIZED 311 ); 312 313 /** 314 * @brief 「すでに通信先ホストが割り当て済み」エラーを表すResultを返す。 315 * @return 「すでに通信先ホストが割り当て済み」エラーを表すResult 316 */ 317 NN_DEFINE_RESULT_CONST_LM( 318 ResultAlreadyAssignHostErr, 319 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_ALREADY_ASSIGN_HOST 320 ); 321 322 /** 323 * @brief 「IPCセッションが不正である」エラーを表すResultを返す。 324 * @return 「IPCセッションが不正である」エラーを表すResult 325 */ 326 NN_DEFINE_RESULT_CONST_LM( 327 ResultSessionErr, 328 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SESSION 329 ); 330 331 /** 332 * @brief 「同時利用可能なクライアントプロセス数のクライアントがすでに利用中である。」エラーを表すResultを返す。 333 * @return 「同時利用可能なクライアントプロセス数のクライアントがすでに利用中である。」エラーを表すResult 334 */ 335 NN_DEFINE_RESULT_CONST_LM( 336 ResultClientProcessMaxErr, 337 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CLIENT_PROCESS_MAX 338 ); 339 340 /** 341 * @brief 「同時に接続可能なIPCセッション数のセッションがすでに接続されている」エラーを表すResultを返す。 342 * @return 「同時に接続可能なIPCセッション数のセッションがすでに接続されている」エラーを表すResult 343 */ 344 NN_DEFINE_RESULT_CONST_LM( 345 ResultIpcSessionMaxErr, 346 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_IPC_SESSION_MAX 347 ); 348 349 350 /** 351 * @brief 「ライブラリが初期化済」エラーを表すResultを返す。 352 * @return 「ライブラリが初期化済」エラーを表すResult 353 */ 354 NN_DEFINE_RESULT_CONST_LM( 355 ResultAlreadyInitializedErr, 356 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_ALREADY_INITIALIZED 357 ); 358 359 /** 360 * @brief 「ライブラリが未初期化」エラーを表すResultを返す。 361 * @return 「ライブラリが未初期化」エラーを表すResult 362 */ 363 NN_DEFINE_RESULT_CONST_LM( 364 ResultNotInitializedErr, 365 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_NOT_INITIALIZED 366 ); 367 368 /** 369 * @brief 「リスナースレッドメッセージキューへの送信失敗」エラーを表すResultを返す。 370 * @return 「リスナースレッドメッセージキューへの送信失敗」エラーを表すResult 371 */ 372 NN_DEFINE_RESULT_CONST_LM( 373 ResultMessageSendToListenThreadErr, 374 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_MSGQ_SEND_LSN 375 ); 376 377 /** 378 * @brief 「リスナースレッドメッセージキュー受信失敗」エラーを表すResultを返す。 379 * @return 「リスナースレッドメッセージキュー受信失敗」エラーを表すResult 380 */ 381 NN_DEFINE_RESULT_CONST_LM( 382 ResultMessageRecvInListenThreadErr, 383 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_MSGQ_RECV_LSN 384 ); 385 386 /** 387 * @brief 「通信スレッドメッセージキュー受信失敗」エラーを表すResultを返す。 388 * @return 「通信スレッドメッセージキュー受信失敗」エラーを表すResult 389 */ 390 NN_DEFINE_RESULT_CONST_LM( 391 ResultMessageRecvInCommunicationThreadErr, 392 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_MSGQ_RECV_COMM 393 ); 394 395 /** 396 * @brief 「接続ハンドル登録最大数越え」エラーを表すResultを返す。 397 * @return 「接続ハンドル登録最大数越え」エラーを表すResult 398 */ 399 NN_DEFINE_RESULT_CONST_LM( 400 ResultConnectionNoMoreErr, 401 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CONN_NOMORE 402 ); 403 404 /** 405 * @brief 「存在しないコネクションに対する処理依頼」エラーを表すResultを返す。 406 * @return 「存在しないコネクションに対する処理依頼」エラーを表すResult 407 */ 408 NN_DEFINE_RESULT_CONST_LM( 409 ResultNoSuchConnectionErr, 410 detail::MakePermanentResult, Result::SUMMARY_NOT_FOUND, ER_CONN_NOSUCH 411 ); 412 413 /** 414 * @brief 「コネクションのステータス不正」エラーを表すResultを返す。(例えば、APIを呼び出す順序が不正な場合に返されるResult) 415 * @return 「コネクションのステータス不正」エラーを表すResult 416 */ 417 NN_DEFINE_RESULT_CONST_LM( 418 ResultConnectionStatusErr, 419 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CONN_STATUS 420 ); 421 422 /** 423 * @brief 「コネクションの登録失敗」エラーを表すResultを返す。 424 * @return 「コネクションの登録失敗」エラーを表すResult 425 */ 426 NN_DEFINE_RESULT_CONST_LM( 427 ResultConnectionAddErr, 428 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CONN_ADD 429 ); 430 431 /** 432 * @brief 「コネクションのキャンセル」エラーを表すResultを返す。 433 * @return 「コネクションのキャンセル」エラーを表すResult 434 */ 435 NN_DEFINE_RESULT_CONST_LM( 436 ResultConnectionCanceledErr, 437 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CONN_CANCELED 438 ); 439 440 /** 441 * @brief 「同一ホストへの最大同時接続数越え」エラーを表すResultを返す。 442 * @return 「同一ホストへの最大同時接続数越え」エラーを表すResult 443 */ 444 NN_DEFINE_RESULT_CONST_LM( 445 ResultConnectionHostMaxErr, 446 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CONN_HOST_MAX 447 ); 448 449 /** 450 * @brief 「1プロセスの使用コネクション最大数越え」エラーを表すResultを返す。 451 * @return 「1プロセスの使用コネクション最大数越え」エラーを表すResult 452 */ 453 NN_DEFINE_RESULT_CONST_LM( 454 ResultConnectionProcessMaxErr, 455 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CONN_PROCESS_MAX 456 ); 457 458 459 /** 460 * @brief 「不正なURL」エラーを表すResultを返す。 461 * @return 「不正なURL」エラーを表すResult 462 */ 463 NN_DEFINE_RESULT_CONST_LM( 464 ResultRequestUrlErr, 465 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_REQ_URL 466 ); 467 468 /** 469 * @brief 「不正な通信先ポート番号」エラーを表すResultを返す。 470 * @return 「不正な通信先ポート番号」エラーを表すResult 471 */ 472 NN_DEFINE_RESULT_CONST_LM( 473 ResultRequestPortErr, 474 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_REQ_CONNMSG_PORT 475 ); 476 477 /** 478 * @brief 「認識できないメソッド」エラーを表すResultを返す。 479 * @return 「認識できないメソッド」エラーを表すResult 480 */ 481 NN_DEFINE_RESULT_CONST_LM( 482 ResultRequestUnknownMethodErr, 483 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_REQ_UNKNOWN_METHOD 484 ); 485 486 /** 487 * @brief 「不正なHTTPヘッダ」エラーを表すResultを返す。 488 * @return 「不正なHTTPヘッダ」エラーを表すResult 489 */ 490 NN_DEFINE_RESULT_CONST_LM( 491 ResultRequestHeaderErr, 492 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_RES_HEADER 493 ); 494 495 /** 496 * @brief 「HTTPヘッダ次行なし」エラーを表すResultを返す。 497 * @return 「HTTPヘッダ次行なし」エラーを表すResult 498 */ 499 NN_DEFINE_RESULT_CONST_LM( 500 ResultRequestNoNewLineErr, 501 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_RES_NONEWLINE 502 ); 503 504 /** 505 * @brief 「HTTPボディ受信バッファエラー」エラーを表すResultを返す。 506 * @return 「HTTPボディ受信バッファエラー」エラーを表すResult 507 */ 508 NN_DEFINE_RESULT_CONST_LM( 509 ResultBodyBufErr, 510 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_RES_BODYBUF 511 ); 512 513 /** 514 * @brief 「HTTP Body受信バッファの容量不足」を表すResultを返す。 515 * @return 「HTTP Body受信バッファの容量不足」を表すResult 516 */ 517 NN_DEFINE_RESULT_CONST_LM( 518 ResultBodyBufShortage, 519 detail::MakePermanentResult, Result::SUMMARY_WOULD_BLOCK, ER_RES_BODYBUF_SHORTAGE 520 ); 521 522 /** 523 * @brief 「POSTデータ追加失敗」エラーを表すResultを返す。 524 * @return 「POSTデータ追加失敗」エラーを表すResult 525 */ 526 NN_DEFINE_RESULT_CONST_LM( 527 ResultPostAddedAnotherErr, 528 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_POST_ADDED_ANOTHER 529 ); 530 531 /** 532 * @brief 「POSTデータのBoundaryが正しく設定できない」エラーを表すResultを返す。 533 * @return 「POSTデータのBoundaryが正しく設定できない」エラーを表すResult 534 */ 535 NN_DEFINE_RESULT_CONST_LM( 536 ResultPostBoundaryErr, 537 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_POST_BOUNDARY 538 ); 539 540 /** 541 * @brief 「POSTリクエスト送信失敗」エラーを表すResultを返す。 542 * @return 「POSTリクエスト送信失敗」エラーを表すResult 543 */ 544 NN_DEFINE_RESULT_CONST_LM( 545 ResultPostSendErr, 546 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_POST_SEND 547 ); 548 549 /** 550 * @brief 「POST用として不明なエンコードタイプ」エラーを表すResultを返す。 551 * @return 「POST用として不明なエンコードタイプ」エラーを表すResult 552 */ 553 NN_DEFINE_RESULT_CONST_LM( 554 ResultPostUnknownEnctypeErr, 555 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_POST_UNKNOWN_ENCTYPE 556 ); 557 558 /** 559 * @brief 「POST用の送信データ設定無し」エラーを表すResultを返す。 560 * @return 「POST用の送信データ設定無し」エラーを表すResult 561 */ 562 NN_DEFINE_RESULT_CONST_LM( 563 ResultPostNoDataErr, 564 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_POST_NODATA 565 ); 566 567 568 569 /** 570 * @brief 「SSLエラー」エラーを表すResultを返す。 571 * @return 「SSLエラー」エラーを表すResult 572 */ 573 NN_DEFINE_RESULT_CONST_LM( 574 ResultSslErr, 575 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SSL 576 ); 577 578 /** 579 * @brief 「SSL 証明書設定済み(再登録前に削除が必要)」エラーを表すResultを返す。 580 * @return 「SSL 証明書設定済み(再登録前に削除が必要)」エラーを表すResult 581 */ 582 NN_DEFINE_RESULT_CONST_LM( 583 ResultCertExistErr, 584 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SSL_CERT_EXIST 585 ); 586 587 /** 588 * @brief 「SSL 該当するCA証明書ストアが登録されていない」エラーを表すResultを返す。 589 * @return 「SSL 該当するCA証明書ストアが登録されていない」エラーを表すResult 590 */ 591 NN_DEFINE_RESULT_CONST_LM( 592 ResultNoCaCertStoreErr, 593 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SSL_NO_CA_CERT_STORE 594 ); 595 596 /** 597 * @brief 「SSL 該当するクライアント証明書が登録されていない」エラーを表すResultを返す。 598 * @return 「SSL 該当するクライアント証明書が登録されていない」エラーを表すResult 599 */ 600 NN_DEFINE_RESULT_CONST_LM( 601 ResultNoClientCertErr, 602 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SSL_NO_CLIENT_CERT 603 ); 604 605 /** 606 * @brief 「SSL プロセスごとのCA証明書ストア同時登録最大数の証明書ストアがすでに登録されている。」エラーを表すResultを返す。 607 * @return 「SSL プロセスごとのCA証明書ストア同時登録最大数の証明書ストアがすでに登録されている。」エラーを表すResult 608 */ 609 NN_DEFINE_RESULT_CONST_LM( 610 ResultCaCertStoreMaxErr, 611 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SSL_CA_CERT_STORE_MAX 612 ); 613 614 /** 615 * @brief 「SSL プロセスごとのクライアント証明書同時登録最大数の証明書がすでに登録されている。」エラーを表すResultを返す。 616 * @return 「SSL プロセスごとのクライアント証明書同時登録最大数の証明書がすでに登録されている。」エラーを表すResult 617 */ 618 NN_DEFINE_RESULT_CONST_LM( 619 ResultClientCertMaxErr, 620 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SSL_CLIENT_CERT_MAX 621 ); 622 623 /** 624 * @brief 「SSL 証明書ストアの作成に失敗」エラーを表すResultを返す。 625 * @return 「SSL 証明書ストアの作成に失敗」エラーを表すResult 626 */ 627 NN_DEFINE_RESULT_CONST_LM( 628 ResultFailToCreateCertStoreErr, 629 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SSL_FAIL_TO_CREATE_CERT_STORE 630 ); 631 632 /** 633 * @brief 「 SSL クライアント証明書の作成に失敗」エラーを表すResultを返す。 634 * @return 「 SSL クライアント証明書の作成に失敗」エラーを表すResult 635 */ 636 NN_DEFINE_RESULT_CONST_LM( 637 ResultFailToCreateClientCertErr, 638 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SSL_FAIL_TO_CREATE_CLIENT_CERT 639 ); 640 641 /** 642 * @brief 「DNS名前解決失敗」エラーを表すResultを返す。 643 * @return 「DNS名前解決失敗」エラーを表すResult 644 */ 645 NN_DEFINE_RESULT_CONST_LM( 646 ResultDnsResolutionErr, 647 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SOC_DNS 648 ); 649 650 /** 651 * @brief 「ソケットデータ送信失敗」エラーを表すResultを返す。 652 * @return 「ソケットデータ送信失敗」エラーを表すResult 653 */ 654 NN_DEFINE_RESULT_CONST_LM( 655 ResultSocketSendErr, 656 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SOC_SEND 657 ); 658 659 /** 660 * @brief 「ソケットデータ受信失敗」エラーを表すResultを返す。 661 * @return 「ソケットデータ受信失敗」エラーを表すResult 662 */ 663 NN_DEFINE_RESULT_CONST_LM( 664 ResultSocketReceiveErr, 665 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SOC_RECV 666 ); 667 668 /** 669 * @brief 「ソケット接続失敗」エラーを表すResultを返す。 670 * @return 「ソケット接続失敗」エラーを表すResult 671 */ 672 NN_DEFINE_RESULT_CONST_LM( 673 ResultSocketConnectErr, 674 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SOC_CONN 675 ); 676 677 /** 678 * @brief 「機器に設定されているProxy値の取得に失敗した。」エラーを表すResultを返す。 679 * @return 「機器に設定されているProxy値の取得に失敗した。」エラーを表すResult 680 */ 681 NN_DEFINE_RESULT_CONST_LM( 682 ResultGetProxySettingErr, 683 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_GET_PROXY_SETTING 684 ); 685 686 /** 687 * @brief 「処理が未実装です。」を表すResultを返す。このエラーは内部実装エラーである。 688 * @return 「処理が未実装です。」を表すResult 689 */ 690 NN_DEFINE_RESULT_CONST_LM( 691 ResultNotImplementedErr, 692 detail::MakePermanentResult, Result::SUMMARY_INTERNAL, nn::Result::DESCRIPTION_NOT_IMPLEMENTED 693 ); 694 695 /** 696 * @brief 「タイムアウト」を表すResultを返す。 697 * @return 「タイムアウト」を表すResult 698 */ 699 NN_DEFINE_RESULT_CONST_LM( 700 ResultTimeout, 701 detail::MakePermanentResult, Result::SUMMARY_NOTHING_HAPPENED, ER_TIMEOUT 702 ); 703 } 704 } 705 706 #endif // __cplusplus 707 708 709 710 711 712 #endif /* NN_NHTTP_NHTTP_RESULT_H_ */ 713