/*---------------------------------------------------------------------------* Project: Horizon File: http_Result.h Copyright (C)2009 Nintendo Co., Ltd. All rights reserved. These coded instructions, statements, and computer programs contain proprietary information of Nintendo of America Inc. and/or Nintendo Company Ltd., and are protected by Federal copyright law. They may not be disclosed to third parties or copied or duplicated in any form, in whole or in part, without the prior written consent of Nintendo. $Rev: 29844 $ *---------------------------------------------------------------------------*/ #ifndef NN_HTTP_HTTP_RESULT_H_ #define NN_HTTP_HTTP_RESULT_H_ #include #include //NHTTPライブラリのResultコードを、HTTPのResultCodeに変換するためのマクロ #define CHANGE_NHTTP_RESULT_CODE_MASK 0x000003ff #define CHANGE_NHTTP_RESULT_CODE(nhttpCode) \ (nhttpCode) & (CHANGE_NHTTP_RESULT_CODE_MASK) /*! @addtogroup nn_http http @{ */ /*! @brief APIのC言語用結果コード。APIの返値であるnnResultのdescription要素として格納される。 */ enum nnHttpResultCode { /* 汎用*/ NN_HTTP_ER_NONE = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_NONE), //!< エラー無し NN_HTTP_ER_INVALID_STATUS = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_INVALID_STATUS), //!< 不正なステータス NN_HTTP_ER_INVALID_PARAM = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_INVALID_PARAM), //!< 不正なパラメータ NN_HTTP_ER_NOMEM = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_NOMEM), //!< メモリの動的確保失敗 NN_HTTP_ER_CREATE_EVENT = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CREATE_EVENT), //!< イベント生成失敗 NN_HTTP_ER_CREATE_MUTEX = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CREATE_MUTEX), //!< ミューテックス生成失敗 NN_HTTP_ER_CREATE_QUEUE = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CREATE_QUEUE), //!< メッセージキュー生成失敗 NN_HTTP_ER_CREATE_THREAD = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CREATE_THREAD), //!< スレッド生成失敗 NN_HTTP_ER_CONNECTION_NOT_INITIALIZED = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CODE(100)), //!< コネクションの未初期化 NN_HTTP_ER_ALREADY_ASSIGN_HOST = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CODE(101)), //!< 通信先がすでに割り当て済みである NN_HTTP_ER_SESSION = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CODE(102)), //!< 不正なプロセスによるセッションの乗っ取り NN_HTTP_ER_CLIENT_PROCESS_MAX = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CODE(103)), //!< 同時利用可能なクライアントプロセス数のクライアントがすでに利用中である。 NN_HTTP_ER_IPC_SESSION_MAX = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CODE(104)), //!< 同時に接続可能なIPCセッション数のセッションがすでに接続されている(つまりクライアント数、コネクション数共に最大値に達している。) NN_HTTP_ER_TIMEOUT = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CODE(105)), //!< タイムアウト /* ライブラリ処理関連 */ NN_HTTP_ER_ALREADY_INITIALIZED = nn::Result::DESCRIPTION_ALREADY_INITIALIZED, //!< ライブラリが初期化済み NN_HTTP_ER_NOT_INITIALIZED = nn::Result::DESCRIPTION_NOT_INITIALIZED, //!< ライブラリが未初期化 /* メッセージキュー関連 */ NN_HTTP_ER_MSGQ_SEND_LSN = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_MSGQ_SEND_LSN), //!< リスナースレッドメッセージキューへの送信失敗 NN_HTTP_ER_MSGQ_RECV_LSN = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_MSGQ_RECV_LSN), //!< リスナースレッドメッセージキュー受信失敗 NN_HTTP_ER_MSGQ_RECV_COMM = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_MSGQ_RECV_COMM), //!< 通信スレッドメッセージキュー受信失敗 /* 接続ハンドル関連 */ NN_HTTP_ER_CONN_NOMORE = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CONN_NOMORE), //!< 接続ハンドル登録最大数越え NN_HTTP_ER_CONN_NOSUCH = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CONN_NOSUCH), //!< 該当接続ハンドルなし NN_HTTP_ER_CONN_STATUS = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CONN_STATUS), //!< 接続ハンドル不正ステータス NN_HTTP_ER_CONN_ADD = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CONN_ADD), //!< 接続ハンドル登録失敗 NN_HTTP_ER_CONN_CANCELED = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CONN_CANCELED), //!< 接続ハンドルキャンセル NN_HTTP_ER_CONN_HOST_MAX = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CONN_HOST_MAX), //!< 同一ホストへの最大同時接続数越え NN_HTTP_ER_CONN_PROCESS_MAX = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CODE(26)), //!< 1プロセスの使用コネクション最大数越え /* リクエスト関連 */ NN_HTTP_ER_REQ_URL = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_REQ_URL), //!< 不正なURL NN_HTTP_ER_REQ_CONNMSG_PORT = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_REQ_CONNMSG_PORT), //!< CONNECT送信用ポート番号不正 NN_HTTP_ER_REQ_UNKNOWN_METHOD = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_REQ_UNKNOWN_METHOD), //!< 認識できないメソッド /* レスポンス関連 */ NN_HTTP_ER_RES_HEADER = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_RES_HEADER), //!< 不正なHTTPヘッダ NN_HTTP_ER_RES_NONEWLINE = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_RES_NONEWLINE), //!< HTTPヘッダ次行なし NN_HTTP_ER_RES_BODYBUF = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_RES_BODYBUF), //!< HTTPボディ受信バッファエラー NN_HTTP_ER_RES_BODYBUF_SHORTAGE = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CODE(43)), //!< HTTPボディ受信バッファの不足 /* POST関連 */ NN_HTTP_ER_POST_ADDED_ANOTHER = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_POST_ADDED_ANOTHER), //!< POSTデータ追加失敗(別タイプPOSTが既存) NN_HTTP_ER_POST_BOUNDARY = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_POST_BOUNDARY), //!< Boundaryが正しく設定できない NN_HTTP_ER_POST_SEND = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_POST_SEND), //!< POSTリクエスト送信失敗 NN_HTTP_ER_POST_UNKNOWN_ENCTYPE = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_POST_UNKNOWN_ENCTYPE),//!< 不明なエンコードタイプ NN_HTTP_ER_POST_NODATA = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_POST_NODATA), //!< 送信データ設定無し /* SSL関連 */ NN_HTTP_ER_SSL = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_SSL), //!< SSLエラー NN_HTTP_ER_SSL_CERT_EXIST = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_SSL_CERT_EXIST), //!< SSL 証明書設定済み(再登録前に削除が必要) NN_HTTP_ER_SSL_NO_CA_CERT_STORE = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CODE(200)), //!< SSL 該当するCA証明書ストアが登録されていない NN_HTTP_ER_SSL_NO_CLIENT_CERT = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CODE(201)), //!< SSL 該当するクライアント証明書が登録されていない NN_HTTP_ER_SSL_CA_CERT_STORE_MAX = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CODE(202)), //!< SSL プロセスごとのCA証明書ストア同時登録最大数の証明書ストアがすでに登録されている。 NN_HTTP_ER_SSL_CLIENT_CERT_MAX = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CODE(203)), //!< SSL プロセスごとのクライアント証明書同時登録最大数の証明書がすでに登録されている。 NN_HTTP_ER_SSL_FAIL_TO_CREATE_CERT_STORE = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CODE(204)), //!< SSL 証明書ストアの作成に失敗 NN_HTTP_ER_SSL_FAIL_TO_CREATE_CLIENT_CERT = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_CODE(205)), //!< SSL クライアント証明書の作成に失敗 /* ソケット関連 */ NN_HTTP_ER_SOC_DNS = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_SOC_DNS), //!< DNS名前解決失敗 NN_HTTP_ER_SOC_SEND = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_SOC_SEND), //!< ソケットデータ送信失敗 NN_HTTP_ER_SOC_RECV = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_SOC_RECV), //!< ソケットデータ受信失敗 NN_HTTP_ER_SOC_CONN = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_SOC_CONN), //!< ソケット接続失敗 NN_HTTP_ER_SOC_KEEPALIVE_DISCONNECTED = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_SOC_KEEPALIVE_DISCONNECTED), //!< キープアライブ通信がサーバ側から切断された /* プロキシ関連 */ NN_HTTP_ER_GET_PROXY_SETTING = CHANGE_NHTTP_RESULT_CODE(NHTTP_ER_GET_DEFAULT_PROXY) //!< 機器に設定されているProxy値の取得に失敗した。 }; /*! @} */ #ifdef __cplusplus namespace nn { namespace http { /*! @brief APIの結果コード。APIの返値であるResultのdescription要素として格納される。 @note 現状はNHTTPライブラリの結果コード値と合わせる(ただしResultのdescriptionは10bitであるため、下位10bitのみ用いる。)NHTTPライブラリと依存関係になってしまうため、将来的には独立した値に変更する。 */ enum ResultCode { /* 汎用*/ ER_NONE = NN_HTTP_ER_NONE, //!< エラー無し ER_INVALID_STATUS = NN_HTTP_ER_INVALID_STATUS, //!< 不正なステータス ER_INVALID_PARAM = NN_HTTP_ER_INVALID_PARAM, //!< 不正なパラメータ ER_NOMEM = NN_HTTP_ER_NOMEM, //!< メモリの動的確保失敗 ER_CREATE_EVENT = NN_HTTP_ER_CREATE_EVENT, //!< イベント生成失敗 ER_CREATE_MUTEX = NN_HTTP_ER_CREATE_MUTEX, //!< ミューテックス生成失敗 ER_CREATE_QUEUE = NN_HTTP_ER_CREATE_QUEUE, //!< メッセージキュー生成失敗 ER_CREATE_THREAD = NN_HTTP_ER_CREATE_THREAD, //!< スレッド生成失敗 ER_CONNECTION_NOT_INITIALIZED = NN_HTTP_ER_CONNECTION_NOT_INITIALIZED, //!< 通信先が割り当てられていない ER_ALREADY_ASSIGN_HOST = NN_HTTP_ER_ALREADY_ASSIGN_HOST, //!< 通信先がすでに割り当て済みである ER_SESSION = NN_HTTP_ER_SESSION, //!< IPCセッションが不正である ER_CLIENT_PROCESS_MAX = NN_HTTP_ER_CLIENT_PROCESS_MAX, //!< 同時利用可能なクライアントプロセス数のクライアントがすでに利用中である。 ER_IPC_SESSION_MAX = NN_HTTP_ER_IPC_SESSION_MAX , //!< 同時に接続可能なIPCセッション数のセッションがすでに接続されている(つまりクライアント数、コネクション数共に最大値に達している。) ER_TIMEOUT = NN_HTTP_ER_TIMEOUT, //!< タイムアウト /* ライブラリ処理関連 */ ER_ALREADY_INITIALIZED = NN_HTTP_ER_ALREADY_INITIALIZED, //!< ライブラリが初期化済み ER_NOT_INITIALIZED = NN_HTTP_ER_NOT_INITIALIZED, //!< ライブラリが未初期化 /* メッセージキュー関連 */ ER_MSGQ_SEND_LSN = NN_HTTP_ER_MSGQ_SEND_LSN, //!< リスナースレッドメッセージキューへの送信失敗 ER_MSGQ_RECV_LSN = NN_HTTP_ER_MSGQ_RECV_LSN, //!< リスナースレッドメッセージキュー受信失敗 ER_MSGQ_RECV_COMM = NN_HTTP_ER_MSGQ_RECV_COMM, //!< 通信スレッドメッセージキュー受信失敗 /* 接続ハンドル関連 */ ER_CONN_NOMORE = NN_HTTP_ER_CONN_NOMORE, //!< 接続ハンドル登録最大数越え ER_CONN_NOSUCH = NN_HTTP_ER_CONN_NOSUCH, //!< 該当接続ハンドルなし ER_CONN_STATUS = NN_HTTP_ER_CONN_STATUS, //!< 接続ハンドル不正ステータス ER_CONN_ADD = NN_HTTP_ER_CONN_ADD, //!< 接続ハンドル登録失敗 ER_CONN_CANCELED = NN_HTTP_ER_CONN_CANCELED, //!< 接続ハンドルキャンセル ER_CONN_HOST_MAX = NN_HTTP_ER_CONN_HOST_MAX, //!< 同一ホストへの最大同時接続数越え ER_CONN_PROCESS_MAX = NN_HTTP_ER_CONN_PROCESS_MAX, //!< 1プロセスの使用コネクション最大数越え /* リクエスト関連 */ ER_REQ_URL = NN_HTTP_ER_REQ_URL, //!< 不正なURL ER_REQ_CONNMSG_PORT = NN_HTTP_ER_REQ_CONNMSG_PORT, //!< CONNECT送信用ポート番号不正 ER_REQ_UNKNOWN_METHOD = NN_HTTP_ER_REQ_UNKNOWN_METHOD, //!< 認識できないメソッド /* レスポンス関連 */ ER_RES_HEADER = NN_HTTP_ER_RES_HEADER, //!< 不正なHTTPヘッダ ER_RES_NONEWLINE = NN_HTTP_ER_RES_NONEWLINE, //!< HTTPヘッダ次行なし ER_RES_BODYBUF = NN_HTTP_ER_RES_BODYBUF, //!< HTTPボディ受信バッファエラー ER_RES_BODYBUF_SHORTAGE = NN_HTTP_ER_RES_BODYBUF_SHORTAGE, //!< HTTPボディ受信バッファの不足 /* POST関連 */ ER_POST_ADDED_ANOTHER = NN_HTTP_ER_POST_ADDED_ANOTHER, //!< POSTデータ追加失敗(別タイプPOSTが既存) ER_POST_BOUNDARY = NN_HTTP_ER_POST_BOUNDARY, //!< Boundaryが正しく設定できない ER_POST_SEND = NN_HTTP_ER_POST_SEND, //!< POSTリクエスト送信失敗 ER_POST_UNKNOWN_ENCTYPE = NN_HTTP_ER_POST_UNKNOWN_ENCTYPE, //!< 不明なエンコードタイプ ER_POST_NODATA = NN_HTTP_ER_POST_NODATA, //!< 送信データ設定無し /* SSL関連 */ ER_SSL = NN_HTTP_ER_SSL, //!< SSLエラー ER_SSL_CERT_EXIST = NN_HTTP_ER_SSL_CERT_EXIST, //!< SSL 証明書設定済み(再登録前に削除が必要) ER_SSL_NO_CA_CERT_STORE = NN_HTTP_ER_SSL_NO_CA_CERT_STORE, //!< SSL 該当するCA証明書ストアが登録されていない ER_SSL_NO_CLIENT_CERT = NN_HTTP_ER_SSL_NO_CLIENT_CERT, //!< SSL 該当するクライアント証明書が登録されていない ER_SSL_CA_CERT_STORE_MAX = NN_HTTP_ER_SSL_CA_CERT_STORE_MAX, //!< SSL プロセスごとのCA証明書ストア同時登録最大数の証明書ストアがすでに登録されている。 ER_SSL_CLIENT_CERT_MAX = NN_HTTP_ER_SSL_CLIENT_CERT_MAX, //!< SSL プロセスごとのクライアント証明書同時登録最大数の証明書がすでに登録されている。 ER_SSL_FAIL_TO_CREATE_CERT_STORE = NN_HTTP_ER_SSL_FAIL_TO_CREATE_CERT_STORE, //!< SSL 証明書ストアの作成に失敗 ER_SSL_FAIL_TO_CREATE_CLIENT_CERT = NN_HTTP_ER_SSL_FAIL_TO_CREATE_CLIENT_CERT, //!< SSL クライアント証明書の作成に失敗 /* ソケット関連 */ ER_SOC_DNS = NN_HTTP_ER_SOC_DNS, //!< DNS名前解決失敗 ER_SOC_SEND = NN_HTTP_ER_SOC_SEND, //!< ソケットデータ送信失敗 ER_SOC_RECV = NN_HTTP_ER_SOC_RECV, //!< ソケットデータ受信失敗/ ER_SOC_CONN = NN_HTTP_ER_SOC_CONN, //!< ソケット接続失敗 ER_SOC_KEEPALIVE_DISCONNECTED = NN_HTTP_ER_SOC_KEEPALIVE_DISCONNECTED, //!< キープアライブ通信がサーバ側から切断された /* プロキシ関連*/ ER_GET_PROXY_SETTING = NN_HTTP_ER_GET_PROXY_SETTING //!< 機器に設定されているProxy値の取得に失敗した。 }; namespace detail { /** * @brief NHTTPのPermanentエラーを表すResultを返す。 * @param summary エラーを表すResult::Summary値。 * @param errCode エラーコード(nn::http::ResultCode列挙体のいずれかの値) * @return 引数に対応するPermanentエラーを表すResult。 */ NN_DEFINE_RESULT_FUNC_LM(MakePermanentResult, Result::LEVEL_PERMANENT, Result::MODULE_NN_HTTP); /** * @brief リターンコードに対して、それを表すResultを返す。 * @param returnCode リターンコード(nn::http::ResultCode列挙体のいずれかの値) * @return 引数の内容を表すResult。 */ inline Result ChangeNetHttpRetCodeToResult(ResultCode returnCode) { if(returnCode == ER_NONE) { return ResultSuccess(); } else if(returnCode == ER_INVALID_PARAM) { return MakePermanentResult(Result::SUMMARY_INVALID_ARGUMENT, returnCode); } else { return MakePermanentResult(Result::SUMMARY_INVALID_STATE, returnCode); } } /** * @brief リターンコードに対して、それを表すResultを返す。 * @param returnCode リターンコード(nn::http::ResultCode列挙体の各要素の即値) * @return 引数の内容を表すResult。 */ inline Result ChangeNetHttpRetCodeToResult(s32 returnCode) { return ChangeNetHttpRetCodeToResult(static_cast(CHANGE_NHTTP_RESULT_CODE(returnCode))); } } /*! :category Result @class nn::http::ResultInvalidStatusErr @brief 不正なステータスを表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultInvalidStatusErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_INVALID_STATUS ); /*! :category Result @class nn::http::ResultInvalidParamErr @brief 不正なパラメータを表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultInvalidParamErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_ARGUMENT, ER_INVALID_PARAM ); /*! :category Result @class nn::http::ResultOutOfMemoryErr @brief メモリの動的確保失敗を表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultOutOfMemoryErr, detail::MakePermanentResult, Result::SUMMARY_OUT_OF_RESOURCE, ER_NOMEM ); /*! :category Result @class nn::http::ResultCreateEventErr @brief イベント生成失敗を表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultCreateEventErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CREATE_EVENT ); /*! :category Result @class nn::http::ResultCreateMutexErr @brief ミューテックス生成失敗を表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultCreateMutexErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CREATE_MUTEX ); /*! :category Result @class nn::http::ResultCreateQueueErr @brief メッセージキュー生成失敗を表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultCreateQueueErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CREATE_QUEUE ); /*! :category Result @class nn::http::ResultCreateThreadErr @brief スレッド生成失敗を表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultCreateThreadErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CREATE_THREAD ); /*! :category Result @class nn::http::ResultNotConnectedErr @brief コネクションの未初期化を表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultNotConnectedErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CONNECTION_NOT_INITIALIZED ); /*! :category Result @class nn::http::ResultAlreadyAssignHostErr @brief すでに通信先ホストが割り当て済みを表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultAlreadyAssignHostErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_ALREADY_ASSIGN_HOST ); /*! :category Result @class nn::http::ResultSessionErr @brief IPCセッションが不正であるを表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultSessionErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SESSION ); /*! :category Result @class nn::http::ResultClientProcessMaxErr @brief 同時利用可能なクライアントプロセス数のクライアントがすでに利用中であるを表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultClientProcessMaxErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CLIENT_PROCESS_MAX ); /*! :category Result @class nn::http::ResultIpcSessionMaxErr @brief 同時に接続可能なIPCセッション数のセッションがすでに接続されているを表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultIpcSessionMaxErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_IPC_SESSION_MAX ); /*! :category Result @class nn::http::ResultAlreadyInitializedErr @brief ライブラリが初期化済を表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultAlreadyInitializedErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_ALREADY_INITIALIZED ); /*! :category Result @class nn::http::ResultNotInitializedErr @brief ライブラリが未初期化を表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultNotInitializedErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_NOT_INITIALIZED ); /*! :category Result @class nn::http::ResultMessageSendToListenThreadErr @brief リスナースレッドメッセージキューへの送信失敗を表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultMessageSendToListenThreadErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_MSGQ_SEND_LSN ); /*! :category Result @class nn::http::ResultMessageRecvInListenThreadErr @brief リスナースレッドメッセージキュー受信失敗を表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultMessageRecvInListenThreadErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_MSGQ_RECV_LSN ); /*! :category Result @class nn::http::ResultMessageRecvInCommunicationThreadErr @brief 通信スレッドメッセージキュー受信失敗を表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultMessageRecvInCommunicationThreadErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_MSGQ_RECV_COMM ); /*! :category Result @class nn::http::ResultConnectionNoMoreErr @brief 接続ハンドル登録最大数越えを表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultConnectionNoMoreErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CONN_NOMORE ); /*! :category Result @class nn::http::ResultNoSuchConnectionErr @brief 存在しないコネクションに対する処理依頼を表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultNoSuchConnectionErr, detail::MakePermanentResult, Result::SUMMARY_NOT_FOUND, ER_CONN_NOSUCH ); /*! :category Result @class nn::http::ResultConnectionStatusErr @brief コネクションのステータス不正を表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultConnectionStatusErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CONN_STATUS ); /*! :category Result @class nn::http::ResultConnectionAddErr @brief コネクションの登録失敗を表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultConnectionAddErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CONN_ADD ); /*! :category Result @class nn::http::ResultConnectionCanceledErr @brief コネクションのキャンセルを表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultConnectionCanceledErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CONN_CANCELED ); /*! :category Result @class nn::http::ResultConnectionHostMaxErr @brief 同一ホストへの最大同時接続数越えを表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultConnectionHostMaxErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CONN_HOST_MAX ); /*! :category Result @class nn::http::ResultConnectionProcessMaxErr @brief 1プロセスの使用コネクション最大数越えを表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultConnectionProcessMaxErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CONN_PROCESS_MAX ); /*! :category Result @class nn::http::ResultRequestUrlErr @brief 不正なURLを表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultRequestUrlErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_REQ_URL ); /*! :category Result @class nn::http::ResultRequestPortErr @brief 不正な通信先ポート番号を表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultRequestPortErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_REQ_CONNMSG_PORT ); /*! :category Result @class nn::http::ResultRequestUnknownMethodErr @brief 認識できないメソッドを表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultRequestUnknownMethodErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_REQ_UNKNOWN_METHOD ); /*! :category Result @class nn::http::ResultRequestHeaderErr @brief 不正なHTTPヘッダを表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultRequestHeaderErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_RES_HEADER ); /*! :category Result @class nn::http::ResultRequestNoNewLineErr @brief HTTPヘッダ次行なしを表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultRequestNoNewLineErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_RES_NONEWLINE ); /*! :category Result @class nn::http::ResultBodyBufErr @brief HTTPボディ受信バッファエラーを表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultBodyBufErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_RES_BODYBUF ); /*! :category Result @class nn::http::ResultBodyBufShortage @brief HTTP Body受信バッファの容量不足を表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultBodyBufShortage, detail::MakePermanentResult, Result::SUMMARY_WOULD_BLOCK, ER_RES_BODYBUF_SHORTAGE ); /*! :category Result @class nn::http::ResultPostAddedAnotherErr @brief POSTデータ追加失敗を表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultPostAddedAnotherErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_POST_ADDED_ANOTHER ); /*! :category Result @class nn::http::ResultPostBoundaryErr @brief POSTデータのBoundaryが正しく設定できないを表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultPostBoundaryErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_POST_BOUNDARY ); /*! :category Result @class nn::http::ResultPostSendErr @brief POSTリクエスト送信失敗を表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultPostSendErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_POST_SEND ); /*! :category Result @class nn::http::ResultPostUnknownEnctypeErr @brief POST用として不明なエンコードタイプを表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultPostUnknownEnctypeErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_POST_UNKNOWN_ENCTYPE ); /*! :category Result @class nn::http::ResultPostNoDataErr @brief POST用の送信データ設定無しを表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultPostNoDataErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_POST_NODATA ); /*! :category Result @class nn::http::ResultSslErr @brief SSLエラーを表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultSslErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SSL ); /*! :category Result @class nn::http::ResultCertExistErr @brief SSL 証明書設定済み(再登録前に削除が必要)を表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultCertExistErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SSL_CERT_EXIST ); /*! :category Result @class nn::http::ResultNoCaCertStoreErr @brief SSL 該当するCA証明書ストアが登録されていないを表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultNoCaCertStoreErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SSL_NO_CA_CERT_STORE ); /*! :category Result @class nn::http::ResultNoClientCertErr @brief SSL 該当するクライアント証明書が登録されていないを表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultNoClientCertErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SSL_NO_CLIENT_CERT ); /*! :category Result @class nn::http::ResultCaCertStoreMaxErr @brief SSL プロセスごとのCA証明書ストア同時登録最大数の証明書ストアがすでに登録されているを表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultCaCertStoreMaxErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SSL_CA_CERT_STORE_MAX ); /*! :category Result @class nn::http::ResultClientCertMaxErr @brief SSL プロセスごとのクライアント証明書同時登録最大数の証明書がすでに登録されているを表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultClientCertMaxErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SSL_CLIENT_CERT_MAX ); /*! :category Result @class nn::http::ResultFailToCreateCertStoreErr @brief SSL 証明書ストアの作成に失敗を表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultFailToCreateCertStoreErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SSL_FAIL_TO_CREATE_CERT_STORE ); /*! :category Result @class nn::http::ResultFailToCreateClientCertErr @brief SSL クライアント証明書の作成に失敗を表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultFailToCreateClientCertErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SSL_FAIL_TO_CREATE_CLIENT_CERT ); /*! :category Result @class nn::http::ResultDnsResolutionErr @brief DNS名前解決失敗を表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultDnsResolutionErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SOC_DNS ); /*! :category Result @class nn::http::ResultSocketSendErr @brief ソケットデータ送信失敗を表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultSocketSendErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SOC_SEND ); /*! :category Result @class nn::http::ResultSocketReceiveErr @brief ソケットデータ受信失敗を表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultSocketReceiveErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SOC_RECV ); /*! :category Result @class nn::http::ResultSocketConnectErr @brief ソケット接続失敗を表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultSocketConnectErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SOC_CONN ); /*! :category Result @class nn::http::ResultGetProxySettingErr @brief 機器に設定されているProxy値の取得に失敗を表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultGetProxySettingErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_GET_PROXY_SETTING ); /*! :category Result @class nn::http::ResultNotImplementedErr @brief 処理が未実装を表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultNotImplementedErr, detail::MakePermanentResult, Result::SUMMARY_INTERNAL, nn::Result::DESCRIPTION_NOT_IMPLEMENTED ); /*! :category Result @class nn::http::ResultTimeout @brief タイムアウトを表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultTimeout, detail::MakePermanentResult, Result::SUMMARY_NOTHING_HAPPENED, ER_TIMEOUT ); /*! :category Result @class nn::http::ResultSocketKeepAliveDisconnected @brief キープアライブ通信がサーバ側から切断されたを表します。 */ NN_DEFINE_RESULT_CONST_LM( ResultSocketKeepAliveDisconnected, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SOC_KEEPALIVE_DISCONNECTED ); } } #endif // __cplusplus #endif /* NN_NHTTP_NHTTP_RESULT_H_ */