/*---------------------------------------------------------------------------* Project: Horizon File: friends_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: 35785 $ *---------------------------------------------------------------------------*/ #ifndef NN_FRIENDS_CTR_FRIENDS_RESULT_H_ #define NN_FRIENDS_CTR_FRIENDS_RESULT_H_ #ifdef __cplusplus #include namespace nn { namespace friends { namespace CTR { namespace detail { static const u32 DESCRIPTION_FACILITY_SHIFT = 5; static const u32 DESCRIPTION_RETURN_CODE_UNDEFINED = (1 << (DESCRIPTION_FACILITY_SHIFT + 1)) - 1; } enum Description { DESCRIPTION_FACILITY_CORE = 1 << detail::DESCRIPTION_FACILITY_SHIFT, DESCRIPTION_FACILITY_DDL = 2 << detail::DESCRIPTION_FACILITY_SHIFT, DESCRIPTION_FACILITY_RENDEZVOUS = 3 << detail::DESCRIPTION_FACILITY_SHIFT, DESCRIPTION_FACILITY_PYTHONCORE = 4 << detail::DESCRIPTION_FACILITY_SHIFT, DESCRIPTION_FACILITY_TRANSPORT = 5 << detail::DESCRIPTION_FACILITY_SHIFT, DESCRIPTION_FACILITY_DOCORE = 6 << detail::DESCRIPTION_FACILITY_SHIFT, DESCRIPTION_FACILITY_FPD = 7 << detail::DESCRIPTION_FACILITY_SHIFT, DESCRIPTION_FACILITY_AUTHENTICATION = 8 << detail::DESCRIPTION_FACILITY_SHIFT, DESCRIPTION_CORE_SUCCESS = DESCRIPTION_FACILITY_CORE + 0, DESCRIPTION_CORE_SUCCESS_PENDING = DESCRIPTION_FACILITY_CORE + 1, DESCRIPTION_CORE_UNKNOWN = DESCRIPTION_FACILITY_CORE + 2, DESCRIPTION_CORE_NOT_IMPLEMENTED = DESCRIPTION_FACILITY_CORE + 3, DESCRIPTION_CORE_INVALID_POINTER = DESCRIPTION_FACILITY_CORE + 4, DESCRIPTION_CORE_OPERATION_ABORTED = DESCRIPTION_FACILITY_CORE + 5, DESCRIPTION_CORE_EXCEPTION = DESCRIPTION_FACILITY_CORE + 6, DESCRIPTION_CORE_ACCESS_DENIED = DESCRIPTION_FACILITY_CORE + 7, DESCRIPTION_CORE_INVALID_HANDLE = DESCRIPTION_FACILITY_CORE + 8, DESCRIPTION_CORE_INVALID_INDEX = DESCRIPTION_FACILITY_CORE + 9, DESCRIPTION_CORE_OUT_OF_MEMORY = DESCRIPTION_FACILITY_CORE + 10, DESCRIPTION_CORE_INVALID_ARGUMENT = DESCRIPTION_FACILITY_CORE + 11, DESCRIPTION_CORE_TIMEOUT = DESCRIPTION_FACILITY_CORE + 12, DESCRIPTION_CORE_INITIALIZATION_FAILURE = DESCRIPTION_FACILITY_CORE + 13, DESCRIPTION_CORE_CALL_INITIATION_FAILURE = DESCRIPTION_FACILITY_CORE + 14, DESCRIPTION_CORE_REGISTRATION_ERROR = DESCRIPTION_FACILITY_CORE + 15, DESCRIPTION_CORE_BUFFER_OVERFLOW = DESCRIPTION_FACILITY_CORE + 16, DESCRIPTION_CORE_INVALID_LOCK_STATE = DESCRIPTION_FACILITY_CORE + 17, DESCRIPTION_CORE_UNDEFINED = DESCRIPTION_FACILITY_CORE + detail::DESCRIPTION_RETURN_CODE_UNDEFINED, DESCRIPTION_DDL_SUCCESS = DESCRIPTION_FACILITY_DDL + 0, DESCRIPTION_DDL_INVALID_SIGNATURE = DESCRIPTION_FACILITY_DDL + 1, DESCRIPTION_DDL_INCORRECT_VERSION = DESCRIPTION_FACILITY_DDL + 2, DESCRIPTION_DDL_UNDEFINED = DESCRIPTION_FACILITY_DDL + detail::DESCRIPTION_RETURN_CODE_UNDEFINED, DESCRIPTION_RENDEZVOUS_SUCCESS = DESCRIPTION_FACILITY_RENDEZVOUS + 0, DESCRIPTION_RENDEZVOUS_CONNECTION_FAILURE = DESCRIPTION_FACILITY_RENDEZVOUS + 1, DESCRIPTION_RENDEZVOUS_NOT_AUTHENTICATED = DESCRIPTION_FACILITY_RENDEZVOUS + 2, DESCRIPTION_RENDEZVOUS_INVALID_USERNAME = DESCRIPTION_FACILITY_RENDEZVOUS + 3, DESCRIPTION_RENDEZVOUS_INVALID_PASSWORD = DESCRIPTION_FACILITY_RENDEZVOUS + 4, DESCRIPTION_RENDEZVOUS_USERNAME_ALREADY_EXISTS = DESCRIPTION_FACILITY_RENDEZVOUS + 5, DESCRIPTION_RENDEZVOUS_ACCOUNT_DISABLED = DESCRIPTION_FACILITY_RENDEZVOUS + 6, DESCRIPTION_RENDEZVOUS_ACCOUNT_EXPIRED = DESCRIPTION_FACILITY_RENDEZVOUS + 7, DESCRIPTION_RENDEZVOUS_CONCURRENT_LOGIN_DENIED = DESCRIPTION_FACILITY_RENDEZVOUS + 8, DESCRIPTION_RENDEZVOUS_ENCRYPTION_FAILURE = DESCRIPTION_FACILITY_RENDEZVOUS + 9, DESCRIPTION_RENDEZVOUS_INVALID_PID = DESCRIPTION_FACILITY_RENDEZVOUS + 10, DESCRIPTION_RENDEZVOUS_MAX_CONNECTIONS_REACHED = DESCRIPTION_FACILITY_RENDEZVOUS + 11, DESCRIPTION_RENDEZVOUS_INVALID_GID = DESCRIPTION_FACILITY_RENDEZVOUS + 12, DESCRIPTION_RENDEZVOUS_INVALID_THREAD_ID = DESCRIPTION_FACILITY_RENDEZVOUS + 13, DESCRIPTION_RENDEZVOUS_INVALID_OPERATION_IN_LIVE_ENVIRONMENT = DESCRIPTION_FACILITY_RENDEZVOUS + 14, DESCRIPTION_RENDEZVOUS_DUPLICATE_ENTRY = DESCRIPTION_FACILITY_RENDEZVOUS + 15, DESCRIPTION_RENDEZVOUS_CONTROL_SCRIPT_FAILURE = DESCRIPTION_FACILITY_RENDEZVOUS + 16, DESCRIPTION_RENDEZVOUS_CLASS_NOT_FOUND = DESCRIPTION_FACILITY_RENDEZVOUS + 17, DESCRIPTION_RENDEZVOUS_SESSION_VOID = DESCRIPTION_FACILITY_RENDEZVOUS + 18, DESCRIPTION_RENDEZVOUS_LSP_GATEWAY_UNREACHABLE = DESCRIPTION_FACILITY_RENDEZVOUS + 19, DESCRIPTION_RENDEZVOUS_DDL_MISMATCH = DESCRIPTION_FACILITY_RENDEZVOUS + 20, DESCRIPTION_RENDEZVOUS_INVALID_FTP_INFO = DESCRIPTION_FACILITY_RENDEZVOUS + 21, DESCRIPTION_RENDEZVOUS_SESSION_FULL = DESCRIPTION_FACILITY_RENDEZVOUS + 22, DESCRIPTION_RENDEZVOUS_UNDEFINED = DESCRIPTION_FACILITY_RENDEZVOUS + detail::DESCRIPTION_RETURN_CODE_UNDEFINED, DESCRIPTION_PYTHONCORE_SUCCESS = DESCRIPTION_FACILITY_PYTHONCORE + 0, DESCRIPTION_PYTHONCORE_EXCEPTION = DESCRIPTION_FACILITY_PYTHONCORE + 1, DESCRIPTION_PYTHONCORE_TYPE_ERROR = DESCRIPTION_FACILITY_PYTHONCORE + 2, DESCRIPTION_PYTHONCORE_INDEX_ERROR = DESCRIPTION_FACILITY_PYTHONCORE + 3, DESCRIPTION_PYTHONCORE_INVALID_REFERENCE = DESCRIPTION_FACILITY_PYTHONCORE + 4, DESCRIPTION_PYTHONCORE_CALL_FAILURE = DESCRIPTION_FACILITY_PYTHONCORE + 5, DESCRIPTION_PYTHONCORE_MEMORY_ERROR = DESCRIPTION_FACILITY_PYTHONCORE + 6, DESCRIPTION_PYTHONCORE_KEY_ERROR = DESCRIPTION_FACILITY_PYTHONCORE + 7, DESCRIPTION_PYTHONCORE_OPERATION_ERROR = DESCRIPTION_FACILITY_PYTHONCORE + 8, DESCRIPTION_PYTHONCORE_CONVERSION_ERROR = DESCRIPTION_FACILITY_PYTHONCORE + 9, DESCRIPTION_PYTHONCORE_VALIDATION_ERROR = DESCRIPTION_FACILITY_PYTHONCORE + 10, DESCRIPTION_PYTHONCORE_UNDEFINED = DESCRIPTION_FACILITY_PYTHONCORE + detail::DESCRIPTION_RETURN_CODE_UNDEFINED, DESCRIPTION_TRANSPORT_SUCCESS = DESCRIPTION_FACILITY_TRANSPORT + 0, DESCRIPTION_TRANSPORT_UNKNOWN = DESCRIPTION_FACILITY_TRANSPORT + 1, DESCRIPTION_TRANSPORT_CONNECTION_FAILURE = DESCRIPTION_FACILITY_TRANSPORT + 2, DESCRIPTION_TRANSPORT_INVALID_URL = DESCRIPTION_FACILITY_TRANSPORT + 3, DESCRIPTION_TRANSPORT_INVALID_KEY = DESCRIPTION_FACILITY_TRANSPORT + 4, DESCRIPTION_TRANSPORT_INVALID_URL_TYPE = DESCRIPTION_FACILITY_TRANSPORT + 5, DESCRIPTION_TRANSPORT_DUPLICATE_ENDPOINT = DESCRIPTION_FACILITY_TRANSPORT + 6, DESCRIPTION_TRANSPORT_IO_ERROR = DESCRIPTION_FACILITY_TRANSPORT + 7, DESCRIPTION_TRANSPORT_TIMEOUT = DESCRIPTION_FACILITY_TRANSPORT + 8, DESCRIPTION_TRANSPORT_CONNECTION_RESET = DESCRIPTION_FACILITY_TRANSPORT + 9, DESCRIPTION_TRANSPORT_INCORRECT_REMOTE_AUTHENTICATION = DESCRIPTION_FACILITY_TRANSPORT + 10, DESCRIPTION_TRANSPORT_SERVER_REQUEST_ERROR = DESCRIPTION_FACILITY_TRANSPORT + 11, DESCRIPTION_TRANSPORT_DECOMPRESSION_FAILURE = DESCRIPTION_FACILITY_TRANSPORT + 12, DESCRIPTION_TRANSPORT_CONGESTED_END_POINT = DESCRIPTION_FACILITY_TRANSPORT + 13, DESCRIPTION_TRANSPORT_UPNP_CANNOT_INIT = DESCRIPTION_FACILITY_TRANSPORT + 14, DESCRIPTION_TRANSPORT_UPNP_CANNOT_ADD_MAPPING = DESCRIPTION_FACILITY_TRANSPORT + 15, DESCRIPTION_TRANSPORT_NAT_PMP_CANNOT_INIT = DESCRIPTION_FACILITY_TRANSPORT + 16, DESCRIPTION_TRANSPORT_NAT_PMP_CANNOT_ADD_MAPPING = DESCRIPTION_FACILITY_TRANSPORT + 17, DESCRIPTION_TRANSPORT_UNDEFINED = DESCRIPTION_FACILITY_TRANSPORT + detail::DESCRIPTION_RETURN_CODE_UNDEFINED, DESCRIPTION_DOCORE_SUCCESS = DESCRIPTION_FACILITY_DOCORE + 0, DESCRIPTION_DOCORE_CALL_POSTPONED = DESCRIPTION_FACILITY_DOCORE + 1, DESCRIPTION_DOCORE_STATION_NOT_REACHED = DESCRIPTION_FACILITY_DOCORE + 2, DESCRIPTION_DOCORE_TARGET_STATION_DISCONNECT = DESCRIPTION_FACILITY_DOCORE + 3, DESCRIPTION_DOCORE_LOCAL_STATION_LEAVING = DESCRIPTION_FACILITY_DOCORE + 4, DESCRIPTION_DOCORE_OBJECT_NOT_FOUND = DESCRIPTION_FACILITY_DOCORE + 5, DESCRIPTION_DOCORE_INVALID_ROLE = DESCRIPTION_FACILITY_DOCORE + 6, DESCRIPTION_DOCORE_CALL_TIMEOUT = DESCRIPTION_FACILITY_DOCORE + 7, DESCRIPTION_DOCORE_RMC_DISPATCH_FAILED = DESCRIPTION_FACILITY_DOCORE + 8, DESCRIPTION_DOCORE_MIGRATION_IN_PROGRESS = DESCRIPTION_FACILITY_DOCORE + 9, DESCRIPTION_DOCORE_NO_AUTHORITY = DESCRIPTION_FACILITY_DOCORE + 10, DESCRIPTION_DOCORE_NO_TARGET_STATION_SPECIFIED = DESCRIPTION_FACILITY_DOCORE + 11, DESCRIPTION_DOCORE_JOIN_FAILED = DESCRIPTION_FACILITY_DOCORE + 12, DESCRIPTION_DOCORE_JOIN_DENIED = DESCRIPTION_FACILITY_DOCORE + 13, DESCRIPTION_DOCORE_CONNECTIVITY_TEST_FAILED = DESCRIPTION_FACILITY_DOCORE + 14, DESCRIPTION_DOCORE_UNKNOWN = DESCRIPTION_FACILITY_DOCORE + 15, DESCRIPTION_DOCORE_UNFREED_REFERENCES = DESCRIPTION_FACILITY_DOCORE + 16, DESCRIPTION_DOCORE_UNDEFINED = DESCRIPTION_FACILITY_DOCORE + detail::DESCRIPTION_RETURN_CODE_UNDEFINED, DESCRIPTION_FPD_SUCCESS = DESCRIPTION_FACILITY_FPD + 0, DESCRIPTION_RMC_NOT_CALLED = DESCRIPTION_FACILITY_FPD + 1, DESCRIPTION_DAEMON_NOT_INITIALIZED = DESCRIPTION_FACILITY_FPD + 2, DESCRIPTION_DAEMON_ALREADY_INITIALIZED = DESCRIPTION_FACILITY_FPD + 3, DESCRIPTION_NOT_CONNECTED = DESCRIPTION_FACILITY_FPD + 4, DESCRIPTION_CONNECTED = DESCRIPTION_FACILITY_FPD + 5, DESCRIPTION_INITIALIZATION_FAILURE = DESCRIPTION_FACILITY_FPD + 6, DESCRIPTION_OUT_OF_MEMORY = DESCRIPTION_FACILITY_FPD + 7, DESCRIPTION_RMC_FAILED = DESCRIPTION_FACILITY_FPD + 8, DESCRIPTION_INVALID_ARGUMENT = DESCRIPTION_FACILITY_FPD + 9, DESCRIPTION_INVALID_LOCAL_ACCOUNT_ID = DESCRIPTION_FACILITY_FPD + 10, DESCRIPTION_INVALID_PRINCIPAL_ID = DESCRIPTION_FACILITY_FPD + 11, DESCRIPTION_INVALID_LOCAL_FRIEND_CODE = DESCRIPTION_FACILITY_FPD + 12, DESCRIPTION_LOCAL_ACCOUNT_NOT_EXISTS = DESCRIPTION_FACILITY_FPD + 13, DESCRIPTION_LOCAL_ACCOUNT_NOT_LOADED = DESCRIPTION_FACILITY_FPD + 14, DESCRIPTION_LOCAL_ACCOUNT_ALREADY_LOADED = DESCRIPTION_FACILITY_FPD + 15, DESCRIPTION_FRIEND_ALREADY_EXISTS = DESCRIPTION_FACILITY_FPD + 16, DESCRIPTION_FRIEND_NOT_EXISTS = DESCRIPTION_FACILITY_FPD + 17, DESCRIPTION_FRIEND_NUM_MAX = DESCRIPTION_FACILITY_FPD + 18, DESCRIPTION_NOT_FRIEND = DESCRIPTION_FACILITY_FPD + 19, DESCRIPTION_FILE_IO_ERROR = DESCRIPTION_FACILITY_FPD + 20, DESCRIPTION_P2P_INTERNET_PROHIBITED = DESCRIPTION_FACILITY_FPD + 21, DESCRIPTION_UNKNOWN = DESCRIPTION_FACILITY_FPD + 22, DESCRIPTION_FPD_UNDEFINED = DESCRIPTION_FACILITY_FPD + detail::DESCRIPTION_RETURN_CODE_UNDEFINED, DESCRIPTION_AUTHENTICATION_SUCCESS = DESCRIPTION_FACILITY_AUTHENTICATION + 0, DESCRIPTION_AUTHENTICATION_NAS_AUTHENTICATE_ERROR = DESCRIPTION_FACILITY_AUTHENTICATION + 1, DESCRIPTION_AUTHENTICATION_TOKEN_PARSE_ERROR = DESCRIPTION_FACILITY_AUTHENTICATION + 2, DESCRIPTION_AUTHENTICATION_HTTP_CONNECTION_ERROR = DESCRIPTION_FACILITY_AUTHENTICATION + 3, DESCRIPTION_AUTHENTICATION_HTTP_DNS_ERROR = DESCRIPTION_FACILITY_AUTHENTICATION + 4, DESCRIPTION_AUTHENTICATION_HTTP_GET_PROXY_SETTING = DESCRIPTION_FACILITY_AUTHENTICATION + 5, DESCRIPTION_AUTHENTICATION_TOKEN_EXPIRED = DESCRIPTION_FACILITY_AUTHENTICATION + 6, DESCRIPTION_AUTHENTICATION_VALIDATION_FAILED = DESCRIPTION_FACILITY_AUTHENTICATION + 7, DESCRIPTION_AUTHENTICATION_INVALID_PARAM = DESCRIPTION_FACILITY_AUTHENTICATION + 8, DESCRIPTION_AUTHENTICATION_PRINCIPAL_ID_UNMATCHED = DESCRIPTION_FACILITY_AUTHENTICATION + 9, DESCRIPTION_AUTHENTICATION_MOVE_COUNT_UNMATCH = DESCRIPTION_FACILITY_AUTHENTICATION + 10, DESCRIPTION_AUTHENTICATION_UNDER_MAINTENANCE = DESCRIPTION_FACILITY_AUTHENTICATION + 11, DESCRIPTION_AUTHENTICATION_UNSUPPORTED_VERSION = DESCRIPTION_FACILITY_AUTHENTICATION + 12, DESCRIPTION_AUTHENTICATION_UNKNOWN = DESCRIPTION_FACILITY_AUTHENTICATION + 13, DESCRIPTION_AUTHENTICATION_UNDEFINED = DESCRIPTION_FACILITY_AUTHENTICATION + detail::DESCRIPTION_RETURN_CODE_UNDEFINED, DESCRIPTION_FACILITY_CTR = 0 << detail::DESCRIPTION_FACILITY_SHIFT, DESCRIPTION_INVALID_FRIEND_CODE = DESCRIPTION_FACILITY_CTR + 1, DESCRIPTION_NOT_LOGGED_IN, DESCRIPTION_NOT_FRIENDS_RESULT, DESCRIPTION_UNDEFINED_FACILITY, DESCRIPTION_AC_NOT_CONNECTED }; /*! @class nn::friends::ResultCoreTimeOut @brief 非同期処理がタイムアウトしたことを示します。 */ NN_DEFINE_RESULT_CONST( ResultCoreTimeOut, Result::LEVEL_STATUS, Result::SUMMARY_CANCELLED, Result::MODULE_NN_FRIENDS, DESCRIPTION_CORE_TIMEOUT ); /*! @class nn::friends::ResultCoreCallInitiationFailure @brief リモートメソッドコールの開始に失敗したことを示します。認証トークンがあり、かつインターネットに接続できない場合に発生します。 */ NN_DEFINE_RESULT_CONST( ResultCoreCallInitiationFailure, Result::LEVEL_STATUS, Result::SUMMARY_INTERNAL, Result::MODULE_NN_FRIENDS, DESCRIPTION_CORE_CALL_INITIATION_FAILURE ); /*! @class nn::friends::ResultTransportConnectionFailure @brief フレンドサーバからの応答がなかったことを示します。非同期処理が強制終了されたときにも発生します。 */ NN_DEFINE_RESULT_CONST( ResultTransportConnectionFailure, Result::LEVEL_STATUS, Result::SUMMARY_INTERNAL, Result::MODULE_NN_FRIENDS, DESCRIPTION_TRANSPORT_CONNECTION_FAILURE ); /*! @class nn::friends::ResultRmcNotCalled @brief オフライン状態や前回の送信から間もないために、その時点ではサーバに送信されなかったことを示します。 通常、ハンドリングの必要はありません。 */ NN_DEFINE_RESULT_CONST( ResultRmcNotCalled, Result::LEVEL_SUCCESS, Result::SUMMARY_SUCCESS, Result::MODULE_NN_FRIENDS, DESCRIPTION_RMC_NOT_CALLED ); /*! :private @class nn::friends::ResultDaemonNotInitialized @brief デーモン内部で初期化処理に失敗したときに返ります。デーモン外に返ることはありません。 */ NN_DEFINE_RESULT_CONST( ResultDaemonNotInitialized, Result::LEVEL_STATUS, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_FRIENDS, DESCRIPTION_DAEMON_NOT_INITIALIZED ); /*! :private @class nn::friends::ResultDaemonAlreadyInitialized @brief デーモン内部で初期化処理が重複したときに返ります。デーモン外に返ることはありません。 */ NN_DEFINE_RESULT_CONST( ResultDaemonAlreadyInitialized, Result::LEVEL_STATUS, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_FRIENDS, DESCRIPTION_DAEMON_ALREADY_INITIALIZED ); /*! :private @class nn::friends::ResultNotConnected @brief デーモン内部で、オフライン状態のためオンライン機能を利用できないことを示します。 ライブラリではログイン状態を別途管理しているので、この結果が返ることはありません。 */ NN_DEFINE_RESULT_CONST( ResultNotConnected, Result::LEVEL_PERMANENT, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_FRIENDS, DESCRIPTION_NOT_CONNECTED ); /*! :private @class nn::friends::ResultConnected @brief デーモン内部で、オンライン状態で重ねてログインしようとしたことを示します。 ライブラリではログイン状態を別途管理しているので、この結果が返ることはありません。 */ NN_DEFINE_RESULT_CONST( ResultConnected, Result::LEVEL_PERMANENT, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_FRIENDS, DESCRIPTION_CONNECTED ); /*! :private @class nn::friends::ResultInitializationFailure @brief 非同期処理の初期化に失敗したことを示します。 */ NN_DEFINE_RESULT_CONST( ResultInitializationFailure, Result::LEVEL_STATUS, Result::SUMMARY_INTERNAL, Result::MODULE_NN_FRIENDS, DESCRIPTION_INITIALIZATION_FAILURE ); /*! :private @class nn::friends::ResultOutOfMemory @brief デーモン内部でメモリが足りなくてバッファの確保に失敗したことを示します。 */ NN_DEFINE_RESULT_CONST( ResultOutOfMemory, Result::LEVEL_STATUS, Result::SUMMARY_OUT_OF_RESOURCE, Result::MODULE_NN_FRIENDS, DESCRIPTION_OUT_OF_MEMORY ); /*! :private @class nn::friends::ResultRmcFailed @brief デーモン内部でリモートメソッドコールの呼び出しに失敗したことを示します。 */ NN_DEFINE_RESULT_CONST( ResultRmcFailed, Result::LEVEL_PERMANENT, Result::SUMMARY_CANCELLED, Result::MODULE_NN_FRIENDS, DESCRIPTION_RMC_FAILED ); /*! @class nn::friends::ResultInvalidArgument @brief 指定した引数が無効な値だったことを示します。 */ NN_DEFINE_RESULT_CONST( ResultInvalidArgument, Result::LEVEL_USAGE, Result::SUMMARY_INVALID_ARGUMENT, Result::MODULE_NN_FRIENDS, DESCRIPTION_INVALID_ARGUMENT ); /*! :private @class nn::friends::ResultInvalidLocalAccountId @brief 指定したローカルアカウント番号が無効だったことを示します。 */ NN_DEFINE_RESULT_CONST( ResultInvalidLocalAccountId, Result::LEVEL_USAGE, Result::SUMMARY_INVALID_ARGUMENT, Result::MODULE_NN_FRIENDS, DESCRIPTION_INVALID_LOCAL_ACCOUNT_ID ); /*! :private @class nn::friends::ResultInvalidPrincipalId @brief 指定したプリンシパル ID が無効だったことを示します。 */ NN_DEFINE_RESULT_CONST( ResultInvalidPrincipalId, Result::LEVEL_USAGE, Result::SUMMARY_INVALID_ARGUMENT, Result::MODULE_NN_FRIENDS, DESCRIPTION_INVALID_PRINCIPAL_ID ); /*! :private @class nn::friends::ResultInvalidLocalFriendCode @brief 指定したローカルフレンドコードが無効だったことを示します。 */ NN_DEFINE_RESULT_CONST( ResultInvalidLocalFriendCode, Result::LEVEL_USAGE, Result::SUMMARY_INVALID_ARGUMENT, Result::MODULE_NN_FRIENDS, DESCRIPTION_INVALID_LOCAL_FRIEND_CODE ); /*! :private @class nn::friends::ResultLocalAccountNotExists @brief 指定した番号のアカウントは存在しないことを示します。 */ NN_DEFINE_RESULT_CONST( ResultLocalAccountNotExists, Result::LEVEL_STATUS, Result::SUMMARY_NOT_FOUND, Result::MODULE_NN_FRIENDS, DESCRIPTION_LOCAL_ACCOUNT_NOT_EXISTS ); /*! @class nn::friends::ResultLocalAccountNotLoaded @brief 何らかの原因により、デーモンにアカウントが読み込まれていません。 この状態では、フレンド・プレゼンスライブラリのほとんどの API は使用できません。 */ NN_DEFINE_RESULT_CONST( ResultLocalAccountNotLoaded, Result::LEVEL_STATUS, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_FRIENDS, DESCRIPTION_LOCAL_ACCOUNT_NOT_LOADED ); /*! :private @class nn::friends::ResultLocalAccountAlreadyLoaded @brief すでにアカウントが読み込まれた状態で重ねてアカウントを読み込もうとしたことを示します。 */ NN_DEFINE_RESULT_CONST( ResultLocalAccountAlreadyLoaded, Result::LEVEL_PERMANENT, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_FRIENDS, DESCRIPTION_LOCAL_ACCOUNT_ALREADY_LOADED ); /*! :private @class nn::friends::ResultFriendAlreadyExists @brief 追加しようとしたフレンドがすでにフレンドリストに登録されていることを示します。 */ NN_DEFINE_RESULT_CONST( ResultFriendAlreadyExists, Result::LEVEL_PERMANENT, Result::SUMMARY_WRONG_ARGUMENT, Result::MODULE_NN_FRIENDS, DESCRIPTION_FRIEND_ALREADY_EXISTS ); /*! :private @class nn::friends::ResultFriendNotExists @brief 指定した相手がフレンドリストに登録されていないことを示します。 */ NN_DEFINE_RESULT_CONST( ResultFriendNotExists, Result::LEVEL_PERMANENT, Result::SUMMARY_WRONG_ARGUMENT, Result::MODULE_NN_FRIENDS, DESCRIPTION_FRIEND_NOT_EXISTS ); /*! :private @class nn::friends::ResultFriendNumMax @brief フレンドリストがいっぱいでフレンドが追加できなかったことを示します。 */ NN_DEFINE_RESULT_CONST( ResultFriendNumMax, Result::LEVEL_PERMANENT, Result::SUMMARY_OUT_OF_RESOURCE, Result::MODULE_NN_FRIENDS, DESCRIPTION_FRIEND_NUM_MAX ); /*! :private @class nn::friends::ResultNotFriend @brief 指定した相手とはまだフレンド関係が成立していないことを示します。 */ NN_DEFINE_RESULT_CONST( ResultNotFriend, Result::LEVEL_PERMANENT, Result::SUMMARY_WRONG_ARGUMENT, Result::MODULE_NN_FRIENDS, DESCRIPTION_NOT_FRIEND ); /*! :private @class nn::friends::ResultFileIoError @brief デーモン内のファイルアクセスで失敗したことを示します。 */ NN_DEFINE_RESULT_CONST( ResultFileIoError, Result::LEVEL_PERMANENT, Result::SUMMARY_INTERNAL, Result::MODULE_NN_FRIENDS, DESCRIPTION_FILE_IO_ERROR ); /*! @class nn::friends::ResultP2pInternetProhibited @brief ペアレンタルコントロールによってフレンド間通信が禁止されていることを示します。 */ NN_DEFINE_RESULT_CONST( ResultP2pInternetProhibited, Result::LEVEL_PERMANENT, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_FRIENDS, DESCRIPTION_P2P_INTERNET_PROHIBITED ); /*! :private @class nn::friends::ResultUnknown @brief 不明な結果です。 */ NN_DEFINE_RESULT_CONST( ResultUnknown, Result::LEVEL_STATUS, Result::SUMMARY_INTERNAL, Result::MODULE_NN_FRIENDS, DESCRIPTION_UNKNOWN ); /*! @class nn::friends::ResultNasAuthenticationError @brief 認証サーバから拒否応答が返ってきたことを示します。 */ NN_DEFINE_RESULT_CONST( ResultNasAuthenticationError, Result::LEVEL_STATUS, Result::SUMMARY_INTERNAL, Result::MODULE_NN_FRIENDS, DESCRIPTION_AUTHENTICATION_NAS_AUTHENTICATE_ERROR ); /*! @class nn::friends::ResultAuthenticationTokenParseError @brief 認証サーバからの応答を正しく解釈できなかったことを示します。 */ NN_DEFINE_RESULT_CONST( ResultAuthenticationTokenParseError, Result::LEVEL_STATUS, Result::SUMMARY_INTERNAL, Result::MODULE_NN_FRIENDS, DESCRIPTION_AUTHENTICATION_TOKEN_PARSE_ERROR ); /*! @class nn::friends::ResultAuthenticationHttpConnectionError @brief 認証サーバへの接続に失敗したことを示します。 */ NN_DEFINE_RESULT_CONST( ResultAuthenticationHttpConnectionError, Result::LEVEL_STATUS, Result::SUMMARY_INTERNAL, Result::MODULE_NN_FRIENDS, DESCRIPTION_AUTHENTICATION_HTTP_CONNECTION_ERROR ); /*! @class nn::friends::ResultAuthenticationDnsError @brief 認証サーバの名前解決に失敗したことを示します。アクセスポイントに接続できていない場合にも発生します。 */ NN_DEFINE_RESULT_CONST( ResultAuthenticationDnsError, Result::LEVEL_STATUS, Result::SUMMARY_INTERNAL, Result::MODULE_NN_FRIENDS, DESCRIPTION_AUTHENTICATION_HTTP_DNS_ERROR ); /*! @class nn::friends::ResultAuthenticationHttpGetProxySetting @brief 機器に設定されている Proxy 値の取得に失敗したことを示します。 */ NN_DEFINE_RESULT_CONST( ResultAuthenticationHttpGetProxySetting, Result::LEVEL_STATUS, Result::SUMMARY_INTERNAL, Result::MODULE_NN_FRIENDS, DESCRIPTION_AUTHENTICATION_HTTP_GET_PROXY_SETTING ); /*! :private @class nn::friends::ResultAuthenticationTokenExpired @brief 認証トークンの有効期間を失効したことを示します。この場合、自動で再認証処理を行うため、このエラーは発生しません。 */ NN_DEFINE_RESULT_CONST( ResultAuthenticationTokenExpired, Result::LEVEL_STATUS, Result::SUMMARY_INTERNAL, Result::MODULE_NN_FRIENDS, DESCRIPTION_AUTHENTICATION_TOKEN_EXPIRED ); /*! @class nn::friends::ResultAuthenticationValidationFailed @brief フレンドサーバでの認証トークンの検証に失敗したことを示します。 */ NN_DEFINE_RESULT_CONST( ResultAuthenticationValidationFailed, Result::LEVEL_STATUS, Result::SUMMARY_INTERNAL, Result::MODULE_NN_FRIENDS, DESCRIPTION_AUTHENTICATION_VALIDATION_FAILED ); /*! @class nn::friends::ResultAuthenticationInvalidParam @brief フレンドサーバでの認証トークンの検証に失敗したことを示します。 */ NN_DEFINE_RESULT_CONST( ResultAuthenticationInvalidParam, Result::LEVEL_STATUS, Result::SUMMARY_INTERNAL, Result::MODULE_NN_FRIENDS, DESCRIPTION_AUTHENTICATION_INVALID_PARAM ); /*! @class nn::friends::ResultAuthenticationPrincipalIdUnmatched @brief 認証トークンに含まれたプリンシパル ID と自分のプリンシパル ID が一致していないことを示します。 */ NN_DEFINE_RESULT_CONST( ResultAuthenticationPrincipalIdUnmatched, Result::LEVEL_STATUS, Result::SUMMARY_INTERNAL, Result::MODULE_NN_FRIENDS, DESCRIPTION_AUTHENTICATION_PRINCIPAL_ID_UNMATCHED ); /*! @class nn::friends::ResultAuthenticationMoveCountUnmatch @brief アカウントの引越しを行ったことにより、アカウントが不正状態になったことを示します。 */ NN_DEFINE_RESULT_CONST( ResultAuthenticationMoveCountUnmatch, Result::LEVEL_STATUS, Result::SUMMARY_INTERNAL, Result::MODULE_NN_FRIENDS, DESCRIPTION_AUTHENTICATION_MOVE_COUNT_UNMATCH ); /*! @class nn::friends::ResultAuthenticationUnderMaintenance @brief フレンドサーバがメンテナンス中であり、オンライン機能を利用できないことを示します。 */ NN_DEFINE_RESULT_CONST( ResultAuthenticationUnderMaintenance, Result::LEVEL_STATUS, Result::SUMMARY_INTERNAL, Result::MODULE_NN_FRIENDS, DESCRIPTION_AUTHENTICATION_UNDER_MAINTENANCE ); /*! @class nn::friends::ResultAuthenticationUnsupportedVersion @brief フレンドサーバがサポートしていないバージョンであることを示します。 */ NN_DEFINE_RESULT_CONST( ResultAuthenticationUnsupportedVersion, Result::LEVEL_STATUS, Result::SUMMARY_INTERNAL, Result::MODULE_NN_FRIENDS, DESCRIPTION_AUTHENTICATION_UNSUPPORTED_VERSION ); /*! :private @class nn::friends::ResultAuthenticationUnknown @brief 認証処理による未定義のエラーです。 */ NN_DEFINE_RESULT_CONST( ResultAuthenticationUnknown, Result::LEVEL_STATUS, Result::SUMMARY_INTERNAL, Result::MODULE_NN_FRIENDS, DESCRIPTION_AUTHENTICATION_UNKNOWN ); /*! :private @class nn::friends::ResultAuthenticationUndefined @brief 認証処理による未定義のエラーです。 */ NN_DEFINE_RESULT_CONST( ResultAuthenticationUndefined, Result::LEVEL_STATUS, Result::SUMMARY_INTERNAL, Result::MODULE_NN_FRIENDS, DESCRIPTION_AUTHENTICATION_UNDEFINED ); /*! :private @class nn::friends::ResultInvalidFriendCode @brief 指定したフレンドコードが無効だったことを示します。 */ NN_DEFINE_RESULT_CONST( ResultInvalidFriendCode, Result::LEVEL_USAGE, Result::SUMMARY_INVALID_ARGUMENT, Result::MODULE_NN_FRIENDS, DESCRIPTION_INVALID_FRIEND_CODE ); /*! :private @class nn::friends::ResultNotLoggedIn @brief 事前にログインが必要な API をログインせずに呼んだことを示します。 */ NN_DEFINE_RESULT_CONST( ResultNotLoggedIn, Result::LEVEL_PERMANENT, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_FRIENDS, DESCRIPTION_NOT_LOGGED_IN ); /*! :private @class nn::friends::ResultNotFriendsResult @brief 指定した @ref nn::Result はフレンド・プレゼンスライブラリが返したものではないことを示します。 */ NN_DEFINE_RESULT_CONST( ResultNotFriendsResult, Result::LEVEL_USAGE, Result::SUMMARY_INVALID_ARGUMENT, Result::MODULE_NN_FRIENDS, DESCRIPTION_NOT_FRIENDS_RESULT ); /*! :private @class nn::friends::ResultUndefinedFacilitySuccess @brief カテゴリ不明な処理の成功を示します。 */ NN_DEFINE_RESULT_CONST( ResultUndefinedFacilitySuccess, Result::LEVEL_SUCCESS, Result::SUMMARY_SUCCESS, Result::MODULE_NN_FRIENDS, DESCRIPTION_UNDEFINED_FACILITY ); /*! :private @class nn::friends::ResultUndefinedFacilityFailure @brief カテゴリ不明な処理の失敗を示します。 */ NN_DEFINE_RESULT_CONST( ResultUndefinedFacilityFailure, Result::LEVEL_PERMANENT, Result::SUMMARY_INTERNAL, Result::MODULE_NN_FRIENDS, DESCRIPTION_UNDEFINED_FACILITY ); /*! @class nn::friends::ResultAcNotConnected @brief AC への接続要求を出さずに @ref nn::friends::CTR::Login を呼んだことを示します。 */ NN_DEFINE_RESULT_CONST( ResultAcNotConnected, Result::LEVEL_PERMANENT, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_FRIENDS, DESCRIPTION_AC_NOT_CONNECTED ); /*! @class nn::friends::ResultNotInitialized @brief フレンド・プレゼンスライブラリを初期化せずに API を使用したことを示します。 */ NN_DEFINE_RESULT_CONST( ResultNotInitialized, Result::LEVEL_PERMANENT, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_FRIENDS, Result::DESCRIPTION_NOT_INITIALIZED ); /*! @class nn::friends::ResultInvalidHandle @brief 指定したカーネルオブジェクトのハンドルが無効だったことを示します。主に @ref nn::os::Event を初期化せずに渡したときに発生します。 */ NN_DEFINE_RESULT_CONST( ResultInvalidHandle, Result::LEVEL_USAGE, Result::SUMMARY_INVALID_ARGUMENT, Result::MODULE_NN_FRIENDS, Result::DESCRIPTION_INVALID_HANDLE ); /*! @class nn::friends::ResultInvalidPointer @brief 指定したポインタが無効だったことを示します。 */ NN_DEFINE_RESULT_CONST( ResultInvalidPointer, Result::LEVEL_USAGE, Result::SUMMARY_INVALID_ARGUMENT, Result::MODULE_NN_FRIENDS, Result::DESCRIPTION_INVALID_POINTER ); /*! @class nn::friends::ResultTooLarge @brief 指定した配列のサイズが大きすぎたことを示します。主にフレンドリストの最大数を超えるデータを取得しようとしたときに発生します。 */ NN_DEFINE_RESULT_CONST( ResultTooLarge, Result::LEVEL_USAGE, Result::SUMMARY_INVALID_ARGUMENT, Result::MODULE_NN_FRIENDS, Result::DESCRIPTION_TOO_LARGE ); /*! @class nn::friends::ResultAlreadyDone @brief その操作がすでに実行済みで、今回は何も行われなかったことを示します。 成功として扱われます。 */ NN_DEFINE_RESULT_CONST( ResultAlreadyDone, Result::LEVEL_SUCCESS, Result::SUMMARY_NOTHING_HAPPENED, Result::MODULE_NN_FRIENDS, Result::DESCRIPTION_ALREADY_DONE ); /*! @class nn::friends::ResultTemporarilyBusy @brief 内部状態が一時的にビジー状態だったことを示します。比較的短時間が経過した後に再試行することで成功する可能性があります。 */ NN_DEFINE_RESULT_CONST( ResultTemporarilyBusy, Result::LEVEL_STATUS, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_FRIENDS, Result::DESCRIPTION_BUSY ); /*! @class nn::friends::ResultNotAuthorized @brief 許可されていない操作を行ったことを示します。スリープ中に API をコールしたときに返ることがあります。 */ NN_DEFINE_RESULT_CONST( ResultNotAuthorized, Result::LEVEL_STATUS, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_FRIENDS, Result::DESCRIPTION_NOT_AUTHORIZED ); /*! @class nn::friends::ResultUnexpectedState @brief 内部状態が不正だったことを示します。 */ NN_DEFINE_RESULT_CONST( ResultUnexpectedState, Result::LEVEL_STATUS, Result::SUMMARY_INVALID_STATE, Result::MODULE_NN_FRIENDS, Result::DESCRIPTION_NOT_IMPLEMENTED ); namespace detail { inline Result MakeResult(Result::Level level, Result::Summary summary, int description) { return Result(level, summary, Result::MODULE_NN_FRIENDS, description); } inline Result MakeInfoResult(Result::Summary summary, int description) { return Result(Result::LEVEL_INFO, summary, Result::MODULE_NN_FRIENDS, description); } inline Result MakeFatalResult(Result::Summary summary, int description) { return Result(Result::LEVEL_FATAL, summary, Result::MODULE_NN_FRIENDS, description); } inline Result MakeResetResult(Result::Summary summary, int description) { return Result(Result::LEVEL_RESET, summary, Result::MODULE_NN_FRIENDS, description); } inline Result MakeReInitResult(Result::Summary summary, int description) { return Result(Result::LEVEL_REINIT, summary, Result::MODULE_NN_FRIENDS, description); } inline Result MakeUsageResult(Result::Summary summary, int description) { return Result(Result::LEVEL_USAGE, summary, Result::MODULE_NN_FRIENDS, description); } inline Result MakePermanentResult(Result::Summary summary, int description) { return Result(Result::LEVEL_PERMANENT, summary, Result::MODULE_NN_FRIENDS, description); } inline Result MakeTemporaryResult(Result::Summary summary, int description) { return Result(Result::LEVEL_TEMPORARY, summary, Result::MODULE_NN_FRIENDS, description); } inline Result MakeStatusResult(Result::Summary summary, int description) { return Result(Result::LEVEL_STATUS, summary, Result::MODULE_NN_FRIENDS, description); } } } // end of namespace CTR using namespace CTR; } // end of namespace friends } // end of namespace nn #endif // __cplusplus #endif /* NN_FRIENDS_CTR_FRIENDS_RESULT_H_ */