27 #ifndef OVERFLOWABLECHARBUFFERBYTESINK_H
28 #define OVERFLOWABLECHARBUFFERBYTESINK_H
40 template <u32 BUFSIZE>
72 if (m_written + effLen > BUFSIZE - 2)
74 effLen = BUFSIZE - 2 - m_written;
78 memcpy(&m_buf[m_written], data, effLen);
83 m_buf[m_written++] =
'X';
96 return BUFSIZE - m_written - 1;
129 template <u32 OTHER_SIZE>
145 m_buf[m_written] =
'\0';
160 return (
const char *) m_buf;
195 m_overflowed =
false;
224 if((m_written = strlen(zstr)) >= BUFSIZE)
229 snprintf((
char*)m_buf, BUFSIZE,
"%s", zstr);
243 typedef OverflowableCharBufferByteSink<16 + 2> OString16;
248 typedef OverflowableCharBufferByteSink<32 + 2> OString32;
253 typedef OverflowableCharBufferByteSink<64 + 2> OString64;
258 typedef OverflowableCharBufferByteSink<128 + 2> OString128;
u32 GetCapacity() const
Definition: OverflowableCharBufferByteSink.h:182
void Reset()
Definition: OverflowableCharBufferByteSink.h:192
const char * GetZString()
Definition: OverflowableCharBufferByteSink.h:143
virtual s32 CanWrite()
Definition: OverflowableCharBufferByteSink.h:94
virtual void WriteBytes(const u8 *data, const u32 len)
Definition: OverflowableCharBufferByteSink.h:64
bool Equals(const char *str) const
Definition: OverflowableCharBufferByteSink.h:111
bool HasOverflowed() const
Definition: OverflowableCharBufferByteSink.h:206
Definition: OverflowableCharBufferByteSink.h:41
Definition: ByteSink.h:47
const char * GetBuffer() const
Definition: OverflowableCharBufferByteSink.h:158
OverflowableCharBufferByteSink< BUFSIZE > & operator=(const char *zstr)
Definition: OverflowableCharBufferByteSink.h:221
OverflowableCharBufferByteSink()
Definition: OverflowableCharBufferByteSink.h:48
bool Equals(const OverflowableCharBufferByteSink< OTHER_SIZE > &str) const
Definition: OverflowableCharBufferByteSink.h:130
u32 GetLength() const
Definition: OverflowableCharBufferByteSink.h:170