#include <QIODeviceS.h>
You'll also want to see FX::QIODevice. All subclasses of this base class are i/o devices which provide a synchronous functionality.
You can wait for data to become available on any one of a number of QIODeviceS's using the static method waitForData().
Public Types | |
enum | CRLFType { Default, Unix, MacOS, MSDOS } |
enum | UnicodeType { NoTranslation, UTF8, UTF16, UTF16LE, UTF32, UTF32LE } |
typedef FXfval | Offset |
Public Member Functions | |
virtual bool | isSynchronous () const |
virtual bool | create (FXuint mode=IO_ReadWrite)=0 |
virtual bool | open (FXuint mode=IO_ReadWrite)=0 |
virtual void | truncate (FXfval) |
virtual FXfval | at () const |
virtual bool | at (FXfval) |
virtual bool | atEnd () const |
virtual FXuval | readBlockFrom (char *data, FXuval maxlen, FXfval pos) |
virtual FXuval | writeBlockTo (FXfval pos, const char *data, FXuval maxlen) |
FXuint | flags () const |
FXuint | mode () const |
FXuint | state () const |
CRLFType | crlfFormat () const |
void | setCRLFFormat (CRLFType type) |
UnicodeType | unicodeTranslation () const |
void | setUnicodeTranslation (UnicodeType type) |
bool | isBuffered () const |
bool | isRaw () const |
bool | isTranslated () const |
bool | isUTF16Translated () const |
bool | isUTF32Translated () const |
bool | isReadable () const |
bool | isWriteable () const |
bool | isWritable () const |
bool | isReadWrite () const |
bool | isClosed () const |
bool | isInactive () const |
bool | isOpen () const |
virtual void | close ()=0 |
virtual void | flush ()=0 |
virtual FXfval | size () const =0 |
virtual const FXACL & | permissions () const |
virtual void | setPermissions (const FXACL &) |
virtual FXuval | readBlock (char *data, FXuval maxlen)=0 |
FXuval | readBlock (FXuchar *data, FXuval maxlen) |
virtual FXuval | writeBlock (const char *data, FXuval maxlen)=0 |
FXuval | writeBlock (const FXuchar *data, FXuval maxlen) |
virtual FXuval | readLine (char *data, FXuval maxlen) |
FXuval | readBlockFrom (FXuchar *data, FXuval maxlen, FXfval pos) |
FXuval | writeBlockTo (FXfval pos, const FXuchar *data, FXuval maxlen) |
virtual int | getch () |
virtual int | putch (int c) |
virtual int | ungetch (int c)=0 |
FXfval | shredData (FXfval offset, FXfval len=(FXfval)-1) |
Static Public Member Functions | |
static bool | waitForData (QIODeviceS **signalled, FXuint no, QIODeviceS **list, FXuint waitfor=FXINFINITE) |
static FXuint | waitForDataMax () throw () |
static UnicodeType | determineUnicodeType (FXuchar *data, FXuval len) throw () |
static FXuval | applyCRLF (FXuchar *FXRESTRICT output, const FXuchar *FXRESTRICT input, FXuval outputlen, FXuval &inputlen, CRLFType crlftype=Default, UnicodeType utftype=NoTranslation) |
static FXuval | removeCRLF (FXuchar *FXRESTRICT output, const FXuchar *FXRESTRICT input, FXuval outputlen, FXuval &inputlen, UnicodeType utftype=NoTranslation) |
Protected Member Functions | |
QIODeviceS (const QIODeviceS &o) | |
void | setFlags (int f) |
void | setMode (int m) |
void | setState (int s) |
Protected Attributes | |
FXfval | ioIndex |
Friends | |
class | QSSLDevice |
FXAPI FXStream & | operator<< (FXStream &s, QIODevice &i) |
FXAPI FXStream & | operator>> (FXStream &s, QIODevice &i) |
enum FX::QIODevice::CRLFType [inherited] |
enum FX::QIODevice::UnicodeType [inherited] |
The type of unicode translation you want.
virtual bool FX::QIODeviceS::isSynchronous | ( | ) | const [inline, virtual] |
Returns true if this device is a synchronous device.
Reimplemented from FX::QIODevice.
Reimplemented in FX::QSSLDevice.
virtual bool FX::QIODeviceS::create | ( | FXuint | mode = IO_ReadWrite |
) | [pure virtual] |
Creates the server side of the device.
Implemented in FX::QBlkSocket, FX::QLocalPipe, FX::QPipe, and FX::QSSLDevice.
virtual bool FX::QIODeviceS::open | ( | FXuint | mode = IO_ReadWrite |
) | [pure virtual] |
Creates the client side of the device.
Implements FX::QIODevice.
Implemented in FX::QBlkSocket, FX::QChildProcess, FX::QLocalPipe, FX::QPipe, and FX::QSSLDevice.
virtual void FX::QIODeviceS::truncate | ( | FXfval | ) | [inline, virtual] |
Does nothing as synchronous devices can't be truncated.
Implements FX::QIODevice.
Reimplemented in FX::QLocalPipe, FX::QPipe, and FX::QSSLDevice.
virtual FXfval FX::QIODeviceS::at | ( | ) | const [inline, virtual] |
Returns 0 because synchronous devices don't have a current file pointer.
Reimplemented from FX::QIODevice.
Reimplemented in FX::QLocalPipe, FX::QPipe, and FX::QSSLDevice.
virtual bool FX::QIODeviceS::at | ( | FXfval | ) | [inline, virtual] |
Returns false because you can't set the current file pointer on a synchronous device.
Reimplemented from FX::QIODevice.
Reimplemented in FX::QLocalPipe, FX::QPipe, and FX::QSSLDevice.
virtual bool FX::QIODeviceS::atEnd | ( | ) | const [inline, virtual] |
Default implementation returning true if size() is zero.
Reimplemented from FX::QIODevice.
Reimplemented in FX::QLocalPipe, FX::QPipe, and FX::QSSLDevice.
virtual FXuval FX::QIODeviceS::readBlockFrom | ( | char * | data, | |
FXuval | maxlen, | |||
FXfval | pos | |||
) | [virtual] |
Default implementation throws an exception.
Implements FX::QIODevice.
Reimplemented in FX::QSSLDevice.
virtual FXuval FX::QIODeviceS::writeBlockTo | ( | FXfval | pos, | |
const char * | data, | |||
FXuval | maxlen | |||
) | [virtual] |
Default implementation throws an exception.
Implements FX::QIODevice.
Reimplemented in FX::QSSLDevice.
static bool FX::QIODeviceS::waitForData | ( | QIODeviceS ** | signalled, | |
FXuint | no, | |||
QIODeviceS ** | list, | |||
FXuint | waitfor = FXINFINITE | |||
) | [static] |
Waits for more data to become available for reading on any one or more of an array of QIODeviceS's specified by list. Precisely which are those left in the array signalled if it's not NULL with empty members being zero.
static FXuint FX::QIODeviceS::waitForDataMax | ( | ) | throw () [static] |
Returns the maximum number of QIODeviceS's which can be waited for at once.
FXuint FX::QIODevice::flags | ( | ) | const [inline, inherited] |
Returns the flags of this device.
FXuint FX::QIODevice::mode | ( | ) | const [inline, inherited] |
Returns the mode of this device
FXuint FX::QIODevice::state | ( | ) | const [inline, inherited] |
Returns the state of this device
CRLFType FX::QIODevice::crlfFormat | ( | ) | const [inline, inherited] |
Returns the CR/LF format of this device.
void FX::QIODevice::setCRLFFormat | ( | CRLFType | type | ) | [inline, inherited] |
Sets the CR/LF format for output of this device.
UnicodeType FX::QIODevice::unicodeTranslation | ( | ) | const [inline, inherited] |
Returns the unicode translation of this device.
void FX::QIODevice::setUnicodeTranslation | ( | UnicodeType | type | ) | [inline, inherited] |
Sets the unicode translation of this device.
bool FX::QIODevice::isBuffered | ( | ) | const [inline, inherited] |
Returns true if the device is buffered.
bool FX::QIODevice::isRaw | ( | ) | const [inline, inherited] |
Returns true if the device is unbuffered.
bool FX::QIODevice::isTranslated | ( | ) | const [inline, inherited] |
Returns true if the device is LR/CF translated.
bool FX::QIODevice::isUTF16Translated | ( | ) | const [inline, inherited] |
Returns true if the device is UTF-16 translated.
bool FX::QIODevice::isUTF32Translated | ( | ) | const [inline, inherited] |
Returns true if the device is UTF-32 translated.
bool FX::QIODevice::isReadable | ( | ) | const [inline, inherited] |
Returns true if the device is readable.
bool FX::QIODevice::isWriteable | ( | ) | const [inline, inherited] |
Returns true if the device is writeable.
bool FX::QIODevice::isReadWrite | ( | ) | const [inline, inherited] |
Returns true if the device is readable & writeable.
bool FX::QIODevice::isClosed | ( | ) | const [inline, inherited] |
Returns true if the device is closed.
bool FX::QIODevice::isOpen | ( | ) | const [inline, inherited] |
Returns true if the device is opened.
virtual void FX::QIODevice::close | ( | ) | [pure virtual, inherited] |
Closes the device.
Implemented in FX::QBlkSocket, FX::QBuffer, FX::QBZip2Device, FX::QChildProcess, FX::QFile, FX::QGZipDevice, FX::QLocalPipe, FX::QMemMap, FX::QPipe, and FX::QSSLDevice.
virtual void FX::QIODevice::flush | ( | ) | [pure virtual, inherited] |
Flushes the device's write buffer.
Implemented in FX::QBlkSocket, FX::QBuffer, FX::QBZip2Device, FX::QChildProcess, FX::QFile, FX::QGZipDevice, FX::QLocalPipe, FX::QMemMap, FX::QPipe, and FX::QSSLDevice.
virtual FXfval FX::QIODevice::size | ( | ) | const [pure virtual, inherited] |
Returns the size of the data being accessed by the device.
Implemented in FX::QBlkSocket, FX::QBuffer, FX::QBZip2Device, FX::QChildProcess, FX::QFile, FX::QGZipDevice, FX::QLocalPipe, FX::QMemMap, FX::QPipe, and FX::QSSLDevice.
virtual const FXACL& FX::QIODevice::permissions | ( | ) | const [virtual, inherited] |
Returns the ACL for this device.
Reimplemented in FX::QBlkSocket, FX::QFile, FX::QMemMap, FX::QPipe, and FX::QSSLDevice.
virtual void FX::QIODevice::setPermissions | ( | const FXACL & | ) | [virtual, inherited] |
Sets the ACL for this device.
Reimplemented in FX::QFile, FX::QMemMap, FX::QPipe, and FX::QSSLDevice.
virtual FXuval FX::QIODevice::readBlock | ( | char * | data, | |
FXuval | maxlen | |||
) | [pure virtual, inherited] |
Reads up to the specified quantity of bytes into the buffer, returning how much was actually read
Implemented in FX::QBlkSocket, FX::QBuffer, FX::QBZip2Device, FX::QChildProcess, FX::QFile, FX::QGZipDevice, FX::QLocalPipe, FX::QMemMap, FX::QPipe, and FX::QSSLDevice.
virtual FXuval FX::QIODevice::writeBlock | ( | const char * | data, | |
FXuval | maxlen | |||
) | [pure virtual, inherited] |
Writes up to the specified quantity of bytes from the buffer, returning how much was actually written. Note that less being written due to error is returned as an exception, but some devices may write less in a non-error situation.
Implemented in FX::QBlkSocket, FX::QBuffer, FX::QBZip2Device, FX::QChildProcess, FX::QFile, FX::QGZipDevice, FX::QLocalPipe, FX::QMemMap, FX::QPipe, and FX::QSSLDevice.
virtual FXuval FX::QIODevice::readLine | ( | char * | data, | |
FXuval | maxlen | |||
) | [virtual, inherited] |
Reads data until an end-of-line or maxlen is exceeded.
virtual int FX::QIODevice::getch | ( | ) | [virtual, inherited] |
Reads a single byte. Returns -1 for no data found.
Reimplemented in FX::QBuffer, FX::QBZip2Device, FX::QGZipDevice, and FX::QMemMap.
virtual int FX::QIODevice::putch | ( | int | c | ) | [virtual, inherited] |
Writes a single byte.
Reimplemented in FX::QBuffer, FX::QBZip2Device, FX::QGZipDevice, and FX::QMemMap.
virtual int FX::QIODevice::ungetch | ( | int | c | ) | [pure virtual, inherited] |
Pushes back a byte to the read buffer.
Implemented in FX::QBlkSocket, FX::QBuffer, FX::QBZip2Device, FX::QChildProcess, FX::QFile, FX::QGZipDevice, FX::QLocalPipe, FX::QMemMap, FX::QPipe, and FX::QSSLDevice.
static UnicodeType FX::QIODevice::determineUnicodeType | ( | FXuchar * | data, | |
FXuval | len | |||
) | throw () [static, inherited] |
Looks at a sample of data and determines what kind of Unicode text it is, returning UnicodeType::NoTranslation if it isn't text. This routine isn't foolproof, but it's a good guess
static FXuval FX::QIODevice::applyCRLF | ( | FXuchar *FXRESTRICT | output, | |
const FXuchar *FXRESTRICT | input, | |||
FXuval | outputlen, | |||
FXuval & | inputlen, | |||
CRLFType | crlftype = Default , |
|||
UnicodeType | utftype = NoTranslation | |||
) | [static, inherited] |
Applies CR/LF and optional UTF-x translation returning bytes output. If outputlen would run out before inputlen can be exhausted it will return early (eg; if mid newline, or mid UTF-x sequence). You should rewind processing to the difference between entrant inputlen and returned inputlen.
static FXuval FX::QIODevice::removeCRLF | ( | FXuchar *FXRESTRICT | output, | |
const FXuchar *FXRESTRICT | input, | |||
FXuval | outputlen, | |||
FXuval & | inputlen, | |||
UnicodeType | utftype = NoTranslation | |||
) | [static, inherited] |
Removes CR/LF translation intelligently (ie; self-adjusts to MS-DOS, Unix and MacOS formats or any mixture of these) and can perform optional UTF-x translation, returning bytes output. If outputlen would run out before inputlen can be exhausted it will return early (eg; if mid newline, or mid UTF-x sequence). You should rewind processing to the difference between entrant inputlen and returned inputlen.
FXfval FX::QIODevice::shredData | ( | FXfval | offset, | |
FXfval | len = (FXfval)-1 | |||
) | [inherited] |
Destroys the len bytes of data from offset offset into the file. Restores the file pointer afterwards and returns how much data was shredded before end of file if encountered. You must have the device open for both reading and writing for this call to succeed.
void FX::QIODevice::setFlags | ( | int | f | ) | [inline, protected, inherited] |
Sets the flags.
void FX::QIODevice::setMode | ( | int | m | ) | [inline, protected, inherited] |
Sets the mode.
void FX::QIODevice::setState | ( | int | s | ) | [inline, protected, inherited] |
Sets the state.
Appends the contents of an i/o device to stream s
Reads all available contents of the stream s to an i/o device, replacing its current contents and resetting the file pointer to the start