/*---------------------------------------------------------------------------* Project: Horizon File: boss_NsData.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: 26304 $ *---------------------------------------------------------------------------*/ #ifndef NN_BOSS_BOSS_NSDATA_H_ #define NN_BOSS_BOSS_NSDATA_H_ #include #include #include #include #ifdef __cplusplus namespace nn { namespace boss { /*! @brief NSデータを表すクラスです。NSデータの操作(Readなど)に利用します。 */ class NsData { public: static const s32 NN_BOSS_NSDATA_READ_ERROR_GET_HEADER = -1; //!< NSデータのReadNsDataエラー定義。NSデータヘッダの取得に失敗した。 static const s32 NN_BOSS_NSDATA_READ_ERROR_READ_DATA = -2; //!< NSデータのReadNsDataエラー定義。NSデータの読み込みに失敗した。 static const s32 NN_BOSS_NSDATA_READ_ERROR_IPC = -3; //!< NSデータのReadNsDataエラー定義。IPCでエラーが発生した。 NN_PADDING4; /*! @brief コンストラクタです。 */ explicit NsData(void); /*! @brief デストラクタです。 */ virtual ~NsData(void); /*! @brief シリアルIDを指定してNSデータを取得します。 @param[in] serial シリアルIDを指定します。 @return 処理の結果が返ります。
*/ nn::Result Initialize(u32 serial); /*! @brief NSDを削除します。 @return 処理の結果が返ります。
@retval Description== @ref ER_NSDATA_NOTFOUND 「NSD Data なし」を表すエラー @retval Description== @ref ER_FILE_ACCESS 「ファイルアクセスに失敗」を表すエラー */ nn::Result Delete(void); /*! @brief NSAヘッダ情報を読込みます。 @param[in] type ヘッダの要素種別を指定します。 @param[out] pValue ヘッダ情報の格納バッファを指定します。 @param[in] size バッファサイズを指定します。 @return 処理の結果が返ります。
@retval Description== @ref ER_INVALID_NSDATA_VALUE 「NSDATA格納領域のポインタがNULLです。」を表すエラー @retval Description== @ref ER_NSDATA_NOTFOUND 「NSD Data なし」を表すエラー @retval Description== @ref ER_NSDATA_INVALID_FORMAT 「NSD Data フォーマット異常」を表すエラー @retval Description== @ref ER_INVALID_NSDATA_GETHEAD_SIZE 「不正なNSDATAのSIZEパラメータ指定」を表すエラー @retval Description== @ref ER_FILE_ACCESS 「ファイルアクセスに失敗」を表すエラー */ nn::Result GetHeaderInfo(HeaderInfoType type, void* pValue, size_t size); /*! @brief NSDを読込みます。 @param[out] pDataBuf NSDのバッファを指定します。 @param[in] bufLen NSDのバッファ長を指定します。 @return 読み込んだバイト数を返します。終端に達したときは 0 を返します。
@retval Description== @ref ER_INVALID_NSDATA_VALUE 「NSDATA格納領域のポインタがNULLです。」を表すエラー @retval Description== @ref ER_NSDATA_NOTFOUND 「NSD Data なし」を表すエラー @retval Description== @ref ER_NSDATA_INVALID_FORMAT 「NSD Data フォーマット異常」を表すエラー @retval Description== @ref ER_FILE_ACCESS 「ファイルアクセスに失敗」を表すエラー */ s32 ReadData(u8* pDataBuf, size_t bufLen); /*! @brief NSDの読み込み位置を変更します。 @param[in] position 読み込み位置の変更する位置を指定します。 @param[in] base 読み込み位置の変更する基準を指定します。 @return 処理の結果が返ります。
@retval Description== @ref ER_INVALID_NSDATA_SEEK_POSITION 「NSDATAのシーク位置がデータサイズを超えています。」を表すエラー @retval Description== @ref ER_NSDATA_NOTFOUND 「NSD Data なし」を表すエラー @retval Description== @ref ER_NSDATA_INVALID_FORMAT 「NSD Data フォーマット異常」を表すエラー @retval Description== @ref ER_FILE_ACCESS 「ファイルアクセスに失敗」を表すエラー */ nn::Result SetReadDataPosition(s64 position, PositionBase base); /*! @brief NSデータの付加情報を設定します。 @param[in] info 設定する付加情報を指定します。 @return 処理の結果が返ります。
@retval Description== @ref ER_NSDATA_NOTFOUND 「NSD Data なし」を表すエラー @retval Description== @ref ER_NSDATA_INVALID_FORMAT 「NSD Data フォーマット異常」を表すエラー @retval Description== @ref ER_FILE_ACCESS 「ファイルアクセスに失敗」を表すエラー */ nn::Result SetAdditionalInfo(u32 info); /*! @brief NSデータの付加情報を取得します。 @param[in] info 現在の付加情報が返ります。 @return 処理の結果が返ります。
@retval Description== @ref ER_INVALID_NSDATA_INFO 「NSDATA追加情報を格納するポインタがNULLです。」を表すエラー @retval Description== @ref ER_NSDATA_NOTFOUND 「NSD Data なし」を表すエラー @retval Description== @ref ER_NSDATA_INVALID_FORMAT 「NSD Data フォーマット異常」を表すエラー @retval Description== @ref ER_FILE_ACCESS 「ファイルアクセスに失敗」を表すエラー */ nn::Result GetAdditionalInfo(u32* pInfo); /*! @brief NSデータの既読未読フラグを設定します。 @param[in] flag 取得するフラグを指定します。 true:既読 @return 処理の結果が返ります。
@retval Description== @ref ER_NSDATA_NOTFOUND 「NSD Data なし」を表すエラー @retval Description== @ref ER_NSDATA_INVALID_FORMAT 「NSD Data フォーマット異常」を表すエラー @retval Description== @ref ER_FILE_ACCESS 「ファイルアクセスに失敗」を表すエラー */ nn::Result SetReadFlag(bool flag); /*! @brief NSデータの既読未読フラグを取得します。 @param[out] flag 取得したフラグが返ります。true:既読 @return 処理の結果が返ります。
@retval Description== @ref ER_INVALID_NSDATA_READFLAG 「NSDATAリードフラグの格納領域のポインタがNULLです。」を表すエラー @retval Description== @ref ER_NSDATA_NOTFOUND 「NSD Data なし」を表すエラー @retval Description== @ref ER_NSDATA_INVALID_FORMAT 「NSD Data フォーマット異常」を表すエラー @retval Description== @ref ER_FILE_ACCESS 「ファイルアクセスに失敗」を表すエラー */ nn::Result GetReadFlag(bool* pFlag); /*! @brief NSDの更新日時を取得します。 @param[out] pTime 更新したタイムスタンプが返ります。 @return 処理の結果が返ります。
@retval Description== @ref ER_INVALID_NSDATA_TIME 「NSDATAのUPDATEタイムの格納領域のポインタがNULLです。」を表すエラー @retval Description== @ref ER_NSDATA_NOTFOUND 「NSD Data なし」を表すエラー @retval Description== @ref ER_NSDATA_INVALID_FORMAT 「NSD Data フォーマット異常」を表すエラー @retval Description== @ref ER_FILE_ACCESS 「ファイルアクセスに失敗」を表すエラー */ nn::Result GetLastUpdated(nn::fnd::DateTime* pTime); protected: bool m_Privileged; NN_PADDING3; u32 m_SerialId; s32 m_dataSize; NN_PADDING4; AppIdType m_AppId; s64 m_ReadDataPos; }; } // end of namespace boss } // end of namespace nn #endif // __cplusplus #endif /* NN_BOSS_BOSS_NSDATA_H_ */