Evo C++ Library v0.5.1
|
#include <evo/impl/sysio.h>
Buffered writer for IoDevice (used internally).
Public Member Functions | |
IoWriter (ulong newsize=0, Newline nl=NL_SYS) | |
Constructor to set new buffer size and newline value. More... | |
ulong | avail () const |
Get size available. More... | |
ulong | avail (ulong checksize) const |
Get size up to size available. More... | |
RawBuffer & | clear () |
Clear buffer. More... | |
void | close () |
Close output. More... | |
void | flush (ulong &offset) |
Flush data already read from buffer using offset. More... | |
template<class T > | |
Error | flush (T &out) |
Flush buffer by writing to device. More... | |
ulong | insert (ulong index, ulong size=1) |
Make room to insert items. More... | |
RawBuffer & | minsize (ulong min) |
Resize buffer if smaller than minimum size. More... | |
void | open (bool flushlines_val=false) |
Initialize and open for output (writing). More... | |
ulong | read (ulong &offset, char *buf, ulong readsize) |
Read from buffer using offset. More... | |
RawBuffer & | ref (char *data, ulong size, ulong used=0) |
Reference another buffer. More... | |
RawBuffer & | remove (ulong index, ulong size=1) |
Remove items. More... | |
RawBuffer & | reset () |
Reset to empty state without a buffer. More... | |
RawBuffer & | resize (ulong newsize) |
Resize buffer. More... | |
ulong | write (const char *buf, ulong writesize) |
Write at end of buffer. More... | |
ulong | write (char ch, ulong count=1) |
Write character at end of buffer. More... | |
template<class T > | |
ulong | writebin (Error &err, T &out, const void *buf, ulong bufsize) |
Write data to device using buffer. More... | |
template<class T > | |
ulong | writebin2 (Error &err, T &out, const void *buf, ulong bufsize, ulong count) |
Write repeated data to device using buffer. More... | |
template<class T > | |
ulong | writebin_char (Error &err, T &out, char ch, ulong count) |
Write repeated character to device using buffer. More... | |
template<class TOut > | |
Error | writefmtchar (TOut &out, char ch, ulong count, const FmtSetField &field) |
Write repeated character data to device using buffer, formatted with field alignment. More... | |
template<class TOut > | |
Error | writefmtdump (TOut &out, const FmtDump &fmt, const char *newline, uint newlinesize) |
Write formatted buffer dump in hex. More... | |
template<class TOut , class TNum > | |
Error | writefmtnum (TOut &out, TNum num, const FmtSetInt &fmt, const FmtSetField *field=NULL) |
Write formatted signed number to device using buffer, using field attributes. More... | |
template<class TOut , class TNum > | |
Error | writefmtnumf (TOut &out, TNum num, const FmtSetFloat &fmt, const FmtSetField *field=NULL) |
Write formatted floating point number to device using buffer, using field attributes. More... | |
template<class TOut , class TNum > | |
Error | writefmtnumu (TOut &out, TNum num, const FmtSetInt &fmt, const FmtSetField *field=NULL) |
Write formatted unsigned number to device using buffer, using field attributes. More... | |
template<class TOut > | |
Error | writefmtstr (TOut &out, const char *str, ulong strsize, const FmtSetField &field) |
Write string data to device using buffer, formatted with field alignment. More... | |
template<class TOut , class TNum > | |
Error | writenum (TOut &out, TNum num, int base=fDEC) |
Write formatted signed number to device using buffer. More... | |
template<class TOut , class TNum > | |
Error | writenumf (TOut &out, TNum num, int precision=fPREC_AUTO) |
Write formatted floating-point number to device using buffer. More... | |
template<class TOut , class TNum > | |
Error | writenumu (TOut &out, TNum num, int base=fDEC) |
Write formatted unsigned number to device using buffer. More... | |
template<class T > | |
ulong | writetext (Error &err, T &out, const char *buf, ulong bufsize) |
Write data to device using buffer. More... | |
template<class T > | |
ulong | writetext_char (Error &err, T &out, char ch, ulong count) |
Write data to device using buffer. More... | |
Public Attributes | |
char * | data |
Buffer data pointer, NULL if empty (size=0) More... | |
bool | flushlines |
Whether to flush after each line (aka line buffering) – only applies to text writes, i.e. writetext() More... | |
const char * | newline |
Default newline string for formatting – do not modify. More... | |
uint | newlinesize |
Size of default newline string to use, i.e. strlen(newline) – do not modify. More... | |
bool | owned |
Whether this owns the buffer and must free it. More... | |
char | partnl |
Used internally for handling partial newlines between writetext() calls. More... | |
ulong | size |
Buffer size (capacity) in bytes – do not modify, use: resize(), minsize(), reset(), ref() More... | |
ulong | timeout_ms |
Write timeout in milliseconds, 0 for none (no timeout) More... | |
ulong | used |
Buffer size in use in bytes. More... | |
Static Public Attributes | |
static const ulong | DEFSIZE = 16384 |
Default buffer size (16KB, power of 2 and multiple of common filesystem block size 4KB) More... | |
Constructor to set new buffer size and newline value.
newsize | New buffer size |
nl | Default newline value for formatting (defaults to NL_SYS) |
|
inlineinherited |
Get size available.
|
inlineinherited |
Get size up to size available.
checksize | Size to check against size available |
checksize
, whichever is smaller
|
inlineinherited |
Clear buffer.
|
inline |
Close output.
|
inlineinherited |
Flush data already read from buffer using offset.
offset | Offset to use and update, will be set to 0 [in/out] |
|
inline |
Flush buffer by writing to device.
T | IoDevice to flush and write to |
out | Device to write to |
|
inlineinherited |
Make room to insert items.
index | Insert index, END to append |
size | Insert size in bytes, must be postive |
|
inlineinherited |
Resize buffer if smaller than minimum size.
min | Minimum size in bytes |
|
inline |
Initialize and open for output (writing).
flushlines_val | Whether to flush on each newline |
|
inlineinherited |
Read from buffer using offset.
offset | Offset to use and update [in/out] |
buf | Buffer to read/copy to |
readsize | Read size in bytes, reduced if too large |
|
inlineinherited |
Reference another buffer.
data | Buffer data pointer, must not be NULL |
size | Buffer size (capacity) in bytes, must be > 0 |
used | Buffer size in use in bytes, must be <= size |
|
inlineinherited |
Remove items.
index | Insert index |
size | Remove size in bytes |
|
inlineinherited |
Reset to empty state without a buffer.
|
inlineinherited |
Resize buffer.
newsize | New size in bytes, 0 to free |
|
inlineinherited |
Write at end of buffer.
buf | Buffer to write from |
writesize | Write size in bytes, reduced if too large |
|
inlineinherited |
Write character at end of buffer.
ch | Character to write |
count | Character repeat count, reduced if too large |
|
inline |
Write data to device using buffer.
T | IoDevice to write to |
err | Stores ENone on success, error code on error [out] |
out | Device to write to |
buf | Data buffer to write from |
bufsize | Data size to write in bytes |
|
inline |
Write repeated data to device using buffer.
T | IoDevice to write to |
err | Stores ENone on success, error code on error [out] |
out | Device to write to |
buf | Data buffer to write repeatedly from |
bufsize | Data size to write in bytes |
count | Data repeat count (2 = 2*bufsize) |
|
inline |
Write repeated character to device using buffer.
T | IoDevice to write to |
err | Stores ENone on success, error code on error [out] |
out | Device to write to |
ch | Character to write |
count | Character repeat count to write |
|
inline |
Write repeated character data to device using buffer, formatted with field alignment.
T | IoDevice to write to |
out | Device to write to |
ch | Character to write |
count | Character repeat count to use |
field | Field attributes to use |
|
inline |
Write formatted buffer dump in hex.
TOut | IoDevice to write to |
out | Device to write to |
fmt | Format data, including buffer to dump |
newline | Newline string to use |
newlinesize | Newline string size |
|
inline |
Write formatted signed number to device using buffer, using field attributes.
TOut | IoDevice to write to |
TNum | Signed number type |
out | Device to write to |
num | Number to format and write |
fmt | Integer formatting attributes to use |
field | Field formatting attributes to use, NULL for none |
|
inline |
Write formatted floating point number to device using buffer, using field attributes.
TOut | IoDevice to write to |
TNum | Signed number type |
out | Device to write to |
num | Number to format and write |
fmt | Floating point formatting attributes to use |
field | Field formatting attributes to use, NULL for none |
|
inline |
Write formatted unsigned number to device using buffer, using field attributes.
TOut | IoDevice to write to |
TNum | Signed number type |
out | Device to write to |
num | Number to format and write |
fmt | Integer formatting attributes to use |
field | Field formatting attributes to use, NULL for none |
|
inline |
Write string data to device using buffer, formatted with field alignment.
T | IoDevice to write to |
out | Device to write to |
str | String data buffer to write from |
strsize | String data size to write in bytes |
field | Field attributes to use |
Write formatted signed number to device using buffer.
TOut | IoDevice to write to |
TNum | Signed number type |
out | Device to write to |
num | Number to format and write |
base | Base to use for formatting |
|
inline |
Write formatted floating-point number to device using buffer.
TOut | IoDevice to write to |
TNum | Floating-point number number type |
out | Device to write to |
num | Number to format and write |
precision | Formatting precision (number of fractional digits), 0 for none, fPREC_AUTO for automatic |
Write formatted unsigned number to device using buffer.
TOut | IoDevice to write to |
TNum | Unsigned number type |
out | Device to write to |
num | Number to format and write |
base | Base to use for formatting |
|
inline |
Write data to device using buffer.
T | IoDevice to write to |
err | Stores ENone on success, error code on error [out] |
out | Device to write to |
buf | Data buffer to write from |
bufsize | Data size to write in bytes |
|
inline |
Write data to device using buffer.
T | IoDevice to write to |
err | Stores ENone on success, error code on error [out] |
out | Device to write to |
ch | Data buffer to write from |
count | Data size to write in bytes |
|
inherited |
Buffer data pointer, NULL if empty (size=0)
|
static |
Default buffer size (16KB, power of 2 and multiple of common filesystem block size 4KB)
bool flushlines |
Whether to flush after each line (aka line buffering) – only applies to text writes, i.e. writetext()
const char* newline |
Default newline string for formatting – do not modify.
uint newlinesize |
Size of default newline string to use, i.e. strlen(newline) – do not modify.
|
inherited |
Whether this owns the buffer and must free it.
char partnl |
Used internally for handling partial newlines between writetext() calls.
|
inherited |
ulong timeout_ms |
Write timeout in milliseconds, 0 for none (no timeout)
|
inherited |
Buffer size in use in bytes.