![]() |
PIP 5.5.3
Platform-Independent Primitives
|
PIIODevice wrapper around PIString. More...
#include <piiostring.h>

Public Member Functions | |
| PIIOString (PIString *string=0, PIIODevice::DeviceMode mode=PIIODevice::ReadOnly) | |
| Contructs PIIOString with "string" content and "mode" open mode. | |
| PIIOString (const PIString &string) | |
| Contructs PIIOString with "string" content only for read. | |
| PIString * | string () const |
| Returns content. | |
| void | clear () |
| Clear content string. | |
| bool | open (PIString *string, PIIODevice::DeviceMode mode=PIIODevice::ReadWrite) |
| Open "string" content with "mode" open mode. | |
| bool | open (const PIString &string) |
| Open "string" content only for read. | |
| bool | isEnd () const |
| Returns if position is at the end of content. | |
| void | seek (llong position) |
| Move read/write position to "position". | |
| void | seekToBegin () |
| Move read/write position to the beginning of the string. | |
| void | seekToEnd () |
| Move read/write position to the end of the string. | |
| PIString | readLine () |
| Read one text line and return it. | |
| int | writeString (const PIString &string) |
| Insert string "string" into content at current position. | |
| ssize_t | bytesAvailable () const override |
| Returns the number of bytes that are available for reading. More... | |
Public Member Functions inherited from PIIODevice | |
| PIIODevice () | |
| Constructs a empty PIIODevice. | |
| PIIODevice (const PIString &path, DeviceMode mode=ReadWrite) | |
| Constructs PIIODevice with path "path" and open mode "mode". | |
| DeviceMode | mode () const |
| Returns current open mode of device. | |
| void | setMode (DeviceMode m) |
| Set open mode of device. Don`t reopen device. | |
| DeviceOptions | options () const |
| Returns current device options. | |
| bool | isOptionSet (DeviceOption o) const |
| Returns current device option "o" state. | |
| void | setOptions (DeviceOptions o) |
| Set device options. | |
| bool | setOption (DeviceOption o, bool yes=true) |
| Set device option "o" to "yes" and returns previous state. | |
| DeviceInfoFlags | infoFlags () const |
| Returns device characteristic flags. | |
| PIString | path () const |
| Returns current path of device. | |
| void | setPath (const PIString &path) |
| Set path of device. Don`t reopen device. | |
| bool | isReadable () const |
| Returns if mode is ReadOnly or ReadWrite. | |
| bool | isWriteable () const |
| Returns if mode is WriteOnly or ReadWrite. | |
| bool | isOpened () const |
| Returns if device is successfully opened. | |
| bool | isClosed () const |
| Returns if device is closed. | |
| virtual bool | canRead () const |
| Returns if device can read now. | |
| virtual bool | canWrite () const |
| Returns if device can write now. | |
| void | setReopenEnabled (bool yes=true) |
| Set calling of open() enabled while threaded read on closed device. | |
| void | setReopenTimeout (PISystemTime timeout) |
| Set timeout between open() tryings if reopen is enabled. | |
| bool | isReopenEnabled () const |
| Returns reopen enable. | |
| PISystemTime | reopenTimeout () |
| Returns reopen timeout. | |
| void | setThreadedReadSlot (ReadRetFunc func) |
| Set threaded read callback. More... | |
| void | setThreadedReadData (void *d) |
| Set custom data that will be passed to threaded read callback. | |
| void | setThreadedReadBufferSize (int new_size) |
| Set size of threaded read buffer. More... | |
| int | threadedReadBufferSize () const |
| Returns size of threaded read buffer. | |
| const uchar * | threadedReadBuffer () const |
| Returns content of threaded read buffer. | |
| void * | threadedReadData () const |
| Returns custom data that will be passed to threaded read callback. | |
| bool | isThreadedRead () const |
| Returns if threaded read is started. | |
| bool | isThreadedReadStopping () const |
| Returns if threaded read is stopping. | |
| void | startThreadedRead () |
| Start threaded read. | |
| void | startThreadedRead (ReadRetFunc func) |
| Start threaded read and assign threaded read callback to "func". | |
| void | stopThreadedRead () |
| Stop threaded read. | |
| void | terminateThreadedRead () |
| Terminate threaded read. More... | |
| bool | waitThreadedReadFinished (PISystemTime timeout={}) |
| Wait for threaded read finish no longer than "timeout". | |
| bool | isThreadedWrite () const |
| Returns if threaded write is started. | |
| void | startThreadedWrite () |
| Start threaded write. | |
| void | stopThreadedWrite () |
| Stop threaded write. | |
| void | terminateThreadedWrite () |
| Terminate threaded write. More... | |
| bool | waitThreadedWriteFinished (PISystemTime timeout={}) |
| Wait for threaded write finish no longer than "timeout". | |
| void | clearThreadedWriteQueue () |
| Clear threaded write task queue. | |
| void | start () |
| Start both threaded read and threaded write. | |
| void | stop () |
| Stop both threaded read and threaded write. | |
| void | stopAndWait (PISystemTime timeout={}) |
| Stop both threaded read and threaded write and wait for finish. | |
| virtual void | interrupt () |
| Interrupt blocking operation. | |
| ssize_t | read (void *read_to, ssize_t max_size) |
| Read from device maximum "max_size" bytes to "read_to". | |
| ssize_t | read (PIMemoryBlock mb) |
| Read from device to memory block "mb". | |
| PIByteArray | read (ssize_t max_size) |
| Read from device maximum "max_size" bytes and returns them as PIByteArray. | |
| virtual ssize_t | bytesAvailable () const |
| Returns the number of bytes that are available for reading. More... | |
| ssize_t | write (const void *data, ssize_t max_size) |
| Write maximum "max_size" bytes of "data" to device. | |
| PIByteArray | readForTime (PISystemTime timeout) |
| Read from device for "timeout" and return readed data as PIByteArray. | |
| ullong | writeThreaded (const void *data, ssize_t max_size) |
| Add task to threaded write queue and return task ID. | |
| ullong | writeThreaded (const PIByteArray &data) |
| Add task to threaded write queue and return task ID. | |
| bool | configure (const PIString &config_file, const PIString §ion, bool parent_section=false) |
| Configure device from section "section" of file "config_file", if "parent_section" parent section also will be read. | |
| virtual PIConstChars | fullPathPrefix () const |
| Returns full unambiguous string prefix. Creating devices by unambiguous string. | |
| PIString | constructFullPath () const |
| Returns full unambiguous string, describes this device, fullPathPrefix() + "://" + ... | |
| void | configureFromFullPath (const PIString &full_path) |
| Configure device with parameters of full unambiguous string. | |
| PIVariantTypes::IODevice | constructVariant () const |
| Returns PIVariantTypes::IODevice, describes this device. | |
| void | configureFromVariant (const PIVariantTypes::IODevice &d) |
| Configure device from PIVariantTypes::IODevice. | |
| ssize_t | write (const PIMemoryBlock &mb) |
| Write memory block "mb" to device. | |
| bool | open () |
| Open device. | |
| bool | open (const PIString &_path) |
| Open device with path "path". | |
| bool | close () |
| Close device. | |
| ssize_t | write (PIByteArray data) |
| Write "data" to device. | |
| virtual void | flush () |
| Immediate write all buffers. | |
| void | opened () |
| Raise if succesfull open. | |
| void | closed () |
| Raise if succesfull close. | |
| void | threadedReadEvent (const uchar *readed, ssize_t size) |
| Raise if read thread succesfull read some data. | |
| void | threadedWriteEvent (ullong id, ssize_t written_size) |
| Raise if write thread successfull write some data of task with ID "id". | |
Public Member Functions inherited from PIObject | |
| PIObject (const PIString &name=PIString()) | |
| Contructs PIObject with name "name". | |
| PIString | name () const |
| Returns object name. | |
| virtual const char * | className () const |
| Returns object class name. | |
| virtual const char * | parentClassName () const |
| Returns parent class name. | |
| bool | debug () const |
| Return if piCoutObj of this object is active. | |
| void | setName (const PIString &name) |
| Set object name. | |
| void | setDebug (bool debug) |
| Set object piCoutObj active. | |
| PIVariant | property (const char *name) const |
| Returns property with name "name". | |
| void | setProperty (const char *name, const PIVariant &value) |
| Set property with name "name" to "value". If there is no such property in object it will be added. | |
| bool | isPropertyExists (const char *name) const |
| Returns if property with name "name" exists. | |
| PIStringList | scopeList () const |
| Returns subclass scope of this object (including this class name) | |
| void | piDisconnect (const PIString &sig, PIObject *dest, void *ev_h) |
| Disconnect object from all connections with event name "sig", connected to destination object "dest" and handler "ev_h". | |
| void | piDisconnect (const PIString &sig, PIObject *dest) |
| Disconnect object from all connections with event name "sig", connected to destination object "dest". | |
| void | piDisconnect (const PIString &sig) |
| Disconnect object from all connections with event name "sig". | |
| bool | isPIObject () const |
| Returns if this is valid PIObject (check signature) | |
| template<typename T > | |
| bool | isTypeOf () const |
| Returns if this is valid PIObject subclass "T" (check signature and classname) | |
| template<typename T > | |
| T * | cast () const |
| Returns cast to T if this is valid subclass "T" (check by isTypeOf()) or "nullptr". | |
| void | callQueuedEvents () |
| Execute all posted events from CONNECTU_QUEUED connections. | |
| bool | maybeCallQueuedEvents () |
| Check if any CONNECTU_QUEUED connections to this object and execute them. More... | |
| void | deleteLater () |
| Mark object to delete. More... | |
| void | deleted (PIObject *o) |
| Raise before object delete. More... | |
Protected Member Functions | |
| bool | openDevice () override |
| Reimplement to open device, return value will be set to "opened_" variable. Don't call this function in subclass, use open()! | |
| ssize_t | readDevice (void *read_to, ssize_t max_size) override |
| Reimplement this function to read from your device. | |
| ssize_t | writeDevice (const void *data, ssize_t max_size) override |
| Reimplement this function to write to your device. | |
| DeviceInfoFlags | deviceInfoFlags () const override |
| Reimplement to return correct DeviceInfoFlags. Default implementation returns 0. | |
Protected Member Functions inherited from PIIODevice | |
| virtual bool | configureDevice (const void *e_main, const void *e_parent=0) |
| Reimplement to configure device from entries "e_main" and "e_parent", cast arguments to PIConfig::Entry*. | |
| virtual bool | openDevice ()=0 |
| Reimplement to open device, return value will be set to "opened_" variable. Don't call this function in subclass, use open()! | |
| virtual bool | closeDevice () |
| Reimplement to close device, inverse return value will be set to "opened_" variable. | |
| virtual ssize_t | readDevice (void *read_to, ssize_t max_size) |
| Reimplement this function to read from your device. | |
| virtual ssize_t | writeDevice (const void *data, ssize_t max_size) |
| Reimplement this function to write to your device. | |
| virtual bool | threadedRead (const uchar *readed, ssize_t size) |
| Function executed when thread read some data, default implementation execute external callback "ret_func_". | |
| virtual PIString | constructFullPathDevice () const |
| Reimplement to construct full unambiguous string, describes this device. Default implementation returns path() | |
| virtual void | configureFromFullPathDevice (const PIString &full_path) |
| Reimplement to configure your device with parameters of full unambiguous string. Default implementation call setPath() | |
| virtual PIPropertyStorage | constructVariantDevice () const |
| Reimplement to construct device properties. Default implementation return PIPropertyStorage with "path" entry. | |
| virtual void | configureFromVariantDevice (const PIPropertyStorage &d) |
| Reimplement to configure your device from PIPropertyStorage. Options and mode already applied. Default implementation apply "path" entry. | |
| virtual void | optionsChanged () |
| Reimplement to apply new device options. | |
| virtual DeviceInfoFlags | deviceInfoFlags () const |
| Reimplement to return correct DeviceInfoFlags. Default implementation returns 0. | |
| virtual void | threadedReadBufferSizeChanged () |
| Reimplement to apply new threadedReadBufferSize() | |
Protected Member Functions inherited from PIObject | |
| PIObject * | emitter () const |
| Returns PIObject* which has raised an event. This value is correct only in definition of some event handler. | |
| virtual void | propertyChanged (const char *name) |
| Virtual function executes after property with name "name" has been changed. | |
Additional Inherited Members | |
Public Types inherited from PIIODevice | |
| enum | DeviceMode { ReadOnly = 0x01 , WriteOnly = 0x02 , ReadWrite = 0x03 } |
| Open modes for PIIODevice. More... | |
| enum | DeviceOption { BlockingRead = 0x01 , BlockingWrite = 0x02 } |
| Options for PIIODevice, works with some devices. More... | |
| enum | DeviceInfoFlag { Sequential = 0x01 , Reliable = 0x02 } |
| Characteristics of PIIODevice channel. More... | |
Static Public Member Functions inherited from PIIODevice | |
| static PIIODevice * | createFromFullPath (const PIString &full_path) |
| Try to create new device by prefix, configure it with configureFromFullPath() and returns it. More... | |
| static PIIODevice * | createFromVariant (const PIVariantTypes::IODevice &d) |
| Try to create new device by prefix, configure it with configureFromVariant() and returns it. | |
| static PIStringList | availablePrefixes () |
| Returns fullPath prefixes of all registered devices. | |
| static PIStringList | availableClasses () |
| Returns class names of all registered devices. | |
Static Public Member Functions inherited from PIObject | |
| static void | piDisconnect (PIObject *src, const PIString &sig, PIObject *dest, void *ev_h) |
| Disconnect object "src" from all connections with event name "sig", connected to destination object "dest" and handler "ev_h". | |
| static void | piDisconnect (PIObject *src, const PIString &sig, PIObject *dest) |
| Disconnect object "src" from all connections with event name "sig", connected to destination object "dest". | |
| static void | piDisconnect (PIObject *src, const PIString &sig) |
| Disconnect object "src" from all connections with event name "sig". | |
| static PIObject * | findByName (const PIString &name) |
| Returns PIObject* with name "name" or 0, if there is no object found. | |
| static bool | isPIObject (const PIObject *o) |
| Returns if "o" is valid PIObject (check signature) | |
| template<typename T > | |
| static bool | isTypeOf (const PIObject *o) |
| Returns if "o" is valid PIObject subclass "T" (check signature and classname) | |
Public Attributes inherited from PIIODevice | |
| bool | reopenEnabled |
| setReopenEnabled, default "true" | |
| int | reopenTimeout |
| setReopenTimeout, default 1_s | |
| int | threadedReadBufferSize |
| setThreadedReadBufferSize in bytes, default 4096 | |
Related Functions inherited from PIIODevice | |
| template<typename T > | |
| T | readDeviceSetting (const PIString &name, const T &def, const PIConfig::Entry *em, const PIConfig::Entry *ep) |
| Service function. useful for configuring devices. More... | |
| #define | REGISTER_DEVICE(class) |
| Enable device instances creation with PIIODevice::createFromFullPath() function. More... | |
| #define | PIIODEVICE(class, prefix) |
| Use this macro instead of PIOBJECT when describe your own PIIODevice. More... | |
Related Functions inherited from PIObject | |
| #define | piCoutObj |
| Macro used for conditional (piDebug && PIObject::debug()) output to PICout(StdOut) for subclasses of PIObject. | |
| #define | piCerrObj |
| Macro used for conditional (piDebug && PIObject::debug()) output to PICout(StdErr) for subclasses of PIObject. | |
| #define | PIOBJECT(name) |
| You should use this macro after class declaration to use EVENT and EVENT_HANDLER and correct piCoutObj output. | |
| #define | PIOBJECT_SUBCLASS(name, parent) |
| You should use this macro after class declaration to use EVENT and EVENT_HANDLER of parent class, and scopeList() | |
| #define | EVENT_HANDLER0(ret, name) ret name() |
| Declare event handler with name "name" and return type "ret", ret name() | |
| #define | EVENT_HANDLER1(ret, name, type0, var0) ret name(type0 var0) |
| Declare event handler with name "name" and return type "ret", ret name(type0 var0) | |
| #define | EVENT_HANDLER2(ret, name, type0, var0, type1, var1) ret name(type0 var0, type1 var1) |
| Declare event handler with name "name" and return type "ret", ret name(type0 var0, type1 var1) | |
| #define | EVENT_HANDLER3(ret, name, type0, var0, type1, var1, type2, var2) ret name(type0 var0, type1 var1, type2 var2) |
| Declare event handler with name "name" and return type "ret", ret name(type0 var0, type1 var1, type2 var2) | |
| #define | EVENT_HANDLER4(ret, name, type0, var0, type1, var1, type2, var2, type3, var3) ret name(type0 var0, type1 var1, type2 var2, type3 var3) |
| Declare event handler with name "name" and return type "ret", ret name(type0 var0, type1 var1, type2 var2, type3 var3) | |
| #define | EVENT_HANDLER EVENT_HANDLER0 |
| Synonym of EVENT_HANDLER0. | |
| #define | EVENT_VHANDLER0(ret, name) virtual ret name() |
| Declare virtual event handler with name "name" and return type "ret", virtual ret name() | |
| #define | EVENT_VHANDLER1(ret, name, type0, var0) virtual ret name(type0 var0) |
| Declare virtual event handler with name "name" and return type "ret", virtual ret name(type0 var0) | |
| #define | EVENT_VHANDLER2(ret, name, type0, var0, type1, var1) virtual ret name(type0 var0, type1 var1) |
| Declare virtual event handler with name "name" and return type "ret", virtual ret name(type0 var0, type1 var1) | |
| #define | EVENT_VHANDLER3(ret, name, type0, var0, type1, var1, type2, var2) virtual ret name(type0 var0, type1 var1, type2 var2) |
| Declare virtual event handler with name "name" and return type "ret", virtual ret name(type0 var0, type1 var1, type2 var2) | |
| #define | EVENT_VHANDLER4(ret, name, type0, var0, type1, var1, type2, var2, type3, var3) virtual ret name(type0 var0, type1 var1, type2 var2, type3 var3) |
| Declare virtual event handler with name "name" and return type "ret", virtual ret name(type0 var0, type1 var1, type2 var2,
type3 var3) | |
| #define | EVENT_VHANDLER EVENT_VHANDLER0 |
| Synonym of EVENT_VHANDLER0. | |
| #define | EVENT0(name) void name(); |
| Declare event with name "name", void name();. | |
| #define | EVENT1(name, type0, var0) void name(type0 var0); |
| Declare event with name "name", void name(type0 var0);. | |
| #define | EVENT2(name, type0, var0, type1, var1) void name(type0 var0, type1 var1); |
| Declare event with name "name", void name(type0 var0, type1 var1);. | |
| #define | EVENT3(name, type0, var0, type1, var1, type2, var2) void name(type0 var0, type1 var1, type2 var2); |
| Declare event with name "name", void name(type0 var0, type1 var1, type2 var2);. | |
| #define | EVENT4(name, type0, var0, type1, var1, type2, var2, type3, var3) void name(type0 var0, type1 var1, type2 var2, type3 var3); |
| Declare event with name "name", void name(type0 var0, type1 var1, type2 var2, type3 var3);. | |
| #define | EVENT EVENT0 |
| Synonym of EVENT0. | |
| #define | CONNECTU(src, event, dest, handler) |
| Connect event "event" from object "src" to event handler or event "handler" of object "dest". More... | |
| #define | CONNECTU_QUEUED(src, event, dest, handler, performer) |
| Connect event "event" from object "src" to event handler or event "handler" of object "dest". More... | |
| #define | CONNECTL(src, event, functor) |
| Connect event "event" from object "src" to lambda-expression "functor". More... | |
| #define | CONNECT0(ret, src, event, dest, handler) |
| Connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" with check of event and handler exists. More... | |
| #define | CONNECT1(ret, type0, src, event, dest, handler) |
| Connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" with check of event and handler exists. More... | |
| #define | CONNECT2(ret, type0, type1, src, event, dest, handler) |
| Connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" with check of event and handler exists. More... | |
| #define | CONNECT3(ret, type0, type1, type2, src, event, dest, handler) |
| Connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" with check of event and handler exists. More... | |
| #define | CONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler) |
| Connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" with check of event and handler exists. More... | |
| #define | CONNECT CONNECT0 |
| Synonym of CONNECT0. More... | |
| #define | WEAK_CONNECT0(ret, src, event, dest, handler) |
| Connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" without check of event exists. More... | |
| #define | WEAK_CONNECT1(ret, type0, src, event, dest, handler) |
| Connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" without check of event exists. More... | |
| #define | WEAK_CONNECT2(ret, type0, type1, src, event, dest, handler) |
| Connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" without check of event exists. More... | |
| #define | WEAK_CONNECT3(ret, type0, type1, type2, src, event, dest, handler) |
| Connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" without check of event exists. More... | |
| #define | WEAK_CONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler) |
| Connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" without check of event exists. More... | |
| #define | WEAK_CONNECT WEAK_CONNECT0 |
| Synonym of WEAK_CONNECT0. More... | |
| #define | DISCONNECT0(ret, src, event, dest, handler) |
| piDisconnect event "event" from object "src" from event handler "handler" with return type "ret" from object "dest" | |
| #define | DISCONNECT1(ret, type0, src, event, dest, handler) |
| piDisconnect event "event" from object "src" from event handler "handler" with return type "ret" from object "dest" | |
| #define | DISCONNECT2(ret, type0, type1, src, event, dest, handler) |
| piDisconnect event "event" from object "src" from event handler "handler" with return type "ret" from object "dest" | |
| #define | DISCONNECT3(ret, type0, type1, type2, src, event, dest, handler) |
| piDisconnect event "event" from object "src" from event handler "handler" with return type "ret" from object "dest" | |
| #define | DISCONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler) |
| piDisconnect event "event" from object "src" from event handler "handler" with return type "ret" from object "dest" | |
| #define | DISCONNECT DISCONNECT0 |
| Synonym of DISCONNECT0. | |
| #define | HANDLER(handler) |
| Returns pointer to events handler "handler". | |
PIIODevice wrapper around PIString.
This class allow you to use PIString as PIIODevice, e.g. to pass it to PIConfig.
|
overridevirtual |
Returns the number of bytes that are available for reading.
This function is commonly used with sequential devices to determine the number of bytes to allocate in a buffer before reading. If function returns -1 it mean that number of bytes undefined.
Reimplemented from PIIODevice.