You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
164 lines
6.1 KiB
164 lines
6.1 KiB
#ifndef _QPXMLWRITER_H
|
|
#define _QPXMLWRITER_H
|
|
/*-------------------------------------------------------------------------
|
|
* drawElements Quality Program Helper Library
|
|
* -------------------------------------------
|
|
*
|
|
* Copyright 2014 The Android Open Source Project
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*
|
|
*//*!
|
|
* \file
|
|
* \brief Test log library
|
|
*//*--------------------------------------------------------------------*/
|
|
|
|
#include "deDefs.h"
|
|
|
|
#include <stdio.h>
|
|
|
|
DE_BEGIN_EXTERN_C
|
|
|
|
typedef struct qpXmlWriter_s qpXmlWriter;
|
|
|
|
typedef enum qpXmlAttributeType_e
|
|
{
|
|
QP_XML_ATTRIBUTE_STRING = 0,
|
|
QP_XML_ATTRIBUTE_INT,
|
|
QP_XML_ATTRIBUTE_BOOL,
|
|
|
|
QP_XML_ATTRIBUTE_LAST
|
|
} qpXmlAttributeType;
|
|
|
|
typedef struct qpXmlAttribute_s
|
|
{
|
|
const char* name;
|
|
qpXmlAttributeType type;
|
|
const char* stringValue;
|
|
int intValue;
|
|
deBool boolValue;
|
|
} qpXmlAttribute;
|
|
|
|
DE_INLINE qpXmlAttribute qpSetStringAttrib (const char* name, const char* value)
|
|
{
|
|
qpXmlAttribute attrib;
|
|
attrib.name = name;
|
|
attrib.type = QP_XML_ATTRIBUTE_STRING;
|
|
attrib.stringValue = value;
|
|
attrib.intValue = -678;
|
|
attrib.boolValue = (deBool)0xFFFFFFFFu;
|
|
return attrib;
|
|
}
|
|
|
|
DE_INLINE qpXmlAttribute qpSetIntAttrib (const char* name, int value)
|
|
{
|
|
qpXmlAttribute attrib;
|
|
attrib.name = name;
|
|
attrib.type = QP_XML_ATTRIBUTE_INT;
|
|
attrib.stringValue = "<intAttrib>";
|
|
attrib.intValue = value;
|
|
attrib.boolValue = (deBool)0xFFFFFFFFu;
|
|
return attrib;
|
|
}
|
|
|
|
DE_INLINE qpXmlAttribute qpSetBoolAttrib (const char* name, deBool value)
|
|
{
|
|
qpXmlAttribute attrib;
|
|
attrib.name = name;
|
|
attrib.type = QP_XML_ATTRIBUTE_BOOL;
|
|
attrib.stringValue = "<boolAttrib>";
|
|
attrib.intValue = -679;
|
|
attrib.boolValue = value;
|
|
return attrib;
|
|
}
|
|
/*--------------------------------------------------------------------*//*!
|
|
* \brief Create a file based XML Writer instance
|
|
* \param fileName Name of the file
|
|
* \param useCompression Set to DE_TRUE to use compression, if supported by implementation
|
|
* \param flushAfterWrite Set to DE_TRUE to call fflush after writing each XML token
|
|
* \return qpXmlWriter instance, or DE_NULL if cannot create file
|
|
*//*--------------------------------------------------------------------*/
|
|
qpXmlWriter* qpXmlWriter_createFileWriter (FILE* outFile, deBool useCompression, deBool flushAfterWrite);
|
|
|
|
/*--------------------------------------------------------------------*//*!
|
|
* \brief XML Writer instance
|
|
* \param a qpXmlWriter instance
|
|
*//*--------------------------------------------------------------------*/
|
|
void qpXmlWriter_destroy (qpXmlWriter* writer);
|
|
|
|
/*--------------------------------------------------------------------*//*!
|
|
* \brief XML Writer instance
|
|
* \param a qpXmlWriter instance
|
|
*//*--------------------------------------------------------------------*/
|
|
void qpXmlWriter_flush (qpXmlWriter* writer);
|
|
|
|
/*--------------------------------------------------------------------*//*!
|
|
* \brief Start XML document
|
|
* \param writer qpXmlWriter instance
|
|
* \return true on success, false on error
|
|
*//*--------------------------------------------------------------------*/
|
|
deBool qpXmlWriter_startDocument (qpXmlWriter* writer);
|
|
|
|
/*--------------------------------------------------------------------*//*!
|
|
* \brief End XML document
|
|
* \param writer qpXmlWriter instance
|
|
* \return true on success, false on error
|
|
*//*--------------------------------------------------------------------*/
|
|
deBool qpXmlWriter_endDocument (qpXmlWriter* writer);
|
|
|
|
/*--------------------------------------------------------------------*//*!
|
|
* \brief Start XML element
|
|
* \param writer qpXmlWriter instance
|
|
* \param elementName Name of the element
|
|
* \return true on success, false on error
|
|
*//*--------------------------------------------------------------------*/
|
|
deBool qpXmlWriter_startElement (qpXmlWriter* writer, const char* elementName, int numAttribs, const qpXmlAttribute* attribs);
|
|
|
|
/*--------------------------------------------------------------------*//*!
|
|
* \brief End XML element
|
|
* \param writer qpXmlWriter instance
|
|
* \param elementName Name of the element
|
|
* \return true on success, false on error
|
|
*//*--------------------------------------------------------------------*/
|
|
deBool qpXmlWriter_endElement (qpXmlWriter* writer, const char* elementName);
|
|
|
|
/*--------------------------------------------------------------------*//*!
|
|
* \brief Write raw string into XML document
|
|
* \param writer qpXmlWriter instance
|
|
* \param content String to be written
|
|
* \return true on success, false on error
|
|
*//*--------------------------------------------------------------------*/
|
|
deBool qpXmlWriter_writeString (qpXmlWriter* writer, const char* content);
|
|
|
|
/*--------------------------------------------------------------------*//*!
|
|
* \brief Write base64 encoded data into XML document
|
|
* \param writer qpXmlWriter instance
|
|
* \param data Pointer to data to be written
|
|
* \param numBytes Length of data in bytes
|
|
* \return true on success, false on error
|
|
*//*--------------------------------------------------------------------*/
|
|
deBool qpXmlWriter_writeBase64 (qpXmlWriter* writer, const deUint8* data, size_t numBytes);
|
|
|
|
/*--------------------------------------------------------------------*//*!
|
|
* \brief Convenience function for writing XML element
|
|
* \param writer qpXmlWriter instance
|
|
* \param elementName Name of the element
|
|
* \param elementContent Contents of the element
|
|
* \return true on success, false on error
|
|
*//*--------------------------------------------------------------------*/
|
|
deBool qpXmlWriter_writeStringElement (qpXmlWriter* writer, const char* elementName, const char* elementContent);
|
|
|
|
DE_END_EXTERN_C
|
|
|
|
#endif /* _QPXMLWRITER_H */
|