24StringWriter::StringWriter(
size_t _capacity)
32StringWriter::~StringWriter()
38 catch (Exception* cause) {
45void StringWriter::close()
54Writer& StringWriter::write(
const wchar_t* _buf,
size_t _n)
61 __buf = CharBuffer::create_e(
__MAX(_n, __capacity));
62 else if (__buf->__refCount > 1) {
63 CharBuffer*
buf = CharBuffer::create_e(
__MAX(_n, __capacity));
64 memcpy(
buf->data(), __buf->data(), (__buf->__dataLength + 1) *
sizeof(
wchar_t));
65 buf->__dataLength = __buf->__dataLength;
74 CharBuffer::write(__buf, _buf, _n);
79int StringWriter::vprintf(
const wchar_t* _format, va_list _arglist)
85 __buf = CharBuffer::create_e(__capacity);
86 else if (__buf->__refCount > 1) {
87 CharBuffer*
buf = CharBuffer::create_e(__capacity);
88 memcpy(
buf->data(), __buf->data(), (__buf->__dataLength + 1) *
sizeof(
wchar_t));
89 buf->__dataLength = __buf->__dataLength;
98 return CharBuffer::vformat(__buf, _format, _arglist);
101size_t StringWriter::writeTo(
Writer& _writer)
const
104 if (__buf !=
NULL && __buf->__dataLength) {
105 _writer.write(__buf->data(), __buf->__dataLength);
106 return __buf->__dataLength;
111size_t StringWriter::flushTo(
Writer& _writer)
114 size_t n = writeTo(_writer);
121void StringWriter::reset()
124 if (
__buf->__refCount == 1) {
125 __buf->__dataLength = 0;
#define __DCL_TRACE1(fmt, arg1)
#define __DCL_ASSERT_PARAM(expr)
#define __DCL_ASSERT(expr)
#define IMPLEMENT_CLASSINFO(class_name, base_class_name)
void CharsetConvertException *size_t n
virtual String toString() const
virtual String toString() const
size_t __MAX(size_t x, size_t y)