aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/Xbox/Sentient/Include/SenClientXML.h
diff options
context:
space:
mode:
Diffstat (limited to 'Minecraft.Client/Xbox/Sentient/Include/SenClientXML.h')
-rw-r--r--Minecraft.Client/Xbox/Sentient/Include/SenClientXML.h85
1 files changed, 85 insertions, 0 deletions
diff --git a/Minecraft.Client/Xbox/Sentient/Include/SenClientXML.h b/Minecraft.Client/Xbox/Sentient/Include/SenClientXML.h
new file mode 100644
index 00000000..d1ebc051
--- /dev/null
+++ b/Minecraft.Client/Xbox/Sentient/Include/SenClientXML.h
@@ -0,0 +1,85 @@
+/********************************************************
+* *
+* Copyright (C) Microsoft. All rights reserved. *
+* *
+********************************************************/
+
+// Sentient Client XML API
+//
+// Include this to get access to all XML Sentient features.
+
+#pragma once
+
+#include "SenClientTypes.h"
+
+
+namespace Sentient
+{
+ //======================//
+ // //
+ // XML Data Types //
+ // //
+ //======================//
+
+ /// @brief An easy-to-access pre-parsed XML.
+ ///
+ /// @details This holds some easily-traversible, easily-searchible representations
+ /// of the content of a raw UTF-8 XML buffer.
+ ///
+ /// @related SenXMLParse()
+ /// @related SenXMLDestroy()
+ ///
+ struct SenXML
+ {
+ void *reserved;
+ };
+
+
+ //=====================//
+ // //
+ // XML Functions //
+ // //
+ //=====================//
+
+ /// @brief Parse a raw UTF-8 XML buffer into a more useful format.
+ ///
+ /// @param[in] source
+ /// The raw UTF-8 XML buffer to be parsed.
+ ///
+ /// @param[out] out_senXML
+ /// The (private) object to hold the parsed data.
+ ///
+ /// @return Check SUCCEEDED( hresult ) or FAILED( hresult ) to determine success. Specific values include:
+ /// E_POINTER: Bad pointer to the raw XML buffer.
+ /// E_OUTOFMEMORY: Couldn't parse due to lack of memory.
+ /// E_FAIL: Failed to parse for unspecified reason.
+ /// S_OK: Parsed successfully.
+ ///
+ /// @details It is expensive to parse an XML file directly for each attribute fetch.
+ /// Thus, we pre-parse the whole thing once after (down)loading it and then
+ /// pass the parsed data to the fetch routines.
+ ///
+ /// @related SenXMLDestroy()
+ ///
+ HRESULT SenXMLParse(
+ const char *source,
+ SenXML *out_senXML );
+
+ /// @brief Free the resources/memory associated with a parsed XML file.
+ ///
+ /// @param[in] senXML
+ /// The (private) object holding the parsed data to be freed.
+ ///
+ /// @return Check SUCCEEDED( hresult ) or FAILED( hresult ) to determine success. Specific values include:
+ /// E_INVALIDARG: senXML is not a parsed XML.
+ /// S_OK: Destroyed/freed successfully.
+ ///
+ /// @details A parsed XML takes up some extra memory. Once done with its contents,
+ /// you should call this routine to free it up.
+ ///
+ /// @related SenXMLParse()
+ ///
+ HRESULT SenXMLDestroy(
+ SenXML &senXML );
+
+} // namespace Sentient