Lines Matching refs:writer
46 static deBool writeEscaped (qpXmlWriter* writer, const char* str)
113 fputs(buf, writer->outputFile);
118 if (writer->flushAfterWrite)
119 fflush(writer->outputFile);
126 qpXmlWriter* writer = (qpXmlWriter*)deCalloc(sizeof(qpXmlWriter));
127 if (!writer)
132 writer->outputFile = outputFile;
133 writer->flushAfterWrite = flushAfterWrite;
135 return writer;
138 void qpXmlWriter_destroy (qpXmlWriter* writer)
140 DE_ASSERT(writer);
142 deFree(writer);
145 static deBool closePending (qpXmlWriter* writer)
147 if (writer->xmlPrevIsStartElement)
149 fprintf(writer->outputFile, ">\n");
150 writer->xmlPrevIsStartElement = DE_FALSE;
156 void qpXmlWriter_flush (qpXmlWriter* writer)
158 closePending(writer);
161 deBool qpXmlWriter_startDocument (qpXmlWriter* writer, deBool writeXmlHeader)
163 DE_ASSERT(writer && !writer->xmlIsWriting);
164 writer->xmlIsWriting = DE_TRUE;
165 writer->xmlElementDepth = 0;
166 writer->xmlPrevIsStartElement = DE_FALSE;
169 fprintf(writer->outputFile, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
181 deBool qpXmlWriter_endDocument (qpXmlWriter* writer)
183 DE_ASSERT(writer);
184 DE_ASSERT(writer->xmlIsWriting);
185 DE_ASSERT(writer->xmlElementDepth == 0);
186 closePending(writer);
187 writer->xmlIsWriting = DE_FALSE;
191 deBool qpXmlWriter_writeString (qpXmlWriter* writer, const char* str)
193 if (writer->xmlPrevIsStartElement)
195 fprintf(writer->outputFile, ">");
196 writer->xmlPrevIsStartElement = DE_FALSE;
199 return writeEscaped(writer, str);
202 deBool qpXmlWriter_startElement(qpXmlWriter* writer, const char* elementName, int numAttribs, const qpXmlAttribute* attribs)
206 closePending(writer);
208 fprintf(writer->outputFile, "%s<%s", getIndentStr(writer->xmlElementDepth), elementName);
213 fprintf(writer->outputFile, " %s=\"", attrib->name);
217 writeEscaped(writer, attrib->stringValue);
224 writeEscaped(writer, buf);
229 writeEscaped(writer, attrib->boolValue ? "True" : "False");
235 fprintf(writer->outputFile, "\"");
238 writer->xmlElementDepth++;
239 writer->xmlPrevIsStartElement = DE_TRUE;
243 deBool qpXmlWriter_endElement (qpXmlWriter* writer, const char* elementName)
245 DE_ASSERT(writer && writer->xmlElementDepth > 0);
246 writer->xmlElementDepth--;
248 if (writer->xmlPrevIsStartElement) /* leave flag as-is */
250 fprintf(writer->outputFile, " />\n");
251 writer->xmlPrevIsStartElement = DE_FALSE;
254 fprintf(writer->outputFile, "</%s>\n", /*getIndentStr(writer->xmlElementDepth),*/ elementName);
259 deBool qpXmlWriter_writeBase64 (qpXmlWriter* writer, const deUint8* data, size_t numBytes)
273 const char* indentStr = getIndentStr(writer->xmlElementDepth);
275 DE_ASSERT(writer && data && (numBytes > 0));
278 closePending(writer);
303 fprintf(writer->outputFile, "%s", indentStr);
308 fprintf(writer->outputFile, "%s", &d[0]);
314 fprintf(writer->outputFile, "\n");
322 fprintf(writer->outputFile, "\n");
330 deBool qpXmlWriter_writeStringElement (qpXmlWriter* writer, const char* elementName, const char* elementContent)
332 if (!qpXmlWriter_startElement(writer, elementName, 0, DE_NULL) ||
333 (elementContent && !qpXmlWriter_writeString(writer, elementContent)) ||
334 !qpXmlWriter_endElement(writer, elementName))