/*---------------------------------------------------------------------------* 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: 22590 $ *---------------------------------------------------------------------------*/ #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_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_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(returnCode)); } } /** * @brief 「不正なステータス」を表すResultを返す。 * @return 「不正なステータス」を表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultInvalidStatusErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_INVALID_STATUS ); /** * @brief 「不正なパラメータ」エラーを表すResultを返す。 * @return 「不正なパラメータ」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultInvalidParamErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_ARGUMENT, ER_INVALID_PARAM ); /** * @brief 「メモリの動的確保失敗」エラーを表すResultを返す。 * @return 「メモリの動的確保失敗」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultOutOfMemoryErr, detail::MakePermanentResult, Result::SUMMARY_OUT_OF_RESOURCE, ER_NOMEM ); /** * @brief 「イベント生成失敗」エラーを表すResultを返す。 * @return 「イベント生成失敗」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultCreateEventErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CREATE_EVENT ); /** * @brief 「ミューテックス生成失敗」エラーを表すResultを返す。 * @return 「ミューテックス生成失敗」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultCreateMutexErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CREATE_MUTEX ); /** * @brief 「メッセージキュー生成失敗」エラーを表すResultを返す。 * @return 「メッセージキュー生成失敗」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultCreateQueueErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CREATE_QUEUE ); /** * @brief 「スレッド生成失敗」エラーを表すResultを返す。 * @return 「スレッド生成失敗」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultCreateThreadErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CREATE_THREAD ); /** * @brief 「コネクションの未初期化」エラーを表すResultを返す。 * @return 「コネクションの未初期化」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultNotConnectedErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CONNECTION_NOT_INITIALIZED ); /** * @brief 「すでに通信先ホストが割り当て済み」エラーを表すResultを返す。 * @return 「すでに通信先ホストが割り当て済み」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultAlreadyAssignHostErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_ALREADY_ASSIGN_HOST ); /** * @brief 「IPCセッションが不正である」エラーを表すResultを返す。 * @return 「IPCセッションが不正である」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultSessionErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SESSION ); /** * @brief 「同時利用可能なクライアントプロセス数のクライアントがすでに利用中である。」エラーを表すResultを返す。 * @return 「同時利用可能なクライアントプロセス数のクライアントがすでに利用中である。」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultClientProcessMaxErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CLIENT_PROCESS_MAX ); /** * @brief 「同時に接続可能なIPCセッション数のセッションがすでに接続されている」エラーを表すResultを返す。 * @return 「同時に接続可能なIPCセッション数のセッションがすでに接続されている」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultIpcSessionMaxErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_IPC_SESSION_MAX ); /** * @brief 「ライブラリが初期化済」エラーを表すResultを返す。 * @return 「ライブラリが初期化済」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultAlreadyInitializedErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_ALREADY_INITIALIZED ); /** * @brief 「ライブラリが未初期化」エラーを表すResultを返す。 * @return 「ライブラリが未初期化」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultNotInitializedErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_NOT_INITIALIZED ); /** * @brief 「リスナースレッドメッセージキューへの送信失敗」エラーを表すResultを返す。 * @return 「リスナースレッドメッセージキューへの送信失敗」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultMessageSendToListenThreadErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_MSGQ_SEND_LSN ); /** * @brief 「リスナースレッドメッセージキュー受信失敗」エラーを表すResultを返す。 * @return 「リスナースレッドメッセージキュー受信失敗」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultMessageRecvInListenThreadErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_MSGQ_RECV_LSN ); /** * @brief 「通信スレッドメッセージキュー受信失敗」エラーを表すResultを返す。 * @return 「通信スレッドメッセージキュー受信失敗」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultMessageRecvInCommunicationThreadErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_MSGQ_RECV_COMM ); /** * @brief 「接続ハンドル登録最大数越え」エラーを表すResultを返す。 * @return 「接続ハンドル登録最大数越え」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultConnectionNoMoreErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CONN_NOMORE ); /** * @brief 「存在しないコネクションに対する処理依頼」エラーを表すResultを返す。 * @return 「存在しないコネクションに対する処理依頼」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultNoSuchConnectionErr, detail::MakePermanentResult, Result::SUMMARY_NOT_FOUND, ER_CONN_NOSUCH ); /** * @brief 「コネクションのステータス不正」エラーを表すResultを返す。(例えば、APIを呼び出す順序が不正な場合に返されるResult) * @return 「コネクションのステータス不正」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultConnectionStatusErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CONN_STATUS ); /** * @brief 「コネクションの登録失敗」エラーを表すResultを返す。 * @return 「コネクションの登録失敗」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultConnectionAddErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CONN_ADD ); /** * @brief 「コネクションのキャンセル」エラーを表すResultを返す。 * @return 「コネクションのキャンセル」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultConnectionCanceledErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CONN_CANCELED ); /** * @brief 「同一ホストへの最大同時接続数越え」エラーを表すResultを返す。 * @return 「同一ホストへの最大同時接続数越え」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultConnectionHostMaxErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CONN_HOST_MAX ); /** * @brief 「1プロセスの使用コネクション最大数越え」エラーを表すResultを返す。 * @return 「1プロセスの使用コネクション最大数越え」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultConnectionProcessMaxErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CONN_PROCESS_MAX ); /** * @brief 「不正なURL」エラーを表すResultを返す。 * @return 「不正なURL」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultRequestUrlErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_REQ_URL ); /** * @brief 「不正な通信先ポート番号」エラーを表すResultを返す。 * @return 「不正な通信先ポート番号」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultRequestPortErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_REQ_CONNMSG_PORT ); /** * @brief 「認識できないメソッド」エラーを表すResultを返す。 * @return 「認識できないメソッド」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultRequestUnknownMethodErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_REQ_UNKNOWN_METHOD ); /** * @brief 「不正なHTTPヘッダ」エラーを表すResultを返す。 * @return 「不正なHTTPヘッダ」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultRequestHeaderErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_RES_HEADER ); /** * @brief 「HTTPヘッダ次行なし」エラーを表すResultを返す。 * @return 「HTTPヘッダ次行なし」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultRequestNoNewLineErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_RES_NONEWLINE ); /** * @brief 「HTTPボディ受信バッファエラー」エラーを表すResultを返す。 * @return 「HTTPボディ受信バッファエラー」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultBodyBufErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_RES_BODYBUF ); /** * @brief 「HTTP Body受信バッファの容量不足」を表すResultを返す。 * @return 「HTTP Body受信バッファの容量不足」を表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultBodyBufShortage, detail::MakePermanentResult, Result::SUMMARY_WOULD_BLOCK, ER_RES_BODYBUF_SHORTAGE ); /** * @brief 「POSTデータ追加失敗」エラーを表すResultを返す。 * @return 「POSTデータ追加失敗」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultPostAddedAnotherErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_POST_ADDED_ANOTHER ); /** * @brief 「POSTデータのBoundaryが正しく設定できない」エラーを表すResultを返す。 * @return 「POSTデータのBoundaryが正しく設定できない」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultPostBoundaryErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_POST_BOUNDARY ); /** * @brief 「POSTリクエスト送信失敗」エラーを表すResultを返す。 * @return 「POSTリクエスト送信失敗」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultPostSendErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_POST_SEND ); /** * @brief 「POST用として不明なエンコードタイプ」エラーを表すResultを返す。 * @return 「POST用として不明なエンコードタイプ」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultPostUnknownEnctypeErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_POST_UNKNOWN_ENCTYPE ); /** * @brief 「POST用の送信データ設定無し」エラーを表すResultを返す。 * @return 「POST用の送信データ設定無し」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultPostNoDataErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_POST_NODATA ); /** * @brief 「SSLエラー」エラーを表すResultを返す。 * @return 「SSLエラー」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultSslErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SSL ); /** * @brief 「SSL 証明書設定済み(再登録前に削除が必要)」エラーを表すResultを返す。 * @return 「SSL 証明書設定済み(再登録前に削除が必要)」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultCertExistErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SSL_CERT_EXIST ); /** * @brief 「SSL 該当するCA証明書ストアが登録されていない」エラーを表すResultを返す。 * @return 「SSL 該当するCA証明書ストアが登録されていない」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultNoCaCertStoreErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SSL_NO_CA_CERT_STORE ); /** * @brief 「SSL 該当するクライアント証明書が登録されていない」エラーを表すResultを返す。 * @return 「SSL 該当するクライアント証明書が登録されていない」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultNoClientCertErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SSL_NO_CLIENT_CERT ); /** * @brief 「SSL プロセスごとのCA証明書ストア同時登録最大数の証明書ストアがすでに登録されている。」エラーを表すResultを返す。 * @return 「SSL プロセスごとのCA証明書ストア同時登録最大数の証明書ストアがすでに登録されている。」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultCaCertStoreMaxErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SSL_CA_CERT_STORE_MAX ); /** * @brief 「SSL プロセスごとのクライアント証明書同時登録最大数の証明書がすでに登録されている。」エラーを表すResultを返す。 * @return 「SSL プロセスごとのクライアント証明書同時登録最大数の証明書がすでに登録されている。」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultClientCertMaxErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SSL_CLIENT_CERT_MAX ); /** * @brief 「SSL 証明書ストアの作成に失敗」エラーを表すResultを返す。 * @return 「SSL 証明書ストアの作成に失敗」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultFailToCreateCertStoreErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SSL_FAIL_TO_CREATE_CERT_STORE ); /** * @brief 「 SSL クライアント証明書の作成に失敗」エラーを表すResultを返す。 * @return 「 SSL クライアント証明書の作成に失敗」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultFailToCreateClientCertErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SSL_FAIL_TO_CREATE_CLIENT_CERT ); /** * @brief 「DNS名前解決失敗」エラーを表すResultを返す。 * @return 「DNS名前解決失敗」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultDnsResolutionErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SOC_DNS ); /** * @brief 「ソケットデータ送信失敗」エラーを表すResultを返す。 * @return 「ソケットデータ送信失敗」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultSocketSendErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SOC_SEND ); /** * @brief 「ソケットデータ受信失敗」エラーを表すResultを返す。 * @return 「ソケットデータ受信失敗」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultSocketReceiveErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SOC_RECV ); /** * @brief 「ソケット接続失敗」エラーを表すResultを返す。 * @return 「ソケット接続失敗」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultSocketConnectErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_SOC_CONN ); /** * @brief 「機器に設定されているProxy値の取得に失敗した。」エラーを表すResultを返す。 * @return 「機器に設定されているProxy値の取得に失敗した。」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultGetProxySettingErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_GET_PROXY_SETTING ); /** * @brief 「処理が未実装です。」を表すResultを返す。このエラーは内部実装エラーである。 * @return 「処理が未実装です。」を表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultNotImplementedErr, detail::MakePermanentResult, Result::SUMMARY_INTERNAL, nn::Result::DESCRIPTION_NOT_IMPLEMENTED ); /** * @brief 「タイムアウト」を表すResultを返す。 * @return 「タイムアウト」を表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultTimeout, detail::MakePermanentResult, Result::SUMMARY_NOTHING_HAPPENED, ER_TIMEOUT ); } } #endif // __cplusplus #endif /* NN_NHTTP_NHTTP_RESULT_H_ */