2010-05-27 23:18:08 +00:00
|
|
|
|
// This code is in the public domain -- Ignacio Casta<74>o <castano@gmail.com>
|
2007-11-06 10:14:57 +00:00
|
|
|
|
|
2009-03-01 00:18:47 +00:00
|
|
|
|
#include "TextWriter.h"
|
2007-11-06 10:14:57 +00:00
|
|
|
|
|
|
|
|
|
using namespace nv;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// Constructor
|
|
|
|
|
TextWriter::TextWriter(Stream * s) :
|
2010-05-27 23:18:08 +00:00
|
|
|
|
s(s),
|
|
|
|
|
str(1024)
|
2007-11-06 10:14:57 +00:00
|
|
|
|
{
|
2010-05-27 23:18:08 +00:00
|
|
|
|
nvCheck(s != NULL);
|
|
|
|
|
nvCheck(s->isSaving());
|
2007-11-06 10:14:57 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void TextWriter::writeString(const char * str)
|
|
|
|
|
{
|
2010-05-27 23:18:08 +00:00
|
|
|
|
nvDebugCheck(s != NULL);
|
2012-04-30 23:02:23 +00:00
|
|
|
|
s->serialize(const_cast<char *>(str), strLen(str));
|
2007-11-06 10:14:57 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void TextWriter::writeString(const char * str, uint len)
|
|
|
|
|
{
|
2010-05-27 23:18:08 +00:00
|
|
|
|
nvDebugCheck(s != NULL);
|
|
|
|
|
s->serialize(const_cast<char *>(str), len);
|
2007-11-06 10:14:57 +00:00
|
|
|
|
}
|
|
|
|
|
|
2014-11-04 17:49:29 +00:00
|
|
|
|
void TextWriter::format(const char * format, ...)
|
2007-11-06 10:14:57 +00:00
|
|
|
|
{
|
2010-05-27 23:18:08 +00:00
|
|
|
|
va_list arg;
|
|
|
|
|
va_start(arg,format);
|
2010-09-07 18:24:50 +00:00
|
|
|
|
str.formatList(format, arg);
|
2010-05-27 23:18:08 +00:00
|
|
|
|
writeString(str.str(), str.length());
|
|
|
|
|
va_end(arg);
|
2007-11-06 10:14:57 +00:00
|
|
|
|
}
|
|
|
|
|
|
2014-11-04 17:49:29 +00:00
|
|
|
|
void TextWriter::formatList(const char * format, va_list arg)
|
2007-11-06 10:14:57 +00:00
|
|
|
|
{
|
2010-05-27 23:18:08 +00:00
|
|
|
|
va_list tmp;
|
|
|
|
|
va_copy(tmp, arg);
|
2010-09-07 18:24:50 +00:00
|
|
|
|
str.formatList(format, arg);
|
2010-05-27 23:18:08 +00:00
|
|
|
|
writeString(str.str(), str.length());
|
|
|
|
|
va_end(tmp);
|
2007-11-06 10:14:57 +00:00
|
|
|
|
}
|