libUTL++
|
Memory stream. More...
#include <MemStream.h>
Public Member Functions | |
MemStream (size_t size, size_t increment=size_t_max) | |
Constructor. More... | |
MemStream (byte_t *array, size_t size, bool owner=true, size_t increment=size_t_max) | |
Constructor. More... | |
virtual void | close () |
Close the stream. More... | |
virtual size_t | read (byte_t *array, size_t maxBytes, size_t minBytes=size_t_max) |
Read data into a given buffer. More... | |
virtual void | write (const byte_t *array, size_t num) |
Write a sequence of bytes. More... | |
const byte_t * | get () const |
Get address of allocated array. More... | |
size_t | arraySize () const |
Get size of allocated array. More... | |
void | takeData (BinaryData &data) |
Move written data to BinaryData object. More... | |
char * | copyString () const |
Retrieve copy of data as string. More... | |
char * | takeString () |
Convert to a string. More... | |
void | seekg (size_t pos) |
Seek the "get pointer" to the given position. More... | |
void | seekp (size_t pos) |
Seek the "put pointer" to the given position. More... | |
size_t | tellg () const |
Get the position of the "get pointer". More... | |
size_t | tellp () const |
Get the position of the "put pointer". More... | |
void | reserve (size_t size, size_t increment=size_t_max) |
Reserve allocation space. More... | |
void | truncate (size_t size) |
Truncate to the given size (do nothing unless the new size is smaller). More... | |
void | set (byte_t *array, size_t size, bool owner=true, size_t increment=size_t_max) |
Set a new memory region. More... | |
void | setOwner (bool owner) |
Set ownership flag. More... | |
void | setIncrement (size_t increment) |
Set the growth increment. More... | |
Public Member Functions inherited from utl::Stream | |
virtual void | copy (const Object &rhs) |
Copy another instance. More... | |
virtual Stream & | flush (uint_t mode=io_wr) |
Flush the stream (if it is buffered). More... | |
bool | isOwner () const |
Get the owner flag. More... | |
void | setOwner (bool owner) |
Set the owner flag. More... | |
size_t | getInputCount () const |
Get the count of input bytes. More... | |
size_t | getOutputCount () const |
Get the count of output bytes. More... | |
uint_t | getMode () const |
Get the current mode. More... | |
const String & | getName () const |
Get the stream's name. More... | |
const String * | getNamePtr () const |
Get the stream's name. More... | |
void | setName (const String &name) |
Set the name. More... | |
void | setName (String *name) |
Set the name. More... | |
virtual bool | isBOL () const |
Get the begin-of-line flag. More... | |
virtual void | setBOL (bool p_bol) |
Set the BOL flag. More... | |
virtual bool | isInput () const |
Determine whether the stream is an input stream. More... | |
virtual void | setInput (bool input) |
Set the input mode flag. More... | |
virtual bool | isOutput () const |
Determine whether the stream is an output stream. More... | |
virtual void | setOutput (bool output) |
Set the output mode flag. More... | |
bool | isRDWR () const |
Determine whether the stream is an input/output stream. More... | |
void | setBase (uint_t base) |
Set the base, for writing integer values. More... | |
void | setMode (uint_t mode) |
Set the mode. More... | |
Stream & | put (byte_t b) |
Write the given character. More... | |
Stream & | put (char c) |
Write the given character. More... | |
Stream & | put (int c) |
Write the given character. More... | |
Stream & | put (const char *str) |
Write the given string. More... | |
Stream & | put (const char *str, size_t len) |
Write the given string. More... | |
Stream & | putBit (bool b) |
Write the given bit. More... | |
Stream & | putBits () |
Write all outstanding bits. More... | |
Stream & | putBits (uint32_t n, uint_t numBits) |
Write multiple bits. More... | |
virtual Stream & | newline () |
Write a newline. More... | |
Stream & | putLine (const char *str) |
Write the given string, followed by a newline. More... | |
void | writeSpaces (size_t num) |
Write spaces. More... | |
Stream & | operator<< (smanip0 manip) |
Execute a manipulator (e.g. More... | |
Stream & | operator<< (void *ptr) |
Write a void pointer. More... | |
Stream & | operator<< (const char *str) |
Write a string. More... | |
Stream & | operator<< (char c) |
Stream & | operator>> (char &c) |
Stream & | operator<< (byte_t b) |
Stream & | operator>> (byte_t &b) |
Stream & | operator<< (int16_t n) |
Stream & | operator>> (int16_t &n) |
Stream & | operator<< (uint16_t n) |
Stream & | operator>> (uint16_t &n) |
Stream & | operator<< (int32_t n) |
Stream & | operator>> (int32_t &n) |
Stream & | operator<< (uint32_t n) |
Stream & | operator>> (uint32_t &n) |
Stream & | operator<< (long n) |
Stream & | operator>> (long &n) |
Stream & | operator<< (ulong_t n) |
Stream & | operator>> (ulong_t &n) |
Stream & | operator<< (double n) |
Stream & | operator>> (double &n) |
uint_t | getIndent () const |
Get the indentation level. More... | |
void | setIndent (uint_t indent) |
Set the indentation level. More... | |
void | indent (uint_t num=4) |
Increase indentation by the given number of spaces. More... | |
void | unindent (uint_t num=4) |
Decrease indentation by the given number of spaces. More... | |
void | checkOK () |
If there is an error condition (error()), throw StreamErrorEx. More... | |
void | clearEOF () |
Clear the EOF condition. More... | |
void | clearError () |
Clear the error condition. More... | |
virtual bool | eof () const |
Determine whether an EOF condition exists. More... | |
virtual void | setEOF (bool p_eof) |
Set the EOF flag. More... | |
virtual bool | error () const |
Determine whether an error condition exists. More... | |
virtual void | setError (bool p_error) |
Set the error flag. More... | |
bool | ok () const |
Determine whether an error condition exists. More... | |
size_t | copyData (Stream &in, size_t numBytes=size_t_max, size_t bufSize=KB(4)) |
Copy data from another stream. More... | |
void | get (byte_t &b) |
Get a single byte. More... | |
void | get (char &c) |
Get a single char. More... | |
byte_t | get () |
Get a single byte. More... | |
bool | getBit () |
Get a single bit. More... | |
uint32_t | getBits (uint_t numBits) |
Get multiple bits. More... | |
virtual Stream & | readLine (String &str) |
Read a line from stream into the given String object. More... | |
Public Member Functions inherited from utl::Object | |
void | clear () |
Revert to initial state. More... | |
virtual int | compare (const Object &rhs) const |
Compare with another object. More... | |
virtual void | vclone (const Object &rhs) |
Make an exact copy of another instance. More... | |
virtual void | steal (Object &rhs) |
"Steal" the internal representation from another instance. More... | |
virtual void | dump (Stream &os, uint_t level=uint_t_max) const |
Dump a human-readable representation of self to the given output stream. More... | |
void | dumpWithClassName (Stream &os, uint_t indent=4, uint_t level=uint_t_max) const |
Front-end for dump() that prints the object's class name. More... | |
virtual const Object & | getKey () const |
Get the key for this object. More... | |
bool | hasKey () const |
Determine whether or not the object has a key. More... | |
virtual const Object & | getProxiedObject () const |
Get the proxied object (= self if none). More... | |
virtual Object & | getProxiedObject () |
Get the proxied object (= self if none). More... | |
virtual size_t | hash (size_t size) const |
Get the hash code for the object. More... | |
bool | _isA (const RunTimeClass *runTimeClass) const |
Determine whether self's class is a descendent of the given class. More... | |
virtual String | toString () const |
Return a string representation of self. More... | |
operator String () const | |
Conversion to String. More... | |
size_t | allocatedSize () const |
Get the total allocated size of this object. More... | |
virtual size_t | innerAllocatedSize () const |
Get the "inner" allocated size. More... | |
virtual void | addOwnedIt (const class FwdIt *it) const |
Notify self that it owns the given iterator. More... | |
virtual void | removeOwnedIt (const class FwdIt *it) const |
Notify self that the given owned iterator has been destroyed. More... | |
bool | operator< (const Object &rhs) const |
Less-than operator. More... | |
bool | operator<= (const Object &rhs) const |
Less-than-or-equal-to operator. More... | |
bool | operator> (const Object &rhs) const |
Greater-than operator. More... | |
bool | operator>= (const Object &rhs) const |
Greater-than-or-equal-to operator. More... | |
bool | operator== (const Object &rhs) const |
Equal-to operator. More... | |
bool | operator!= (const Object &rhs) const |
Unequal-to operator. More... | |
void | serializeIn (Stream &is, uint_t mode=ser_default) |
Serialize from an input stream. More... | |
void | serializeOut (Stream &os, uint_t mode=ser_default) const |
Serialize to an output stream. More... | |
virtual void | serialize (Stream &stream, uint_t io, uint_t mode=ser_default) |
Serialize to or from a stream. More... | |
void | serializeOutBoxed (Stream &os, uint_t mode=ser_default) const |
Serialize a boxed object to an output stream. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from utl::Object | |
static Object * | serializeInNullable (Stream &is, uint_t mode=ser_default) |
Serialize a nullptr-able object from an input stream. More... | |
static void | serializeOutNullable (const Object *object, Stream &os, uint_t mode=ser_default) |
Serialize a nullptr-able object to an output stream. More... | |
static void | serializeNullable (Object *&object, Stream &stream, uint_t io, uint_t mode=ser_default) |
Serialize a nullptr-able object to or from a stream. More... | |
static Object * | serializeInBoxed (Stream &is, uint_t mode=ser_default) |
Serialize a boxed object from an input stream. More... | |
static void | serializeBoxed (Object *&object, Stream &stream, uint_t io, uint_t mode=ser_default) |
Serialize a boxed object to or from a stream. More... | |
Protected Member Functions inherited from utl::Stream | |
void | indentIfBOL () |
If begin-of-line flag is true, clear the flag and indent. More... | |
void | _indentIfBOL () |
Write _indent spaces at beginning of line. More... | |
void | throwStreamEOFex () |
Throw a StreamEOFex exception. More... | |
void | throwStreamErrorEx () |
Throw a StreamErrorEx exception. More... | |
void | readToken (char *buf, size_t size) |
Read a token from the stream. More... | |
void | readUntilWS (char *buf, size_t size) |
Read until a whitespace character is encountered. More... | |
byte_t | skipWS () |
Skip past whitespace. More... | |
Protected Member Functions inherited from utl::FlagsMI | |
FlagsMI () | |
Constructor. More... | |
virtual | ~FlagsMI () |
Destructor. More... | |
void | copyFlags (const FlagsMI &rhs) |
Copy the given flags. More... | |
void | copyFlags (const FlagsMI &rhs, uint_t lsb, uint_t msb) |
Copy (some of) the given flags. More... | |
void | copyFlags (uint64_t flags, uint_t lsb, uint_t msb) |
Copy (some of) the given flags. More... | |
bool | getFlag (uint_t flagNum) const |
Get a user-defined flag. More... | |
void | setFlag (uint_t flagNum, bool val) |
Set a user-defined flag. More... | |
uint64_t | getFlagsNumber (uint64_t mask, uint64_t shift=0) |
Get a multi-bit value in the flags data (which is stored as one 64-bit integer). More... | |
void | setFlagsNumber (uint64_t mask, uint64_t shift, uint64_t num) |
Set a multi-bit value in the flags data (which is stored as one 64-bit integer). More... | |
uint64_t | getFlags () const |
Get the flags. More... | |
void | setFlags (uint64_t flags) |
Set the flags. More... | |
Memory stream.
MemStream allows you to stream data to/from a memory region. An attempt to read past the end of the region causes a StreamEOFex to be thrown. An attempt to write past the end of the region causes the region to be grown in size.
Attributes
Definition at line 40 of file MemStream.h.
|
inline |
Constructor.
size | initial size |
increment | (optional : size_t_max) growth increment |
Definition at line 50 of file MemStream.h.
References utl::init().
|
inline |
Constructor.
array | memory region |
size | memory region size |
owner | (optional : true) owner flag |
increment | (optional : size_t_max) growth increment |
Definition at line 62 of file MemStream.h.
References utl::init().
|
inlinevirtual |
Close the stream.
Implements utl::Stream.
Definition at line 68 of file MemStream.h.
References utl::size_t_max.
|
virtual |
Read data into a given buffer.
array | buffer to read into |
maxBytes | maximum number of bytes to read |
minBytes | (optional : maxBytes) minimum number of bytes to read |
Implements utl::Stream.
|
virtual |
Write a sequence of bytes.
array | data to write |
num | number of bytes to write |
Implements utl::Stream.
|
inline |
Get address of allocated array.
Definition at line 79 of file MemStream.h.
|
inline |
Get size of allocated array.
Definition at line 86 of file MemStream.h.
void utl::MemStream::takeData | ( | BinaryData & | data | ) |
Move written data to BinaryData object.
char* utl::MemStream::copyString | ( | ) | const |
Retrieve copy of data as string.
char* utl::MemStream::takeString | ( | ) |
Convert to a string.
Referenced by utl::Span< Time, Duration >::toString().
|
inline |
Seek the "get pointer" to the given position.
Definition at line 102 of file MemStream.h.
References ASSERTD.
|
inline |
Seek the "put pointer" to the given position.
Definition at line 110 of file MemStream.h.
|
inline |
Get the position of the "get pointer".
Definition at line 121 of file MemStream.h.
|
inline |
Get the position of the "put pointer".
Definition at line 128 of file MemStream.h.
|
inline |
Reserve allocation space.
size | required minimum size |
increment | (optional : size_t_max) growth increment |
Definition at line 139 of file MemStream.h.
References utl::size_t_max.
void utl::MemStream::truncate | ( | size_t | size | ) |
Truncate to the given size (do nothing unless the new size is smaller).
size | new size |
void utl::MemStream::set | ( | byte_t * | array, |
size_t | size, | ||
bool | owner = true , |
||
size_t | increment = size_t_max |
||
) |
Set a new memory region.
array | memory region |
size | memory region size |
owner | (optional : true) owner flag |
increment | (optional : size_t_max) growth increment |
|
inline |
Set ownership flag.
Definition at line 161 of file MemStream.h.
|
inline |
Set the growth increment.
Definition at line 168 of file MemStream.h.
References utl::deInit(), utl::init(), utl::KB(), and utl::size_t_max.