/*---------------------------------------------------------------------------* Project: Horizon File: cec_MessageBox.h Copyright 2009 Nintendo. 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. $Date:: 2010-09-21#$ $Rev: 26414 $ $Author: sato_yoshinobu $ *---------------------------------------------------------------------------*/ #ifndef __MESSAGE_BOX_SYSTEM_H__ #define __MESSAGE_BOX_SYSTEM_H__ #include namespace nn { namespace cec { namespace CTR { /*! :private @brief CEC MessageBox にアクセスするためのクラスです。(特権用) */ class MessageBoxSystem : public MessageBox { public: MessageBoxSystem(bool NoInitialize = false); virtual ~MessageBoxSystem(); //! @name Boxの作成/削除 //@{ u32 GetMessageBoxList(MessageBoxList& messageBoxList); /*! @brief MessageBox を作成します。 @param[in] cecTitleId Title固有ID @param[in] privateId BOXにアクセスするときのキーとなります。 BOXにアクセスするアプリが保持している値を使用する必要があります。 @param[in] hmacKey Message を読み出すときに必要なキーを指定します。32文字の文字列で指定します。 通信相手と共通のキーである必要があります。 @param[in] flag MessageBoxFlag で BOX種別を指定します。 @param[in] inboxSizeMax 受信ボックスの最大保存サイズを指定します。 @param[in] outboxSizeMax 送信ボックスの最大保存サイズを指定します。 @param[in] inboxMessNumMax 受信ボックスの最大保存Message数を指定します。 @param[in] outboxMessNumMax 送信ボックスの最大保存Message数を指定します。 @param[in] messageSizeMax Messageの最大サイズを指定します。このサイズを超えるMessageは保存できません。 @return nn::Result */ nn::Result CreateMessageBox_System( const TitleId cecTitleId, const u32 privateId, const char* hmacKey, MessageBoxFlag flag, size_t inboxSizeMax = CEC_INBOX_SIZE_DEFAULT, size_t outboxSizeMax = CEC_OUTBOX_SIZE_DEFAULT, size_t inboxMessNumMax = CEC_INBOX_MESSNUM_DEFAULT, size_t outboxMessNumMax = CEC_OUTBOX_MESSNUM_DEFAULT, size_t messageSizeMax = CEC_MESSSIZEMAX_DEFAULT ); nn::Result DeleteAllBoxes(); void SetLastOpenedDate(const nn::fnd::DateTimeParameters& dateTime); nn::fnd::DateTimeParameters GetLastOpenedDate(); /*! @brief MessageBox を開きます。Box内のMessageにアクセスするために、まずこの関数でBoxを開く必要があります。 privateIdを指定することなくBOXにアクセス可能です。 @param[in] cecTitleId Title固有ID @return nn::Result */ virtual nn::Result OpenMessageBoxForce(const TitleId cecTitleId); nn::Result SetMessageBoxFlag(const MessageBoxFlag flag); }; } // namespace CTR } // namespace cec } // namespace nn /* #define CEC_STATE_MFILTER_EXCHANGE (0x1) #define CEC_STATE_ID_EXCHANGE (0x2) #define CEC_STATE_LIST_EXCHANGE (0x4) */ #endif //__MESSAGE_BOX_SYSTEM_H__