/*---------------------------------------------------------------------------* Project: Horizon File: dlp_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: 25473 $ *---------------------------------------------------------------------------*/ /*! @file :include nn/dlp.h */ #ifndef NN_DLP_CTR_DLP_RESULT_H_ #define NN_DLP_CTR_DLP_RESULT_H_ #ifdef __cplusplus #include namespace nn { namespace dlp { namespace CTR { enum Description { DESCRIPTION_NO_DESCRIPTION = 0, DESCRIPTION_UNDERLAID_COMM_FAILED, DESCRIPTION_CIA_ACCESS_FAILED, DESCRIPTION_CIA_IMPORT_FAILED, DESCRIPTION_INVALID_MEDIA_TYPE, DESCRIPTION_INVALID_REGION }; namespace detail { inline Result MakeSuccess(Result::Summary summary, int description) { return Result(Result::LEVEL_SUCCESS, summary, Result::MODULE_NN_DLP, description); } inline Result MakeFatalResult(Result::Summary summary, int description) { return Result(Result::LEVEL_FATAL, summary, Result::MODULE_NN_DLP, description); } inline Result MakeResetResult(Result::Summary summary, int description) { return Result(Result::LEVEL_RESET, summary, Result::MODULE_NN_DLP, description); } inline Result MakeReInitResult(Result::Summary summary, int description) { return Result(Result::LEVEL_REINIT, summary, Result::MODULE_NN_DLP, description); } inline Result MakeUsageResult(Result::Summary summary, int description) { return Result(Result::LEVEL_USAGE, summary, Result::MODULE_NN_DLP, description); } inline Result MakePermanentResult(Result::Summary summary, int description) { return Result(Result::LEVEL_PERMANENT, summary, Result::MODULE_NN_DLP, description); } inline Result MakeTemporaryResult(Result::Summary summary, int description) { return Result(Result::LEVEL_TEMPORARY, summary, Result::MODULE_NN_DLP, description); } inline Result MakeStatusResult(Result::Summary summary, int description) { return Result(Result::LEVEL_STATUS, summary, Result::MODULE_NN_DLP, description); } } /*!--------------------------------------------------------------------------* @brief 呼び出した関数の引数が範囲外にあることを意味するエラーを返します。 @return エラーコードを返します。 *--------------------------------------------------------------------------*/ inline Result ResultArgumentOutOfRange() { return detail::MakeUsageResult(Result::SUMMARY_INVALID_ARGUMENT, Result::DESCRIPTION_OUT_OF_RANGE); } /*!--------------------------------------------------------------------------* @brief 初期化に失敗したことを意味するエラーを返します。 @return エラーコードを返します。 *--------------------------------------------------------------------------*/ inline Result ResultFailedToInitialize() { return detail::MakeFatalResult(Result::SUMMARY_INTERNAL, Result::DESCRIPTION_NOT_INITIALIZED); } /*!--------------------------------------------------------------------------* @brief 下層の通信に関する処理が失敗したことを意味するエラーを返します。 @return エラーコードを返します。 *--------------------------------------------------------------------------*/ inline Result ResultUnderLaidCommFailed() { return detail::MakePermanentResult(Result::SUMMARY_INTERNAL, DESCRIPTION_UNDERLAID_COMM_FAILED); } /*!--------------------------------------------------------------------------* @brief 関数の実行に必要なメモリが不足していることを意味するエラーを返します。 @return エラーコードを返します。 *--------------------------------------------------------------------------*/ inline Result ResultOutOfMemory() { return detail::MakeFatalResult(Result::SUMMARY_OUT_OF_RESOURCE, Result::DESCRIPTION_OUT_OF_MEMORY); } /*!--------------------------------------------------------------------------* @brief 初期化関数を呼んだ際にすでに初期化されていることを意味するエラーを返します。 @return エラーコードを返します。 *--------------------------------------------------------------------------*/ inline Result ResultAlreadyInitialized() { return detail::MakeUsageResult( Result::SUMMARY_INVALID_STATE, Result::DESCRIPTION_ALREADY_INITIALIZED ); } /*!--------------------------------------------------------------------------* @brief 関数を実行すべき状態でないことを意味するエラーを返します。 @return エラーコードを返します。 *--------------------------------------------------------------------------*/ inline Result ResultInvalidState() { return detail:: MakeStatusResult(Result::SUMMARY_INVALID_STATE, DESCRIPTION_NO_DESCRIPTION); } /*!--------------------------------------------------------------------------* @brief 指定されたデータがないことを意味するエラーを返します。 @return エラーコードを返します。 *--------------------------------------------------------------------------*/ inline Result ResultNoData() { return detail:: MakeStatusResult(Result::SUMMARY_NOT_FOUND, Result::DESCRIPTION_NO_DATA); } /*!--------------------------------------------------------------------------* @brief cia へのアクセスに何かしらの理由で失敗したことを意味するエラーを返します。 @return エラーコードを返します。 *--------------------------------------------------------------------------*/ inline Result ResultFailedToAccessCia() { return detail:: MakePermanentResult(Result::SUMMARY_INTERNAL, DESCRIPTION_CIA_ACCESS_FAILED); } /*!--------------------------------------------------------------------------* @brief cia のインポートに失敗したことを意味するエラーを返します。 @return エラーコードを返します。 *--------------------------------------------------------------------------*/ inline Result ResultFailedToImportCia() { return detail:: MakeFatalResult(Result::SUMMARY_INTERNAL, DESCRIPTION_CIA_IMPORT_FAILED); } /*!--------------------------------------------------------------------------* @brief サポートしていない メディアタイプが使用されていることを意味するエラーを返します。 @return エラーコードを返します。 *--------------------------------------------------------------------------*/ inline Result ResultInvalidMediaType() { return detail:: MakeUsageResult(Result::SUMMARY_NOT_SUPPORTED, DESCRIPTION_INVALID_MEDIA_TYPE); } /*!--------------------------------------------------------------------------* @brief サーバ において 子機の CIA サイズが大きすぎることを意味するエラーを返します。 @return エラーコードを返します。 *--------------------------------------------------------------------------*/ inline Result ResultCiaSizeTooLarge() { return detail:: MakeFatalResult(Result::SUMMARY_NOT_SUPPORTED, Result::DESCRIPTION_TOO_LARGE); } /*!--------------------------------------------------------------------------* @brief サーバ において 子機のリージョンと自身のリージョンが一致していことを意味するエラーを返します。 @return エラーコードを返します。 *--------------------------------------------------------------------------*/ inline Result ResultInvalidRegion() { return detail::MakeUsageResult(Result::SUMMARY_NOT_SUPPORTED, DESCRIPTION_INVALID_REGION); } } } } #endif // __cplusplus #endif /* NN_DLP_CTR_DLP_RESULT_H_ */