/*---------------------------------------------------------------------------* Project: Horizon File: PreinstallImporter.h Copyright 2009-2011 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. $Rev$ *---------------------------------------------------------------------------*/ #ifndef PREINSTALLIMPORTER_H_ #define PREINSTALLIMPORTER_H_ #include #include #include "BgsCommunicator.h" namespace ConsoleRestore { //! @brief プリインストールをSDカードに書き込むためのクラスです class PreinstallImporter { public: PreinstallImporter(); virtual ~PreinstallImporter(); //! @brief 外部タイトルデータベースを作成します nn::Result SetupSd(bool* isAlreadyAvailable); //! @brief ダウンロードするプリインストールタイトルをBGS経由でリストアップする //! @param[out] list    プリインストールタイトルの配列。十分に大きいものを渡すこと。 //! @param[out] num プリインストールタイトルの数 //! @param[in] deviceId デバイスID //! @param[in] serialNo シリアルナンバー nn::Result ListTitles(nn::ProgramId* list, size_t* num, bit64 deviceId, u8* serialNo); private: //! @brief HTMLレスポンスを受信してXMLデータを解析します nn::Result GetHtmlBodyAndParseXmlData(BgsCommunicator& comm, nn::ProgramId* list, size_t* num); //! @brief 受信したXMLデータを解析してタイトルIDリストを設定します //! @return プリインストールアプリが存在しない場合、(Level=Status, Summary=NotFound, Module=Application, Description=NotFound)
//! のResultを返します nn::Result ParseXmlData(void* buf, nn::ProgramId* list, size_t* num); //! @brief SimpleXmlパーサの解析をTitleIdノードまで進めます nn::Result SetNodetoTitleIds(nn::xml::simple::SimpleXmlParser& parser, std::string& xmlData, const nn::xml::simple::SimpleXmlParser::Node** pNode); //! @brief カンマ区切りのプログラムIDのリストを分割して出力用のリストに設定します void SplitTextAndSetupList(nn::ProgramId* list, size_t* num, char* text); }; } /* namespace ConsoleRestore */ #endif /* PREINSTALLIMPORTER_H_ */