PIP 5.6.1
Platform-Independent Primitives
Открытые члены | Защищенные члены | Полный список членов класса
Класс PITransparentDevice

PIIODevice, который возвращает записанные пакеты через read(). Подробнее...

#include <pitransparentdevice.h>

Граф наследования:PITransparentDevice:
Inheritance graph
[см. легенду]

Открытые члены

 PITransparentDevice ()
 Создает пустой PITransparentDevice.
 
virtual ~PITransparentDevice ()
 Уничтожает прозрачное устройство.
 
ssize_t bytesAvailable () const override
 Возвращает размер следующего пакета в очереди.
 
- Открытые члены унаследованные от PIIODevice
 PIIODevice ()
 Создает пустой PIIODevice.
 
 PIIODevice (const PIString &path, DeviceMode mode=ReadWrite)
 Создает PIIODevice с путём "path" и режимом открытия "mode".
 
virtual ~PIIODevice ()
 Уничтожает базовый объект устройства.
 
DeviceMode mode () const
 Возвращает текущий режим открытия.
 
void setMode (DeviceMode m)
 Устанавливает режим открытия без переоткрытия устройства.
 
DeviceOptions options () const
 Возвращает текущие опции устройства.
 
bool isOptionSet (DeviceOption o) const
 Возвращает, включена ли опция "o".
 
void setOptions (DeviceOptions o)
 Полностью заменяет текущие опции устройства на "o".
 
bool setOption (DeviceOption o, bool yes=true)
 Устанавливает опцию "o" в состояние "yes" и возвращает её предыдущее состояние.
 
DeviceInfoFlags infoFlags () const
 Возвращает характеристики канала устройства.
 
PIString path () const
 Возвращает текущий путь устройства.
 
void setPath (const PIString &path)
 Устанавливает путь устройства без его переоткрытия.
 
bool isReadable () const
 Возвращает, разрешает ли текущий режим чтение.
 
bool isWriteable () const
 Возвращает, разрешает ли текущий режим запись.
 
bool isOpened () const
 Возвращает, открыто ли сейчас устройство.
 
bool isClosed () const
 Возвращает, закрыто ли сейчас устройство.
 
virtual bool canRead () const
 Возвращает, возможно ли чтение прямо сейчас.
 
virtual bool canWrite () const
 Возвращает, возможна ли запись прямо сейчас.
 
void setReopenEnabled (bool yes=true)
 Включает или выключает автоматические попытки переоткрытия при потоковом чтении.
 
void setReopenTimeout (PISystemTime timeout)
 Устанавливает задержку между автоматическими попытками переоткрытия.
 
bool isReopenEnabled () const
 Возвращает, включено ли автоматическое переоткрытие.
 
PISystemTime reopenTimeout ()
 Возвращает задержку между автоматическими попытками переоткрытия.
 
void setThreadedReadSlot (ReadRetFunc func)
 Устанавливает callback, вызываемый после успешного потокового чтения. Подробнее...
 
void setThreadedReadData (void *d)
 Устанавливает пользовательские данные, передаваемые в callback потокового чтения.
 
void setThreadedReadBufferSize (int new_size)
 Устанавливает размер буфера фонового чтения в байтах. Подробнее...
 
int threadedReadBufferSize () const
 Возвращает размер буфера фонового чтения в байтах.
 
const uchar * threadedReadBuffer () const
 Возвращает указатель на внутренний буфер потокового чтения.
 
void * threadedReadData () const
 Возвращает пользовательские данные, передаваемые в callback потокового чтения.
 
bool isThreadedRead () const
 Возвращает, запущено ли потоковое чтение.
 
bool isThreadedReadStopping () const
 Возвращает, находится ли потоковое чтение в процессе остановки.
 
void startThreadedRead ()
 Запускает потоковое чтение.
 
void startThreadedRead (ReadRetFunc func)
 Устанавливает callback потокового чтения в "func" и запускает потоковое чтение.
 
void stopThreadedRead ()
 Запрашивает остановку потокового чтения.
 
void terminateThreadedRead ()
 Прерывает потоковое чтение. Подробнее...
 
bool waitThreadedReadFinished (PISystemTime timeout={})
 Ожидает завершения потокового чтения, но не дольше "timeout".
 
uint threadedReadTimeout () const
 Возвращает задержку между безуспешными попытками потокового чтения в миллисекундах.
 
void setThreadedReadTimeout (uint ms)
 Устанавливает задержку между безуспешными попытками потокового чтения в миллисекундах.
 
bool isThreadedWrite () const
 Возвращает, запущена ли потоковая запись.
 
void startThreadedWrite ()
 Запускает потоковую запись.
 
void stopThreadedWrite ()
 Запрашивает остановку потоковой записи.
 
void terminateThreadedWrite ()
 Прерывает потоковую запись. Подробнее...
 
bool waitThreadedWriteFinished (PISystemTime timeout={})
 Ожидает завершения потоковой записи, но не дольше "timeout".
 
void clearThreadedWriteQueue ()
 Очищает очередь заданий потоковой записи.
 
void start ()
 Запускает потоковое чтение и потоковую запись.
 
void stop ()
 Запрашивает остановку потокового чтения и потоковой записи.
 
void stopAndWait (PISystemTime timeout={})
 Останавливает оба фоновых потока и ожидает их завершения.
 
virtual void interrupt ()
 Прерывает блокирующую операцию устройства.
 
ssize_t read (void *read_to, ssize_t max_size)
 Читает в "read_to" не более "max_size" байт.
 
ssize_t read (PIMemoryBlock mb)
 Читает данные в блок памяти "mb".
 
PIByteArray read (ssize_t max_size)
 Читает не более "max_size" байт и возвращает их как PIByteArray.
 
virtual ssize_t bytesAvailable () const
 Возвращает количество байт доступных для чтения. Подробнее...
 
ssize_t write (const void *data, ssize_t max_size)
 Записывает из "data" не более "max_size" байт.
 
PIByteArray readForTime (PISystemTime timeout)
 Читает данные в течение "timeout" и возвращает накопленные байты.
 
ullong writeThreaded (const void *data, ssize_t max_size)
 Помещает "data" в очередь потоковой записи и возвращает ID задания.
 
ullong writeThreaded (const PIByteArray &data)
 Помещает массив байт "data" в очередь потоковой записи и возвращает ID задания.
 
bool configure (const PIString &config_file, const PIString &section, bool parent_section=false)
 Настраивает устройство из секции "section" файла "config_file". Подробнее...
 
virtual PIConstChars fullPathPrefix () const
 Возвращает префикс устройства, используемый в полной строке пути. Creating devices by unambiguous string.
 
PIString constructFullPath () const
 Возвращает полную строку описания этого устройства, fullPathPrefix() + "://" + ...
 
void configureFromFullPath (const PIString &full_path)
 Настраивает устройство из параметров полной строки описания.
 
PIVariantTypes::IODevice constructVariant () const
 Создает описание PIVariantTypes::IODevice для этого устройства.
 
void configureFromVariant (const PIVariantTypes::IODevice &d)
 Настраивает устройство из PIVariantTypes::IODevice.
 
ssize_t write (const PIMemoryBlock &mb)
 Записывает в устройство блок памяти "mb".
 
bool open ()
 Открывает устройство с текущими путём и режимом.
 
bool open (const PIString &_path)
 Открывает устройство с путём "path".
 
bool open (DeviceMode _mode)
 Открывает устройство с режимом "mode".
 
bool open (const PIString &_path, DeviceMode _mode)
 Открывает устройство с путём "path" и режимом "mode".
 
bool close ()
 Закрывает устройство.
 
ssize_t write (PIByteArray data)
 Записывает "data" в устройство.
 
virtual void flush ()
 Немедленно сбрасывает буферы устройства.
 
void opened ()
 Вызывается после успешного открытия.
 
void closed ()
 Вызывается после успешного закрытия.
 
void threadedReadEvent (const uchar *readed, ssize_t size)
 Вызывается после того, как потоковое чтение получило данные.
 
void threadedWriteEvent (ullong id, ssize_t written_size)
 Вызывается после того, как потоковая запись обработала задание с ID "id".
 
- Открытые члены унаследованные от PIObject
 PIObject (const PIString &name=PIString())
 Создает объект и инициализирует его свойство name.
 
virtual ~PIObject ()
 Уничтожает объект, вызывает deleted() и отключает его от событийного графа.
 
PIString name () const
 Возвращает свойство name этого объекта.
 
virtual const char * className () const
 Возвращает зарегистрированное имя класса этого объекта.
 
virtual uint classNameID () const
 Возвращает хэш от className().
 
virtual const char * parentClassName () const
 Возвращает зарегистрированное имя родительского класса, либо пустую строку для корня.
 
bool debug () const
 Возвращает, включен ли вывод piCoutObj для этого объекта.
 
void setName (const PIString &name)
 Устанавливает свойство name этого объекта.
 
void setDebug (bool debug)
 Включает или отключает вывод piCoutObj для этого объекта.
 
PIVariant property (const char *name) const
 Возвращает свойство объекта по имени "name".
 
void setProperty (const char *name, const PIVariant &value)
 Устанавливает свойство "name" в значение "value" и создаёт его при необходимости. Подробнее...
 
bool isPropertyExists (const char *name) const
 Возвращает, существует ли свойство "name".
 
void setThreadSafe (bool yes)
 Включает или отключает внутренний мьютекс объекта во время выполнения обработчиков. Подробнее...
 
bool isThreadSafe () const
 Возвращает, включен ли внутренний мьютекс объекта для выполнения обработчиков.
 
bool execute (const PIString &method, const PIVector< PIVariantSimple > &vl)
 Выполняет зарегистрированный метод или метод-обработчик по имени с переданными аргументами. Подробнее...
 
bool execute (const PIString &method)
 Перегрузка execute() для метода без аргументов.
 
bool execute (const PIString &method, const PIVariantSimple &v0)
 Перегрузка execute() для одного аргумента.
 
bool execute (const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1)
 Перегрузка execute() для двух аргументов.
 
bool execute (const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2)
 Перегрузка execute() для трёх аргументов.
 
bool execute (const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2, const PIVariantSimple &v3)
 Перегрузка execute() для четырёх аргументов.
 
bool executeQueued (PIObject *performer, const PIString &method, const PIVector< PIVariantSimple > &vl)
 Ставит выполнение зарегистрированного метода в очередь объекта-исполнителя. Подробнее...
 
bool executeQueued (PIObject *performer, const PIString &method)
 Перегрузка executeQueued() для метода без аргументов.
 
bool executeQueued (PIObject *performer, const PIString &method, const PIVariantSimple &v0)
 Перегрузка executeQueued() для одного аргумента.
 
bool executeQueued (PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1)
 Перегрузка executeQueued() для двух аргументов.
 
bool executeQueued (PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2)
 Перегрузка executeQueued() для трёх аргументов.
 
bool executeQueued (PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2, const PIVariantSimple &v3)
 Перегрузка executeQueued() для четырёх аргументов.
 
void dump (const PIString &line_prefix=PIString()) const
 Выводит диагностическую информацию об объекте в проектный поток вывода.
 
PIStringList scopeList () const
 Возвращает зарегистрированную цепочку наследования объекта, включая его собственный класс.
 
PIStringList methodsEH () const
 Возвращает полные сигнатуры всех зарегистрированных событий и обработчиков для области этого класса.
 
bool isMethodEHContains (const PIString &name) const
 Возвращает, существует ли зарегистрированное событие или обработчик с таким именем.
 
PIString methodEHArguments (const PIString &name) const
 Возвращает список типов аргументов зарегистрированного метода через запятую.
 
PIString methodEHFullFormat (const PIString &name) const
 Возвращает полную зарегистрированную сигнатуру метода.
 
PIString methodEHFromAddr (const void *addr) const
 Возвращает имя зарегистрированного метода для указанного адреса точки входа.
 
void piDisconnect (const PIString &sig, PIObject *dest, void *ev_h)
 Разрывает соединения этого объекта-источника с конкретным обработчиком объекта-приемника для события "sig".
 
void piDisconnect (const PIString &sig, PIObject *dest)
 Разрывает все соединения этого объекта-источника от события "sig" к объекту-приемнику "dest".
 
void piDisconnect (const PIString &sig)
 Разрывает все соединения этого объекта-источника от события "sig".
 
bool isPIObject () const
 Возвращает, указывает ли этот указатель на ещё существующий экземпляр PIObject.
 
template<typename T >
bool isTypeOf () const
 Возвращает, принадлежит ли этот объект классу "T" или одному из его зарегистрированных потомков.
 
template<typename T >
T * cast () const
 Возвращает этот объект, приведённый к типу "T", если isTypeOf<T>() успешно, иначе nullptr.
 
void callQueuedEvents ()
 Выполняет все отложенные доставки, поставленные в очередь этому объекту-исполнителю.
 
bool maybeCallQueuedEvents ()
 Выполняет отложенные доставки только если этот объект использовался как исполнитель. Подробнее...
 
void deleteLater ()
 Планирует отложенное удаление объекта. Подробнее...
 
void deleted (PIObject *o)
 Вызывается непосредственно перед уничтожением объекта. Подробнее...
 

Защищенные члены

bool openDevice () override
 Переопределите для открытия устройства, возвращаемое значение будет установлено в переменную "opened_". Не используйте напрямую, только через open()!
 
bool closeDevice () override
 Переопределите для закрытия устройства; обратное возвращаемое значение сохраняется в "opened_".
 
ssize_t readDevice (void *read_to, ssize_t max_size) override
 Переопределите для чтения данных из устройства
 
ssize_t writeDevice (const void *data, ssize_t max_size) override
 Переопределите для записи данных в устройство
 
DeviceInfoFlags deviceInfoFlags () const override
 Переопределите для возврата актуальных DeviceInfoFlags. По умолчанию возвращает 0.
 
- Защищенные члены унаследованные от PIIODevice
virtual bool configureDevice (const void *e_main, const void *e_parent=0)
 Переопределите для настройки устройства из записей "e_main" и необязательной "e_parent", приведённых к PIConfig::Entry*.
 
virtual bool openDevice ()=0
 Переопределите для открытия устройства, возвращаемое значение будет установлено в переменную "opened_". Не используйте напрямую, только через open()!
 
virtual bool closeDevice ()
 Переопределите для закрытия устройства; обратное возвращаемое значение сохраняется в "opened_".
 
virtual ssize_t readDevice (void *read_to, ssize_t max_size)
 Переопределите для чтения данных из устройства
 
virtual ssize_t writeDevice (const void *data, ssize_t max_size)
 Переопределите для записи данных в устройство
 
virtual bool threadedRead (const uchar *readed, ssize_t size)
 Вызывается после успешного потокового чтения; по умолчанию вызывает внешний callback, заданный через setThreadedReadSlot().
 
virtual PIString constructFullPathDevice () const
 Переопределите для построения device-specific части полной строки пути. По умолчанию возвращает path().
 
virtual void configureFromFullPathDevice (const PIString &full_path)
 Переопределите для настройки устройства из device-specific параметров полной строки пути. По умолчанию вызывает setPath().
 
virtual PIPropertyStorage constructVariantDevice () const
 Переопределите для построения device-specific свойств варианта. По умолчанию возвращает PIPropertyStorage со свойством "path".
 
virtual void configureFromVariantDevice (const PIPropertyStorage &d)
 Переопределите для настройки устройства из PIPropertyStorage. Режим и опции уже применены. Реализация по умолчанию применяет "path".
 
virtual void optionsChanged ()
 Переопределите для реакции на изменение опций устройства.
 
virtual DeviceInfoFlags deviceInfoFlags () const
 Переопределите для возврата актуальных DeviceInfoFlags. По умолчанию возвращает 0.
 
virtual void threadedReadBufferSizeChanged ()
 Переопределите для реакции на новое значение threadedReadBufferSize().
 
- Защищенные члены унаследованные от PIObject
PIObjectemitter () const
 Возвращает объект-источник, который вызвал текущее событие. Подробнее...
 
virtual void propertyChanged (const char *name)
 Виртуальный метод, вызываемый после изменения свойства "name" через setProperty().
 

Дополнительные унаследованные члены

- Открытые типы унаследованные от PIIODevice
enum  DeviceMode { ReadOnly = 0x01 , WriteOnly = 0x02 , ReadWrite = 0x03 }
 Режимы открытия PIIODevice. Подробнее...
 
enum  DeviceOption { BlockingRead = 0x01 , BlockingWrite = 0x02 }
 Общие опции, поддерживаемые некоторыми устройствами. Подробнее...
 
enum  DeviceInfoFlag { Sequential = 0x01 , Reliable = 0x02 }
 Характеристики канала устройства. Подробнее...
 
typedef PIFlags< DeviceOptionDeviceOptions
 Битовая маска значений DeviceOption.
 
typedef PIFlags< DeviceInfoFlagDeviceInfoFlags
 Битовая маска значений DeviceInfoFlag.
 
- Открытые статические члены унаследованные от PIIODevice
static PIIODevicecreateFromFullPath (const PIString &full_path)
 Пытается создать новое устройство по префиксу, настраивает с помощью configureFromFullPath() и возвращает его. Подробнее...
 
static PIIODevicecreateFromVariant (const PIVariantTypes::IODevice &d)
 Пытается создать новое устройство по префиксу, настраивает с помощью configureFromVariant() и возвращает его.
 
static PIString normalizeFullPath (const PIString &full_path)
 Возвращает нормализованную полную строку пути для "full_path".
 
static void splitFullPath (PIString fpwm, PIString *full_path, DeviceMode *mode=0, DeviceOptions *opts=0)
 Разбирает полную строку пути на путь, режим и опции.
 
static PIStringList availablePrefixes ()
 Возвращает префиксы всех зарегистрированных устройств
 
static PIStringList availableClasses ()
 Возвращает имена классов всех зарегистрированных устройств.
 
- Открытые статические члены унаследованные от PIObject
static bool execute (PIObject *o, const PIString &method, const PIVector< PIVariantSimple > &vl)
 Статическая удобная обёртка над execute().
 
static bool execute (PIObject *o, const PIString &method)
 Статическая перегрузка execute() без аргументов.
 
static bool execute (PIObject *o, const PIString &method, const PIVariantSimple &v0)
 Статическая перегрузка execute() для одного аргумента.
 
static bool execute (PIObject *o, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1)
 Статическая перегрузка execute() для двух аргументов.
 
static bool execute (PIObject *o, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2)
 Статическая перегрузка execute() для трёх аргументов.
 
static bool execute (PIObject *o, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2, const PIVariantSimple &v3)
 Статическая перегрузка execute() для четырёх аргументов.
 
static bool executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVector< PIVariantSimple > &vl)
 Статическая удобная обёртка над executeQueued().
 
static bool executeQueued (PIObject *o, PIObject *performer, const PIString &method)
 Статическая перегрузка executeQueued() без аргументов.
 
static bool executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVariantSimple &v0)
 Статическая перегрузка executeQueued() для одного аргумента.
 
static bool executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1)
 Статическая перегрузка executeQueued() для двух аргументов.
 
static bool executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2)
 Статическая перегрузка executeQueued() для трёх аргументов.
 
static bool executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2, const PIVariantSimple &v3)
 Статическая перегрузка executeQueued() для четырёх аргументов.
 
static PIObject::Connection piConnect (PIObject *src, const PIString &sig, PIObject *dest_o, void *dest, void *ev_h, void *e_h, int args, const char *loc)
 Низкоуровневый помощник прямого соединения, лежащий под устаревшими макросами CONNECT*.
 
static PIObject::Connection piConnectU (PIObject *src, const PIString &sig, PIObject *dest_o, void *dest, const PIString &hname, const char *loc, PIObject *performer=0)
 Низкоуровневый помощник соединения по имени, лежащий под CONNECTU() и CONNECTU_QUEUED().
 
static PIObject::Connection piConnectLS (PIObject *src, const PIString &sig, std::function< void()> *f, const char *loc)
 Низкоуровневый помощник, который соединяет событие с лямбдой или обёрткой функтора.
 
static void piDisconnect (PIObject *src, const PIString &sig, PIObject *dest, void *ev_h)
 Разрывает соединения объекта-источника "src" с конкретным обработчиком объекта-приемника для события "sig".
 
static void piDisconnect (PIObject *src, const PIString &sig, PIObject *dest)
 Разрывает все соединения объекта-источника "src" от события "sig" к объекту-приемнику "dest".
 
static void piDisconnect (PIObject *src, const PIString &sig)
 Разрывает все соединения объекта-источника "src" от события "sig".
 
static void raiseEvent (PIObject *sender, const uint eventID)
 Внутренний помощник доставки для зарегистрированных событий без аргументов.
 
template<typename T0 >
static void raiseEvent (PIObject *sender, const uint eventID, const T0 &v0=T0())
 Внутренний помощник доставки для зарегистрированных событий с одним аргументом.
 
template<typename T0 , typename T1 >
static void raiseEvent (PIObject *sender, const uint eventID, const T0 &v0=T0(), const T1 &v1=T1())
 Внутренний помощник доставки для зарегистрированных событий с двумя аргументами.
 
template<typename T0 , typename T1 , typename T2 >
static void raiseEvent (PIObject *sender, const uint eventID, const T0 &v0=T0(), const T1 &v1=T1(), const T2 &v2=T2())
 Внутренний помощник доставки для зарегистрированных событий с тремя аргументами.
 
template<typename T0 , typename T1 , typename T2 , typename T3 >
static void raiseEvent (PIObject *sender, const uint eventID, const T0 &v0=T0(), const T1 &v1=T1(), const T2 &v2=T2(), const T3 &v3=T3())
 Внутренний помощник доставки для зарегистрированных событий с четырьмя аргументами.
 
static PIObjectfindByName (const PIString &name)
 Возвращает первый живой объект с именем "name", либо nullptr.
 
static bool isPIObject (const PIObject *o)
 Возвращает, указывает ли "o" на ещё существующий экземпляр PIObject.
 
static bool isPIObject (const void *o)
 Перегрузка isPIObject() для нетипизированного указателя.
 
template<typename T >
static bool isTypeOf (const PIObject *o)
 Возвращает, принадлежит ли "o" классу "T" или одному из его зарегистрированных потомков.
 
template<typename T >
static bool isTypeOf (const void *o)
 Перегрузка isTypeOf() для нетипизированного указателя.
 
static PIString simplifyType (const char *a, bool readable=true)
 Упрощает запись типа C++ для метаданных зарегистрированных методов.
 
- Открытые атрибуты унаследованные от PIIODevice
bool reopenEnabled
 setReopenEnabled, по умолчанию "true".
 
int reopenTimeout
 setReopenTimeout, по умолчанию 1_s.
 
int threadedReadBufferSize
 setThreadedReadBufferSize в байтах, по умолчанию 4096.
 

Подробное описание

PIIODevice, который возвращает записанные пакеты через read().

Этот класс транслирует все данные с метода write() на метод read(). PITransparentDevice содержит внутреннюю очередь и работает в пакетном режиме. Если запишется 3 различных пакета в устройство, то чтение вернет по очереди эти 3 пакета.