Lines Matching refs:writer

58     Writer *writer = xcalloc(1, sizeof(Writer));  in FileWriter()  local
60 writer->type = WT_FILE; in FileWriter()
61 writer->file = file; in FileWriter()
62 return writer; in FileWriter()
69 Writer *writer = xcalloc(1, sizeof(Writer)); in StringWriter() local
71 writer->type = WT_STRING; in StringWriter()
72 writer->string.data = xstrdup(""); in StringWriter()
73 writer->string.allocated = 1; in StringWriter()
74 writer->string.len = 0; in StringWriter()
75 return writer; in StringWriter()
80 static void StringWriterReallocate(Writer *writer, size_t extra_length) in StringWriterReallocate() argument
82 assert(writer != NULL); in StringWriterReallocate()
83writer->string.allocated = MAX(writer->string.allocated * 2, writer->string.len + extra_length + 1… in StringWriterReallocate()
84 writer->string.data = xrealloc(writer->string.data, writer->string.allocated); in StringWriterReallocate()
87 static size_t StringWriterWriteChar(Writer *writer, char c) in StringWriterWriteChar() argument
89 assert(writer != NULL); in StringWriterWriteChar()
90 if (writer->string.len + 2 > writer->string.allocated) in StringWriterWriteChar()
92 StringWriterReallocate(writer, 2); in StringWriterWriteChar()
95 writer->string.data[writer->string.len] = c; in StringWriterWriteChar()
96 writer->string.data[writer->string.len + 1] = '\0'; in StringWriterWriteChar()
97 writer->string.len++; in StringWriterWriteChar()
102 static size_t StringWriterWriteLen(Writer *writer, const char *str, size_t len_) in StringWriterWriteLen() argument
104 assert(writer != NULL); in StringWriterWriteLen()
108 if (writer->string.len + len + 1 > writer->string.allocated) in StringWriterWriteLen()
110 StringWriterReallocate(writer, len); in StringWriterWriteLen()
113 memcpy(writer->string.data + writer->string.len, str, len); in StringWriterWriteLen()
114 writer->string.data[writer->string.len + len] = '\0'; in StringWriterWriteLen()
115 writer->string.len += len; in StringWriterWriteLen()
122 static size_t FileWriterWriteF(Writer *writer, const char *fmt, va_list ap) in FileWriterWriteF() argument
124 assert(writer != NULL); in FileWriterWriteF()
125 return vfprintf(writer->file, fmt, ap); in FileWriterWriteF()
130 static size_t FileWriterWriteLen(Writer *writer, const char *str, size_t len_) in FileWriterWriteLen() argument
132 assert(writer != NULL); in FileWriterWriteLen()
136 return CFENGINE_TEST_fwrite(str, 1, len, writer->file); in FileWriterWriteLen()
138 return fwrite(str, 1, len, writer->file); in FileWriterWriteLen()
144 size_t WriterWriteF(Writer *writer, const char *fmt, ...) in WriterWriteF() argument
149 size_t size = WriterWriteVF(writer, fmt, ap); in WriterWriteF()
157 size_t WriterWriteVF(Writer *writer, const char *fmt, va_list ap) in WriterWriteVF() argument
159 assert(writer != NULL); in WriterWriteVF()
160 if (writer->type == WT_STRING) in WriterWriteVF()
165 size_t size = StringWriterWriteLen(writer, str, INT_MAX); in WriterWriteVF()
172 return FileWriterWriteF(writer, fmt, ap); in WriterWriteVF()
178 size_t WriterWriteLen(Writer *writer, const char *str, size_t len) in WriterWriteLen() argument
180 assert(writer != NULL); in WriterWriteLen()
181 if (writer->type == WT_STRING) in WriterWriteLen()
183 return StringWriterWriteLen(writer, str, len); in WriterWriteLen()
187 return FileWriterWriteLen(writer, str, len); in WriterWriteLen()
193 size_t WriterWrite(Writer *writer, const char *str) in WriterWrite() argument
195 return WriterWriteLen(writer, str, INT_MAX); in WriterWrite()
200 size_t WriterWriteChar(Writer *writer, char c) in WriterWriteChar() argument
202 assert(writer != NULL); in WriterWriteChar()
203 if (writer->type == WT_STRING) in WriterWriteChar()
205 return StringWriterWriteChar(writer, c); in WriterWriteChar()
210 return FileWriterWriteLen(writer, s, 1); in WriterWriteChar()
216 size_t StringWriterLength(const Writer *writer) in StringWriterLength() argument
218 assert(writer != NULL); in StringWriterLength()
219 if (writer->type != WT_STRING) in StringWriterLength()
224 return writer->string.len; in StringWriterLength()
229 const char *StringWriterData(const Writer *writer) in StringWriterData() argument
231 assert(writer != NULL); in StringWriterData()
232 if (writer->type != WT_STRING) in StringWriterData()
237 return writer->string.data; in StringWriterData()
242 void WriterClose(Writer *writer) in WriterClose() argument
244 assert(writer != NULL); in WriterClose()
245 if (writer->type == WT_STRING) in WriterClose()
247 free(writer->string.data); in WriterClose()
252 CFENGINE_TEST_fclose(writer->file); in WriterClose()
254 fclose(writer->file); in WriterClose()
257 free(writer); in WriterClose()
262 char *StringWriterClose(Writer *writer) in StringWriterClose() argument
265 assert(writer != NULL); in StringWriterClose()
267 if (writer->type != WT_STRING) in StringWriterClose()
271 char *data = writer->string.data; in StringWriterClose()
273 free(writer); in StringWriterClose()
277 FILE *FileWriterDetach(Writer *writer) in FileWriterDetach() argument
279 assert(writer != NULL); in FileWriterDetach()
280 if (writer->type != WT_FILE) in FileWriterDetach()
284 FILE *file = writer->file; in FileWriterDetach()
285 free(writer); in FileWriterDetach()