7 #ifndef ELM_STRING_STRING_BUFFER_H
8 #define ELM_STRING_STRING_BUFFER_H
10 #include <elm/string/CString.h>
11 #include <elm/string/String.h>
12 #include <elm/io/BlockOutStream.h>
13 #include <elm/io/Output.h>
21 inline StringBuffer(
int capacity = 64,
int increment = 32);
24 inline int length(
void)
const;
25 inline void reset(
void);
32 : io::
Output(_stream), _stream(capacity, increment) {
33 String::buffer_t str = { 0 };
34 _stream.
write((
char *)&str,
sizeof(
short));
40 return String((String::buffer_t *)_stream.
detach(),
sizeof(short), len);
44 return _stream.
size() -
sizeof(short);
57 _stream.
block() +
sizeof(short),
58 _stream.
size() -
sizeof(short));
63 #endif // ELM_STRING_STRING_BUFFER_H
Definition: BlockOutStream.h:18
io::OutStream & stream(void)
Definition: StringBuffer.h:51
char * detach(void)
Definition: BlockOutStream.h:23
void reset(void)
Definition: StringBuffer.h:47
Definition: OutStream.h:30
StringBuffer(int capacity=64, int increment=32)
Definition: StringBuffer.h:31
int length(void) const
Definition: StringBuffer.h:43
void setSize(int size)
Definition: BlockOutStream.h:25
Definition: StringBuffer.h:18
int size(void) const
Definition: BlockOutStream.h:22
virtual int write(const char *buffer, int size)
Definition: io_BlockOutStream.cpp:85
String copyString(void)
Definition: StringBuffer.h:55
const char * block(void) const
Definition: BlockOutStream.h:21
String toString(void)
Definition: StringBuffer.h:37