OpenSCADAWiki: Doc/API/part16 ...

Home | Index | Changes | Comments | Users | Registration | Login  Password:  
 

16. Ресурсы в системе OpenSCADA (Res, ResAlloc, ResMtx, MtxAlloc, AutoHD)

Большинство узлов и подсистем системы OpenSCADA являются динамическими, т.е. допускают создание/удаление/конфигурацию в процессе функционирования системы. Учитывая многопоточность системы, данная функциональность накладывает жесткие требования к синхронизации потоков. Для синхронизации в системе используются ресурсы, функции которых локализованы в объектах "Res" и "ResAlloc". Объект "Res" предоставляет хранилище ресурса, предусматривающего функции захвата/освобождения на чтение и запись. В объекте "ResAlloc" реализованы функции автоматического освобождения ресурса. Автоматический ресурс подразумевает создание локального объекта ресурса с автоматическим его освобождением при разрушении (в деструкторе). Использование автоматических ресурсов значительно упрощает работу с ресурсами при использовании исключений.


Любой динамический объект системы наследуется от объекта "TCntrNode", который содержит механизм подключения через шаблон "AutoHD". Основной функцией шаблона является хранение ссылки на объект и захват ресурса, исключающего удаление объекта на момент использования. Шаблон поддерживает копирование ресурса и автоматическое его освобождение в случае разрушения объекта шаблона. Для наглядности доступа к объектам порождённым от "TCntrNode" шаблон "AutoHD" поддерживает приведение типов, основанное на динамическом приведении.

16.1. Объект R/W ресурса (ResRW)

Публичные методы:

16.2. Объект автоматического освобождения R/W ресурса (ResAlloc)

Публичные методы:

16.3. Шаблон (AutoHD)

Публичные методы:

16.4. Объект захвата ресурсов, мютексом (ResMtx)

Публичные методы:

16.5. Объект строки с доступом, разделённым ресурсом (ResString)

Публичные методы:

16.6. Объект условной переменной, по мютексу (CondVar)

Публичные методы:

16.7. Объект автоматического освобождения POSIX мютекса (MtxAlloc)

Публичные методы:

16.8. Объект строки с доступом, разделённым глобальным ресурсом(мютексом) данных (MtxString)

Публичные методы:


 
Files[Hide files/form]
There is no comment on this page. [Display comments/form]