libUTL++
|
Stream with file descriptor. More...
#include <FDstream.h>
Public Member Functions | |
FDstream (int fd, uint_t mode) | |
Constructor. More... | |
virtual void | close () |
Close the file. More... | |
void | detach () |
Detach from the file. More... | |
int | fd () const |
Get the associated file descriptor. More... | |
bool | isSocket () const |
Determine whether the file descriptor is associated with a TCP socket. More... | |
bool | isTTY () const |
Determine whether the file descriptor is associated with a TTY device. More... | |
virtual void | setFD (int fd, uint_t mode=io_rd|io_wr) |
Set the file descriptor and access mode. 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... | |
bool | blockingIO () const |
Is blocking I/O enabled on the file descriptor? | |
void | setBlockingIO (bool v) |
Enable/disable blocking I/O on the file descriptor. More... | |
bool | blockRead (uint32_t usec=0) |
Block until data can be read. More... | |
bool | blockWrite (uint32_t usec=0) |
Block until data can be written. 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... | |
Protected Member Functions | |
virtual void | clear () |
Clear/reset the object. More... | |
virtual void | setModes () |
Set non-blocking mode. 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... | |
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... | |
Stream with file descriptor.
FDstream is a base class for streams that have an associated file descriptor. Examples of streams that have file descriptors include disk files (FileStream) and TCP sockets (TCPsocket).
FDstream is a concrete class though, and if the exact kind of stream is unknown, it can be used without specializing it.
Attributes
Definition at line 35 of file FDstream.h.
utl::FDstream::FDstream | ( | int | fd, |
uint_t | mode | ||
) |
Constructor.
fd | file descriptor |
mode | access mode (see utl::io_t) |
|
virtual |
Close the file.
Implements utl::Stream.
|
inline |
Detach from the file.
Definition at line 54 of file FDstream.h.
|
inline |
Get the associated file descriptor.
Definition at line 62 of file FDstream.h.
References utl::io_rd, utl::io_wr, and utl::size_t_max.
bool utl::FDstream::isSocket | ( | ) | const |
Determine whether the file descriptor is associated with a TCP socket.
bool utl::FDstream::isTTY | ( | ) | const |
Determine whether the file descriptor is associated with a TTY device.
Set the file descriptor and access mode.
fd | file descriptor |
mode | access mode (see utl::io_t) |
|
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.
void utl::FDstream::setBlockingIO | ( | bool | v | ) |
Enable/disable blocking I/O on the file descriptor.
bool utl::FDstream::blockRead | ( | uint32_t | usec = 0 | ) |
Block until data can be read.
usec | (optional) wait time (in microseconds) |
bool utl::FDstream::blockWrite | ( | uint32_t | usec = 0 | ) |
Block until data can be written.
usec | (optional) wait time (in microseconds) |
|
protectedvirtual |
Clear/reset the object.
Reimplemented from utl::Stream.
|
protectedvirtual |
Set non-blocking mode.
Reimplemented in utl::TCPsocket.