libUTL++
|
Stream I/O abstraction. More...
#include <Stream.h>
Public Member Functions | |
virtual void | copy (const Object &rhs) |
Copy another instance. More... | |
virtual void | close ()=0 |
Close the stream. More... | |
virtual Stream & | flush (uint_t mode=io_wr) |
Flush the stream (if it is buffered). More... | |
Accessors | |
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... | |
Output | |
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... | |
virtual void | write (const byte_t *array, size_t num)=0 |
Write a sequence of bytes. More... | |
I/O Operators | |
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) |
![]() | |
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... | |
Auto-Indentation | |
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 | indentIfBOL () |
If begin-of-line flag is true, clear the flag and indent. More... | |
void | _indentIfBOL () |
Write _indent spaces at beginning of line. More... | |
Error Conditions | |
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... | |
void | throwStreamEOFex () |
Throw a StreamEOFex exception. More... | |
void | throwStreamErrorEx () |
Throw a StreamErrorEx exception. More... | |
Input | |
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... | |
virtual size_t | read (byte_t *array, size_t maxBytes, size_t minBytes=size_t_max)=0 |
Read data into a given buffer. 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... | |
Additional Inherited Members | |
![]() | |
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... | |
![]() | |
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... | |
Stream I/O abstraction.
A stream is anything you want to read data from or write data to. For example, a disk file is a stream and so is a TCP socket.
Attributes
|
virtual |
Copy another instance.
When you override copy(), you should usually call the superclass's copy().
rhs | object to copy |
Reimplemented from utl::Object.
Reimplemented in utl::BufferedStream, and utl::IOmux.
|
pure virtual |
Close the stream.
Implemented in utl::MemStream, utl::BufferedStream, utl::Encoder, utl::SyslogStream, utl::SSLsocket, utl::FDstream, and utl::IOmux.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Get the current mode.
Definition at line 110 of file Stream.h.
References utl::io_rd, and utl::io_wr.
const String& utl::Stream::getName | ( | ) | const |
Get the stream's name.
const String* utl::Stream::getNamePtr | ( | ) | const |
Get the stream's name.
void utl::Stream::setName | ( | const String & | name | ) |
Set the name.
void utl::Stream::setName | ( | String * | name | ) |
Set the name.
|
virtual |
Get the begin-of-line flag.
|
virtual |
Set the BOL flag.
|
virtual |
Determine whether the stream is an input stream.
Reimplemented in utl::BufferedStream.
|
virtual |
Set the input mode flag.
Reimplemented in utl::BufferedStream.
|
virtual |
Determine whether the stream is an output stream.
Reimplemented in utl::BufferedStream.
|
virtual |
Set the output mode flag.
Reimplemented in utl::BufferedStream.
|
inline |
|
inline |
|
inline |
Set the mode.
mode | I/O mode (see utl::io_t) |
Definition at line 167 of file Stream.h.
References utl::io_rd, and utl::io_wr.
|
inline |
|
inline |
|
inline |
|
inline |
Decrease indentation by the given number of spaces.
Definition at line 199 of file Stream.h.
References utl::KB(), and utl::size_t_max.
void utl::Stream::checkOK | ( | ) |
If there is an error condition (error()), throw StreamErrorEx.
If there is an EOF condition (eof()), throw StreamEOFex.
void utl::Stream::clearEOF | ( | ) |
Clear the EOF condition.
void utl::Stream::clearError | ( | ) |
Clear the error condition.
|
virtual |
Determine whether an EOF condition exists.
Reimplemented in utl::BufferedStream.
|
virtual |
Set the EOF flag.
Reimplemented in utl::BufferedStream.
|
virtual |
Determine whether an error condition exists.
Reimplemented in utl::BufferedStream.
|
virtual |
Set the error flag.
Reimplemented in utl::BufferedStream.
bool utl::Stream::ok | ( | ) | const |
Determine whether an error condition exists.
size_t utl::Stream::copyData | ( | Stream & | in, |
size_t | numBytes = size_t_max , |
||
size_t | bufSize = KB(4) |
||
) |
Copy data from another stream.
in | input stream |
numBytes | number of bytes to copy |
bufSize | buffer size |
|
inline |
|
inline |
|
inline |
|
inline |
Get multiple bits.
numBits | number of bits to read |
Definition at line 301 of file Stream.h.
References ASSERTD, and utl::size_t_max.
Read a line from stream into the given String object.
Reimplemented in utl::BufferedStream.
|
pure 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 |
Implemented in utl::BufferedStream, utl::IOmux, utl::FDstream, utl::MemStream, and utl::SSLsocket.
Write the given character.
Definition at line 330 of file Stream.h.
References ASSERTD.
Referenced by utl::endl().
|
inline |
|
inline |
Stream& utl::Stream::put | ( | const char * | str | ) |
Write the given string.
Stream& utl::Stream::put | ( | const char * | str, |
size_t | len | ||
) |
Write the given string.
|
inline |
|
inline |
|
inlinevirtual |
Write a newline.
Reimplemented in utl::BufferedStream.
Definition at line 405 of file Stream.h.
Referenced by utl::endlf().
|
inline |
void utl::Stream::writeSpaces | ( | size_t | num | ) |
Write spaces.
|
pure virtual |
Write a sequence of bytes.
array | data to write |
num | number of bytes to write |
Implemented in utl::BufferedStream, utl::IOmux, utl::FDstream, utl::MemStream, and utl::SSLsocket.
Flush the stream (if it is buffered).
mode | see utl::io_t |
Reimplemented in utl::BufferedStream.
Definition at line 436 of file Stream.h.
Referenced by utl::endlf(), and utl::flush().
|
inline |
Execute a manipulator (e.g.
endl, endlf, flush).
Definition at line 444 of file Stream.h.
References operator<<(), and operator>>().
Stream& utl::Stream::operator<< | ( | void * | ptr | ) |
Write a void pointer.
Stream& utl::Stream::operator<< | ( | const char * | str | ) |
Write a string.
|
inlineprotected |
|
inlineprotected |
Write _indent spaces at beginning of line.
Definition at line 536 of file Stream.h.
References utl::deInit(), and utl::init().
|
protected |
Throw a StreamEOFex exception.
|
protected |
Throw a StreamErrorEx exception.
|
protected |
Read a token from the stream.
buf | token buffer |
size | size of buffer |
|
protected |
Read until a whitespace character is encountered.
The whitespace character will be put back into the input buffer.
buf | buffer to read into |
size | size of buffer |
|
protected |
Skip past whitespace.