OpenSCADAWiki: Doc/API/part16
 

16. Ресурсы в системе Open SCADA (Res, Res Alloc, Auto HD)

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

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

16.1. Объект ресурса (Res)

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

16.2. Объект ресурса (Res Alloc)

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

16.3. Шаблон (Auto HD)

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

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

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