![]() |
PIP 5.6.1
Platform-Independent Primitives
|
Реализация PIIODevice для UDP-сокетов, TCP-клиентов и TCP-серверов. Подробнее...
#include <piethernet.h>
Классы | |
| struct | Interface |
| Публичное описание системного сетевого интерфейса. Подробнее... | |
| class | InterfaceList |
| Коллекция описаний Interface с методами поиска. Подробнее... | |
Открытые типы | |
| enum | Type { UDP , TCP_Client , TCP_Server } |
| Режим работы PIEthernet. Подробнее... | |
| enum | Parameters |
| Дополнительные параметры сокета PIEthernet. | |
| enum | InterfaceFlag |
| Флаги, описывающие сетевой интерфейс. | |
| typedef ::PINetworkAddress Address | DEPRECATEDM("use PINetworkAddress instead") |
| Устаревший псевдоним для PINetworkAddress. | |
| typedef PIFlags< InterfaceFlag > | InterfaceFlags |
| Битовая маска значений InterfaceFlag. | |
Открытые типы унаследованные от PIIODevice | |
| enum | DeviceMode { ReadOnly = 0x01 , WriteOnly = 0x02 , ReadWrite = 0x03 } |
| Режимы открытия PIIODevice. Подробнее... | |
| enum | DeviceOption { BlockingRead = 0x01 , BlockingWrite = 0x02 } |
| Общие опции, поддерживаемые некоторыми устройствами. Подробнее... | |
| enum | DeviceInfoFlag { Sequential = 0x01 , Reliable = 0x02 } |
| Характеристики канала устройства. Подробнее... | |
| typedef PIFlags< DeviceOption > | DeviceOptions |
| Битовая маска значений DeviceOption. | |
| typedef PIFlags< DeviceInfoFlag > | DeviceInfoFlags |
| Битовая маска значений DeviceInfoFlag. | |
Открытые члены | |
| PIEthernet () | |
| Создает UDP-устройство с пустым адресом чтения. | |
| PIEthernet (Type type, const PIString &ip_port=PIString(), const PIFlags< Parameters > params=PIEthernet::ReuseAddress|PIEthernet::MulticastLoop|PIEthernet::KeepConnection) | |
| Создает устройство с режимом "type", адресом чтения "ip_port" и параметрами сокета "params". | |
| virtual | ~PIEthernet () |
| Уничтожает ethernet-устройство. | |
| void | setReadAddress (const PIString &ip, int port) |
| Устанавливает адрес чтения по IP и порту. | |
| void | setReadAddress (const PIString &ip_port) |
| Устанавливает адрес чтения из строки "i.i.i.i:p". | |
| void | setReadAddress (const PINetworkAddress &addr) |
| Устанавливает адрес чтения из PINetworkAddress. | |
| void | setReadIP (const PIString &ip) |
| Устанавливает только IP-адрес чтения. | |
| void | setReadPort (int port) |
| Устанавливает только порт чтения. | |
| void | setSendAddress (const PIString &ip, int port) |
| Устанавливает адрес отправки по IP и порту. | |
| void | setSendAddress (const PIString &ip_port) |
| Устанавливает адрес отправки из строки "i.i.i.i:p". | |
| void | setSendAddress (const PINetworkAddress &addr) |
| Устанавливает адрес отправки из PINetworkAddress. | |
| void | setSendIP (const PIString &ip) |
| Устанавливает только IP-адрес отправки. | |
| void | setSendPort (int port) |
| Устанавливает только порт отправки. | |
| PINetworkAddress | readAddress () const |
| Возвращает текущий адрес чтения. | |
| PIString | readIP () const |
| Возвращает текущий IP-адрес чтения. | |
| int | readPort () const |
| Возвращает текущий порт чтения. | |
| PINetworkAddress | sendAddress () const |
| Возвращает текущий адрес отправки. | |
| PIString | sendIP () const |
| Возвращает текущий IP-адрес отправки. | |
| int | sendPort () const |
| Возвращает текущий порт отправки. | |
| PINetworkAddress | lastReadAddress () const |
| Возвращает адрес источника последнего принятого UDP-пакета. | |
| PIString | lastReadIP () const |
| Возвращает IP-адрес последнего принятого UDP-пакета. | |
| int | lastReadPort () const |
| Возвращает порт последнего принятого UDP-пакета. | |
| void | setParameters (PIFlags< PIEthernet::Parameters > parameters_) |
| Полностью заменяет параметры сокета на "parameters_". Для полного применения некоторых параметров может потребоваться переоткрытие устройства. | |
| void | setParameter (PIEthernet::Parameters parameter, bool on=true) |
| Устанавливает параметр сокета "parameter" в состояние "on". Для полного применения некоторых параметров может потребоваться переоткрытие устройства. | |
| bool | isParameterSet (PIEthernet::Parameters parameter) const |
| Возвращает, включен ли параметр "parameter". | |
| PIFlags< PIEthernet::Parameters > | parameters () const |
| Возвращает текущие параметры сокета. | |
| Type | type () const |
| Возвращает текущий режим ethernet-устройства. | |
| PISystemTime | readTimeout () const |
| Возвращает настроенный таймаут чтения. | |
| PISystemTime | writeTimeout () const |
| Возвращает настроенный таймаут записи. | |
| void | setReadTimeout (PISystemTime tm) |
| Устанавливает таймаут чтения. | |
| void | setWriteTimeout (PISystemTime tm) |
| Устанавливает таймаут записи. | |
| void | setReadBufferSize (int bytes) |
| Устанавливает размер приемного буфера сокета в байтах. | |
| void | setWriteBufferSize (int bytes) |
| Устанавливает размер буфера передачи сокета в байтах. | |
| int | TTL () const |
| Возвращает TTL IP-пакетов. | |
| int | multicastTTL () const |
| Возвращает TTL multicast-пакетов. | |
| void | setTTL (int ttl) |
| Устанавливает TTL IP-пакетов, по умолчанию 64. | |
| void | setMulticastTTL (int ttl) |
| Устанавливает TTL multicast-пакетов, по умолчанию 1. | |
| bool | joinMulticastGroup (const PIString &group) |
| Подключается к multicast-группе "group". Используйте только с UDP. | |
| bool | leaveMulticastGroup (const PIString &group) |
| Покидает multicast-группу "group". Используйте только с UDP. | |
| const PIStringList & | multicastGroups () const |
| Возвращает список подключенных multicast-групп. Используйте только с UDP. | |
| bool | connect (bool threaded=true) |
| Подключается к TCP-серверу по адресу readAddress(). Подробнее... | |
| bool | connect (const PIString &ip, int port, bool threaded=true) |
| Подключается к TCP-серверу по адресу "ip":"port". | |
| bool | connect (const PIString &ip_port, bool threaded=true) |
| Подключается к TCP-серверу по адресу "ip_port". | |
| bool | connect (const PINetworkAddress &addr, bool threaded=true) |
| Подключается к TCP-серверу по адресу "addr". Только для TCP_Client. | |
| bool | isConnected () const |
| Возвращает, подключен ли TCP-клиент. Только для TCP_Client. | |
| bool | isConnecting () const |
| Возвращает, выполняется ли сейчас подключение TCP-клиента. Только для TCP_Client. | |
| bool | listen (bool threaded=false) |
| Начинает прослушивание входящих TCP подключений на адресе readAddress(). Только для TCP_Server. | |
| bool | listen (const PIString &ip, int port, bool threaded=false) |
| Начинает прослушивание входящих TCP подключений на адресе "ip":"port". Только для TCP_Server. | |
| bool | listen (const PIString &ip_port, bool threaded=false) |
| Начинает прослушивание входящих TCP подключений на адресе "ip_port". Только для TCP_Server. | |
| bool | listen (const PINetworkAddress &addr, bool threaded=false) |
| Начинает прослушивание входящих TCP подключений на адресе "addr". Только для TCP_Server. | |
| void | stopThreadedListen () |
| Останавливает фоновый цикл прослушивания, запущенный в потоковом режиме. | |
| PIEthernet * | client (int index) |
| Возвращает принятый TCP-клиент по индексу. | |
| int | clientsCount () const |
| Возвращает количество принятых TCP-клиентов. | |
| PIVector< PIEthernet * > | clients () const |
| Возвращает всех принятых TCP-клиентов. | |
| bool | send (const void *data, int size, bool threaded=false) |
| Отправляет сырой буфер "data" размером "size". Подробнее... | |
| bool | send (const PIString &ip, int port, const void *data, int size, bool threaded=false) |
| Отправляет сырой буфер "data" по адресу "ip":"port". | |
| bool | send (const PIString &ip_port, const void *data, int size, bool threaded=false) |
| Отправляет сырой буфер "data" по адресу "ip_port". | |
| bool | send (const PINetworkAddress &addr, const void *data, int size, bool threaded=false) |
| Отправляет сырой буфер "data" по адресу "addr". | |
| bool | send (const PIByteArray &data, bool threaded=false) |
| Отправляет массив байт "data" по адресу назначения по умолчанию. | |
| bool | send (const PIString &ip, int port, const PIByteArray &data, bool threaded=false) |
| Отправляет массив байт "data" по адресу "ip":"port". | |
| bool | send (const PIString &ip_port, const PIByteArray &data, bool threaded=false) |
| Отправляет массив байт "data" по адресу "ip_port". | |
| bool | send (const PINetworkAddress &addr, const PIByteArray &data, bool threaded=false) |
| Отправляет массив байт "data" по адресу "addr". | |
| bool | canWrite () const override |
| Возвращает, разрешена ли сейчас запись. | |
| void | interrupt () override |
| Прерывает блокирующую операцию сокета. | |
| int | socket () const |
| Возвращает дескриптор нативного сокета. | |
Открытые члены унаследованные от 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 §ion, 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) |
| Вызывается непосредственно перед уничтожением объекта. Подробнее... | |
Открытые статические члены | |
| static InterfaceList | interfaces () |
| Возвращает все обнаруженные системные сетевые интерфейсы. | |
| static PINetworkAddress | interfaceAddress (const PIString &interface_) |
| Возвращает адрес, назначенный интерфейсу "interface_". | |
| static PIVector< PINetworkAddress > | allAddresses () |
| Возвращает все обнаруженные системные IP-адреса. | |
| static PIString | macFromBytes (const PIByteArray &mac) |
| Преобразует массив байт MAC-адреса в текстовый вид. | |
| static PIByteArray | macToBytes (const PIString &mac) |
| Преобразует текстовый MAC-адрес в массив байт. | |
| static PIString | applyMask (const PIString &ip, const PIString &mask) |
| Применяет сетевую маску "mask" к строковому IPv4-адресу "ip". | |
| static PINetworkAddress | applyMask (const PINetworkAddress &ip, const PINetworkAddress &mask) |
| Применяет сетевую маску "mask" к адресу "ip". | |
| static PIString | getBroadcast (const PIString &ip, const PIString &mask) |
| Вычисляет broadcast-адрес по строковому IPv4-адресу и маске. | |
| static PINetworkAddress | getBroadcast (const PINetworkAddress &ip, const PINetworkAddress &mask) |
| Вычисляет broadcast-адрес по адресу и маске. | |
Открытые статические члены унаследованные от PIIODevice | |
| static PIIODevice * | createFromFullPath (const PIString &full_path) |
| Пытается создать новое устройство по префиксу, настраивает с помощью configureFromFullPath() и возвращает его. Подробнее... | |
| static PIIODevice * | createFromVariant (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 PIObject * | findByName (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++ для метаданных зарегистрированных методов. | |
Защищенные члены | |
| void | propertyChanged (const char *name) override |
| Виртуальный метод, вызываемый после изменения свойства "name" через setProperty(). | |
| PIString | constructFullPathDevice () const override |
| Переопределите для построения device-specific части полной строки пути. По умолчанию возвращает path(). | |
| void | configureFromFullPathDevice (const PIString &full_path) override |
| Переопределите для настройки устройства из device-specific параметров полной строки пути. По умолчанию вызывает setPath(). | |
| PIPropertyStorage | constructVariantDevice () const override |
| Переопределите для построения device-specific свойств варианта. По умолчанию возвращает PIPropertyStorage со свойством "path". | |
| void | configureFromVariantDevice (const PIPropertyStorage &d) override |
| Переопределите для настройки устройства из PIPropertyStorage. Режим и опции уже применены. Реализация по умолчанию применяет "path". | |
| bool | configureDevice (const void *e_main, const void *e_parent=0) override |
| Переопределите для настройки устройства из записей "e_main" и необязательной "e_parent", приведённых к PIConfig::Entry*. | |
| 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. | |
| virtual void | received (const void *data, int size) |
| Вызывается после любой успешной операции приема. Подробнее... | |
| bool | openDevice () override |
| Переопределите для открытия устройства, возвращаемое значение будет установлено в переменную "opened_". Не используйте напрямую, только через open()! | |
| bool | closeDevice () override |
| Переопределите для закрытия устройства; обратное возвращаемое значение сохраняется в "opened_". | |
Защищенные члены унаследованные от 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 | |
| PIObject * | emitter () const |
| Возвращает объект-источник, который вызвал текущее событие. Подробнее... | |
| virtual void | propertyChanged (const char *name) |
| Виртуальный метод, вызываемый после изменения свойства "name" через setProperty(). | |
Configurable parameters | |
| string | ip |
| IP-адрес чтения, по умолчанию "". | |
| int | port |
| Порт чтения, по умолчанию 0. | |
| int | parameters |
| Битовая маска значений Parameters. | |
| PISystemTime | readTimeout |
| Таймаут чтения, по умолчанию 10 с | |
| PISystemTime | writeTimeout |
| Таймаут записи, по умолчанию 10 с | |
| int | TTL |
| TTL IP-пакетов, по умолчанию 64. | |
| int | multicastTTL |
| TTL multicast-пакетов, по умолчанию 1. | |
Events | |
| void | newConnection (PIEthernet *client) |
| Вызывается при принятии нового TCP-клиентского соединения. | |
| void | connected () |
| Вызывается после успешного подключения TCP-клиента. | |
| void | disconnected (bool withError) |
| Вызывается при закрытии TCP-соединения. | |
Дополнительные унаследованные члены | |
Открытые атрибуты унаследованные от PIIODevice | |
| bool | reopenEnabled |
| setReopenEnabled, по умолчанию "true". | |
| int | reopenTimeout |
| setReopenTimeout, по умолчанию 1_s. | |
| int | threadedReadBufferSize |
| setThreadedReadBufferSize в байтах, по умолчанию 4096. | |
Относящиеся к классу функции унаследованные от PIIODevice | |
| template<typename T > | |
| T | readDeviceSetting (const PIString &name, const T &def, const PIConfig::Entry *em, const PIConfig::Entry *ep) |
| Вспомогательная функция для чтения настроек устройства из записей конфигурации. Подробнее... | |
| #define | REGISTER_DEVICE(class) |
| Включить создание экземпляров устройства с помощью метода PIIODevice::createFromFullPath(). Подробнее... | |
| #define | PIIODEVICE(class, prefix) |
| Используйте этот макрос вместо PIOBJECT при объявлении своего PIIODevice. Подробнее... | |
Относящиеся к классу функции унаследованные от PIObject | |
| #define | piCoutObj |
| Макрос для условного (piDebug && PIObject::debug()) вывода в PICout(StdOut) для наследников PIObject. | |
| #define | piCerrObj |
| Макрос для условного (piDebug && PIObject::debug()) вывода в PICout(StdErr) для наследников PIObject. | |
| #define | PIOBJECT(name) |
| Поместите этот макрос внутрь объявления прямого наследника PIObject, чтобы включить регистрацию событий, обработчиков и метаданных класса. | |
| #define | PIOBJECT_SUBCLASS(name, parent) |
| Поместите этот макрос внутрь объявления наследника PIObject, чтобы унаследовать зарегистрированные методы и цепочку классов от "parent". | |
| #define | EVENT_HANDLER0(ret, name) ret name() |
Объявляет зарегистрированный метод-обработчик событий с сигнатурой ret name(). | |
| #define | EVENT_HANDLER1(ret, name, type0, var0) ret name(type0 var0) |
| Объявляет зарегистрированный метод-обработчик событий с одним аргументом. | |
| #define | EVENT_HANDLER2(ret, name, type0, var0, type1, var1) 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) |
| Объявляет зарегистрированный метод-обработчик событий с тремя аргументами. | |
| #define | EVENT_HANDLER4(ret, name, type0, var0, type1, var1, type2, var2, type3, var3) ret name(type0 var0, type1 var1, type2 var2, type3 var3) |
| Объявляет зарегистрированный метод-обработчик событий с четырьмя аргументами. | |
| #define | EVENT_HANDLER EVENT_HANDLER0 |
| Аналог EVENT_HANDLER0. | |
| #define | EVENT_VHANDLER0(ret, name) virtual ret name() |
Объявляет виртуальный зарегистрированный метод-обработчик с сигнатурой virtual ret name(). | |
| #define | EVENT_VHANDLER1(ret, name, type0, var0) virtual ret name(type0 var0) |
| Объявляет виртуальный зарегистрированный метод-обработчик с одним аргументом. | |
| #define | EVENT_VHANDLER2(ret, name, type0, var0, type1, var1) 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) |
| Объявляет виртуальный зарегистрированный метод-обработчик с тремя аргументами. | |
| #define | EVENT_VHANDLER4(ret, name, type0, var0, type1, var1, type2, var2, type3, var3) virtual ret name(type0 var0, type1 var1, type2 var2, type3 var3) |
| Объявляет виртуальный зарегистрированный метод-обработчик с четырьмя аргументами. | |
| #define | EVENT_VHANDLER EVENT_VHANDLER0 |
| Аналог EVENT_VHANDLER0. | |
| #define | EVENT0(name) void name(); |
| Объявляет метод-событие без аргументов. | |
| #define | EVENT1(name, type0, var0) void name(type0 var0); |
| Объявляет метод-событие с одним аргументом. | |
| #define | EVENT2(name, type0, var0, type1, var1) void name(type0 var0, type1 var1); |
| Объявляет метод-событие с двумя аргументами. | |
| #define | EVENT3(name, type0, var0, type1, var1, type2, var2) 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); |
| Объявляет метод-событие с четырьмя аргументами. | |
| #define | EVENT EVENT0 |
| Аналог EVENT0. | |
| #define | RAISE_EVENT0(src, event) |
| Совместимый вспомогательный макрос, вызывающий событие "event" у объекта-источника "src". | |
| #define | RAISE_EVENT1(src, event, v0) |
| Совместимый вспомогательный макрос, вызывающий событие "event" с одним аргументом. | |
| #define | RAISE_EVENT2(src, event, v0, v1) |
| Совместимый вспомогательный макрос, вызывающий событие "event" с двумя аргументами. | |
| #define | RAISE_EVENT3(src, event, v0, v1, v2) |
| Совместимый вспомогательный макрос, вызывающий событие "event" с тремя аргументами. | |
| #define | RAISE_EVENT4(src, event, v0, v1, v2, v3) |
| Совместимый вспомогательный макрос, вызывающий событие "event" с четырьмя аргументами. | |
| #define | CONNECTU(src, event, dest, handler) |
| Соединяет событие "event" объекта "src" к обработчику или событию "handler" объекта "dest". Подробнее... | |
| #define | CONNECTU_QUEUED(src, event, dest, handler, performer) |
| Соединяет событие "event" объекта "src" к обработчику или событию "handler" объекта "dest". Подробнее... | |
| #define | CONNECTL(src, event, functor) |
| Соединяет событие "event" объекта "src" к лямбда-функции "functor". Подробнее... | |
| #define | CONNECT0(ret, src, event, dest, handler) |
| Устаревший совместимый макрос, который соединяет событие с зарегистрированным обработчиком через явное указание сигнатуры. Подробнее... | |
| #define | CONNECT1(ret, type0, src, event, dest, handler) |
| Устаревший совместимый макрос для зарегистрированного события или обработчика с одним аргументом. Подробнее... | |
| #define | CONNECT2(ret, type0, type1, src, event, dest, handler) |
| Устаревший совместимый макрос для зарегистрированного события или обработчика с двумя аргументами. Подробнее... | |
| #define | CONNECT3(ret, type0, type1, type2, src, event, dest, handler) |
| Устаревший совместимый макрос для зарегистрированного события или обработчика с тремя аргументами. Подробнее... | |
| #define | CONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler) |
| Устаревший совместимый макрос для зарегистрированного события или обработчика с четырьмя аргументами. Подробнее... | |
| #define | CONNECT CONNECT0 |
| Аналог CONNECT0. Подробнее... | |
| #define | WEAK_CONNECT0(ret, src, event, dest, handler) |
| Устаревший совместимый макрос, который пропускает проверку исходного метода. Подробнее... | |
| #define | WEAK_CONNECT1(ret, type0, src, event, dest, handler) |
| Устаревший совместимый макрос, который пропускает проверку исходного метода для случая с одним аргументом. Подробнее... | |
| #define | WEAK_CONNECT2(ret, type0, type1, src, event, dest, handler) |
| Устаревший совместимый макрос, который пропускает проверку исходного метода для случая с двумя аргументами. Подробнее... | |
| #define | WEAK_CONNECT3(ret, type0, type1, type2, src, event, dest, handler) |
| Устаревший совместимый макрос, который пропускает проверку исходного метода для случая с тремя аргументами. Подробнее... | |
| #define | WEAK_CONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler) |
| Устаревший совместимый макрос, который пропускает проверку исходного метода для случая с четырьмя аргументами. Подробнее... | |
| #define | WEAK_CONNECT WEAK_CONNECT0 |
| Аналог WEAK_CONNECT0. Подробнее... | |
| #define | DISCONNECT0(ret, src, event, dest, handler) |
| Разрывает соединение зарегистрированного события с зарегистрированным обработчиком. | |
| #define | DISCONNECT1(ret, type0, src, event, dest, handler) |
| Разрывает соединение зарегистрированного события с одним аргументом и зарегистрированного обработчика. | |
| #define | DISCONNECT2(ret, type0, type1, src, event, dest, handler) |
| Разрывает соединение зарегистрированного события с двумя аргументами и зарегистрированного обработчика. | |
| #define | DISCONNECT3(ret, type0, type1, type2, src, event, dest, handler) |
| Разрывает соединение зарегистрированного события с тремя аргументами и зарегистрированного обработчика. | |
| #define | DISCONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler) |
| Разрывает соединение зарегистрированного события с четырьмя аргументами и зарегистрированного обработчика. | |
| #define | DISCONNECT DISCONNECT0 |
| Аналог DISCONNECT0. | |
| #define | HANDLER(handler) |
| Низкоуровневый вспомогательный макрос, который разворачивается в точку входа зарегистрированного обработчика. | |
Реализация PIIODevice для UDP-сокетов, TCP-клиентов и TCP-серверов.
Ethernet device.
PIEthernet designed to work with IPv4 network via two protocols: UDP and TCP. This class allow you send and receive packets to/from another computer through network. Also it supports broadcast and multicast extensions.
User Datagram Protocol
Transmission Control Protocol
| enum PIEthernet::Type |
| bool PIEthernet::connect | ( | bool | threaded = true | ) |
Подключается к TCP-серверу по адресу readAddress().
Если "threaded" равно true, подключение ставится в очередь и завершается из последующих вызовов read() или write().
| bool PIEthernet::send | ( | const void * | data, |
| int | size, | ||
| bool | threaded = false |
||
| ) |
Отправляет сырой буфер "data" размером "size".
Для UDP использует sendAddress(), для TCP_Client отправляет данные через подключенного пира.
|
inlineprotectedvirtual |
Вызывается после любой успешной операции приема.
Реализация по умолчанию ничего не делает.