1 /*---------------------------------------------------------------------------* 2 Project: Horizon 3 File: dlp_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: 25473 $ 14 *---------------------------------------------------------------------------*/ 15 /*! 16 @file 17 18 :include nn/dlp.h 19 */ 20 21 #ifndef NN_DLP_CTR_DLP_RESULT_H_ 22 #define NN_DLP_CTR_DLP_RESULT_H_ 23 24 #ifdef __cplusplus 25 26 #include <nn/Result.h> 27 28 namespace nn { 29 namespace dlp { 30 namespace CTR { 31 32 enum Description 33 { 34 DESCRIPTION_NO_DESCRIPTION = 0, 35 DESCRIPTION_UNDERLAID_COMM_FAILED, 36 DESCRIPTION_CIA_ACCESS_FAILED, 37 DESCRIPTION_CIA_IMPORT_FAILED, 38 DESCRIPTION_INVALID_MEDIA_TYPE, 39 DESCRIPTION_INVALID_REGION 40 }; 41 42 namespace detail { MakeSuccess(Result::Summary summary,int description)43 inline Result MakeSuccess(Result::Summary summary, int description) 44 { return Result(Result::LEVEL_SUCCESS, summary, Result::MODULE_NN_DLP, description); } MakeFatalResult(Result::Summary summary,int description)45 inline Result MakeFatalResult(Result::Summary summary, int description) 46 { return Result(Result::LEVEL_FATAL, summary, Result::MODULE_NN_DLP, description); } MakeResetResult(Result::Summary summary,int description)47 inline Result MakeResetResult(Result::Summary summary, int description) 48 { return Result(Result::LEVEL_RESET, summary, Result::MODULE_NN_DLP, description); } MakeReInitResult(Result::Summary summary,int description)49 inline Result MakeReInitResult(Result::Summary summary, int description) 50 { return Result(Result::LEVEL_REINIT, summary, Result::MODULE_NN_DLP, description); } MakeUsageResult(Result::Summary summary,int description)51 inline Result MakeUsageResult(Result::Summary summary, int description) 52 { return Result(Result::LEVEL_USAGE, summary, Result::MODULE_NN_DLP, description); } MakePermanentResult(Result::Summary summary,int description)53 inline Result MakePermanentResult(Result::Summary summary, int description) 54 { return Result(Result::LEVEL_PERMANENT, summary, Result::MODULE_NN_DLP, description); } MakeTemporaryResult(Result::Summary summary,int description)55 inline Result MakeTemporaryResult(Result::Summary summary, int description) 56 { return Result(Result::LEVEL_TEMPORARY, summary, Result::MODULE_NN_DLP, description); } MakeStatusResult(Result::Summary summary,int description)57 inline Result MakeStatusResult(Result::Summary summary, int description) 58 { return Result(Result::LEVEL_STATUS, summary, Result::MODULE_NN_DLP, description); } 59 } 60 61 /*!--------------------------------------------------------------------------* 62 @brief 呼び出した関数の引数が範囲外にあることを意味するエラーを返します。 63 @return エラーコードを返します。 64 *--------------------------------------------------------------------------*/ ResultArgumentOutOfRange()65 inline Result ResultArgumentOutOfRange() 66 { 67 return detail::MakeUsageResult(Result::SUMMARY_INVALID_ARGUMENT, Result::DESCRIPTION_OUT_OF_RANGE); 68 } 69 70 71 /*!--------------------------------------------------------------------------* 72 @brief 初期化に失敗したことを意味するエラーを返します。 73 @return エラーコードを返します。 74 *--------------------------------------------------------------------------*/ ResultFailedToInitialize()75 inline Result ResultFailedToInitialize() 76 { 77 return detail::MakeFatalResult(Result::SUMMARY_INTERNAL, Result::DESCRIPTION_NOT_INITIALIZED); 78 } 79 80 81 /*!--------------------------------------------------------------------------* 82 @brief 下層の通信に関する処理が失敗したことを意味するエラーを返します。 83 @return エラーコードを返します。 84 *--------------------------------------------------------------------------*/ ResultUnderLaidCommFailed()85 inline Result ResultUnderLaidCommFailed() 86 { 87 return detail::MakePermanentResult(Result::SUMMARY_INTERNAL, DESCRIPTION_UNDERLAID_COMM_FAILED); 88 } 89 90 91 /*!--------------------------------------------------------------------------* 92 @brief 関数の実行に必要なメモリが不足していることを意味するエラーを返します。 93 @return エラーコードを返します。 94 *--------------------------------------------------------------------------*/ ResultOutOfMemory()95 inline Result ResultOutOfMemory() 96 { 97 return detail::MakeFatalResult(Result::SUMMARY_OUT_OF_RESOURCE, Result::DESCRIPTION_OUT_OF_MEMORY); 98 } 99 100 101 /*!--------------------------------------------------------------------------* 102 @brief 初期化関数を呼んだ際にすでに初期化されていることを意味するエラーを返します。 103 @return エラーコードを返します。 104 *--------------------------------------------------------------------------*/ ResultAlreadyInitialized()105 inline Result ResultAlreadyInitialized() 106 { 107 return detail::MakeUsageResult( Result::SUMMARY_INVALID_STATE, Result::DESCRIPTION_ALREADY_INITIALIZED ); 108 } 109 110 111 /*!--------------------------------------------------------------------------* 112 @brief 関数を実行すべき状態でないことを意味するエラーを返します。 113 @return エラーコードを返します。 114 *--------------------------------------------------------------------------*/ ResultInvalidState()115 inline Result ResultInvalidState() 116 { 117 return detail:: MakeStatusResult(Result::SUMMARY_INVALID_STATE, DESCRIPTION_NO_DESCRIPTION); 118 } 119 120 121 /*!--------------------------------------------------------------------------* 122 @brief 指定されたデータがないことを意味するエラーを返します。 123 @return エラーコードを返します。 124 *--------------------------------------------------------------------------*/ ResultNoData()125 inline Result ResultNoData() 126 { 127 return detail:: MakeStatusResult(Result::SUMMARY_NOT_FOUND, Result::DESCRIPTION_NO_DATA); 128 } 129 130 131 /*!--------------------------------------------------------------------------* 132 @brief cia へのアクセスに何かしらの理由で失敗したことを意味するエラーを返します。 133 @return エラーコードを返します。 134 *--------------------------------------------------------------------------*/ ResultFailedToAccessCia()135 inline Result ResultFailedToAccessCia() 136 { 137 return detail:: MakePermanentResult(Result::SUMMARY_INTERNAL, DESCRIPTION_CIA_ACCESS_FAILED); 138 } 139 140 141 /*!--------------------------------------------------------------------------* 142 @brief cia のインポートに失敗したことを意味するエラーを返します。 143 @return エラーコードを返します。 144 *--------------------------------------------------------------------------*/ ResultFailedToImportCia()145 inline Result ResultFailedToImportCia() 146 { 147 return detail:: MakeFatalResult(Result::SUMMARY_INTERNAL, DESCRIPTION_CIA_IMPORT_FAILED); 148 } 149 150 151 /*!--------------------------------------------------------------------------* 152 @brief サポートしていない メディアタイプが使用されていることを意味するエラーを返します。 153 @return エラーコードを返します。 154 *--------------------------------------------------------------------------*/ ResultInvalidMediaType()155 inline Result ResultInvalidMediaType() 156 { 157 return detail:: MakeUsageResult(Result::SUMMARY_NOT_SUPPORTED, DESCRIPTION_INVALID_MEDIA_TYPE); 158 } 159 160 /*!--------------------------------------------------------------------------* 161 @brief サーバ において 子機の CIA サイズが大きすぎることを意味するエラーを返します。 162 @return エラーコードを返します。 163 *--------------------------------------------------------------------------*/ ResultCiaSizeTooLarge()164 inline Result ResultCiaSizeTooLarge() 165 { 166 return detail:: MakeFatalResult(Result::SUMMARY_NOT_SUPPORTED, Result::DESCRIPTION_TOO_LARGE); 167 } 168 169 /*!--------------------------------------------------------------------------* 170 @brief サーバ において 子機のリージョンと自身のリージョンが一致していことを意味するエラーを返します。 171 @return エラーコードを返します。 172 *--------------------------------------------------------------------------*/ ResultInvalidRegion()173 inline Result ResultInvalidRegion() 174 { 175 return detail::MakeUsageResult(Result::SUMMARY_NOT_SUPPORTED, DESCRIPTION_INVALID_REGION); 176 } 177 178 } 179 } 180 } 181 182 #endif // __cplusplus 183 184 #endif /* NN_DLP_CTR_DLP_RESULT_H_ */ 185