ctr_Repair/trunk/ConsoleDataMigration/sources/ConsoleRestore/PreinstallImporter.h
N2614 487b92c8f2 BOMを付加
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@607 385bec56-5757-e545-9c3a-d8741f4650f1
2012-01-26 05:33:57 +00:00

61 lines
2.7 KiB
C++
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*---------------------------------------------------------------------------*
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 <nn.h>
#include <nn/xml/simple/xml_simple_SimpleXmlParser.h>
#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)<BR/>
//! の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_ */