nvidia-texture-tools/src/nvcore/TextWriter.h

65 lines
1023 B
C
Raw Normal View History

// This code is in the public domain -- castano@gmail.com
2007-04-17 08:49:19 +00:00
#ifndef NV_CORE_TEXTWRITER_H
#define NV_CORE_TEXTWRITER_H
2007-04-17 08:49:19 +00:00
2010-03-16 22:35:20 +00:00
#include "StrLib.h"
#include "Stream.h"
2007-04-17 08:49:19 +00:00
namespace nv
{
/// Text writer.
class NVCORE_CLASS TextWriter
{
public:
2007-11-06 10:14:57 +00:00
TextWriter(Stream * s);
2007-04-17 08:49:19 +00:00
2007-11-06 10:14:57 +00:00
void writeString(const char * str);
void writeString(const char * str, uint len);
void write(const char * format, ...) __attribute__((format (printf, 2, 3)));
void write(const char * format, va_list arg);
2007-04-17 08:49:19 +00:00
private:
Stream * s;
// Temporary string.
StringBuilder str;
};
2007-11-06 10:14:57 +00:00
inline TextWriter & operator<<( TextWriter & tw, int i)
{
tw.write("%d", i);
return tw;
}
inline TextWriter & operator<<( TextWriter & tw, uint i)
{
tw.write("%u", i);
return tw;
}
inline TextWriter & operator<<( TextWriter & tw, float f)
{
tw.write("%f", f);
return tw;
}
inline TextWriter & operator<<( TextWriter & tw, const char * str)
{
tw.writeString(str);
return tw;
}
2007-04-17 08:49:19 +00:00
} // nv namespace
2007-11-06 10:14:57 +00:00
2007-04-17 08:49:19 +00:00
#endif // NVCORE_TEXTWRITER_H