Changeset View
Changeset View
Standalone View
Standalone View
ps/trunk/source/ps/XML/Xeromyces.h
Show All 24 Lines | |||||
#define INCLUDED_XEROMYCES | #define INCLUDED_XEROMYCES | ||||
#include "ps/Errors.h" | #include "ps/Errors.h" | ||||
ERROR_GROUP(Xeromyces); | ERROR_GROUP(Xeromyces); | ||||
ERROR_TYPE(Xeromyces, XMLOpenFailed); | ERROR_TYPE(Xeromyces, XMLOpenFailed); | ||||
ERROR_TYPE(Xeromyces, XMLParseError); | ERROR_TYPE(Xeromyces, XMLParseError); | ||||
ERROR_TYPE(Xeromyces, XMLValidationFailed); | ERROR_TYPE(Xeromyces, XMLValidationFailed); | ||||
#include "XeroXMB.h" | #include "ps/XMB/XMBData.h" | ||||
#include "ps/XMB/XMBStorage.h" | |||||
#include "lib/file/vfs/vfs.h" | #include "lib/file/vfs/vfs.h" | ||||
class RelaxNGValidator; | class RelaxNGValidator; | ||||
class WriteBuffer; | |||||
typedef struct _xmlDoc xmlDoc; | class CXeromyces : public XMBData | ||||
typedef xmlDoc* xmlDocPtr; | |||||
class CXeromyces : public XMBFile | |||||
{ | { | ||||
friend class TestXeroXMB; | friend class TestXMBData; | ||||
friend class XMBData; | |||||
public: | public: | ||||
/** | /** | ||||
* Load from an XML file (with invisible XMB caching). | * Load from an XML file (with invisible XMB caching). | ||||
*/ | */ | ||||
PSRETURN Load(const PIVFS& vfs, const VfsPath& filename, const std::string& validatorName = ""); | PSRETURN Load(const PIVFS& vfs, const VfsPath& filename, const std::string& validatorName = ""); | ||||
/** | /** | ||||
* Load from an in-memory XML string (with no caching). | * Load from an in-memory XML string (with no caching). | ||||
Show All 22 Lines | public: | ||||
static bool ValidateEncoded(const std::string& name, const std::string& filename, const std::string& document); | static bool ValidateEncoded(const std::string& name, const std::string& filename, const std::string& document); | ||||
private: | private: | ||||
static RelaxNGValidator& GetValidator(const std::string& name); | static RelaxNGValidator& GetValidator(const std::string& name); | ||||
PSRETURN ConvertFile(const PIVFS& vfs, const VfsPath& filename, const VfsPath& xmbPath, const std::string& validatorName); | PSRETURN ConvertFile(const PIVFS& vfs, const VfsPath& filename, const VfsPath& xmbPath, const std::string& validatorName); | ||||
bool ReadXMBFile(const PIVFS& vfs, const VfsPath& filename); | XMBStorage m_Data; | ||||
static PSRETURN CreateXMB(const xmlDocPtr doc, WriteBuffer& writeBuffer); | |||||
shared_ptr<u8> m_XMBBuffer; | |||||
}; | }; | ||||
#define _XERO_MAKE_UID2__(p,l) p ## l | #define _XERO_MAKE_UID2__(p,l) p ## l | ||||
#define _XERO_MAKE_UID1__(p,l) _XERO_MAKE_UID2__(p,l) | #define _XERO_MAKE_UID1__(p,l) _XERO_MAKE_UID2__(p,l) | ||||
#define _XERO_CHILDREN _XERO_MAKE_UID1__(_children_, __LINE__) | #define _XERO_CHILDREN _XERO_MAKE_UID1__(_children_, __LINE__) | ||||
#define _XERO_I _XERO_MAKE_UID1__(_i_, __LINE__) | #define _XERO_I _XERO_MAKE_UID1__(_i_, __LINE__) | ||||
#define XERO_ITER_EL(parent_element, child_element) \ | #define XERO_ITER_EL(parent_element, child_element) \ | ||||
for (XMBElement child_element : parent_element.GetChildNodes()) | for (XMBElement child_element : parent_element.GetChildNodes()) | ||||
#define XERO_ITER_ATTR(parent_element, attribute) \ | #define XERO_ITER_ATTR(parent_element, attribute) \ | ||||
for (XMBAttribute attribute : parent_element.GetAttributes()) | for (XMBAttribute attribute : parent_element.GetAttributes()) | ||||
#endif // INCLUDED_XEROMYCES | #endif // INCLUDED_XEROMYCES |
Wildfire Games · Phabricator