Объявление переменных, функций, событий и действий

Плагины и драйверы сервера вместе с Агентами на базе Java обычно создают их собственные определения переменных, функций и событий. Эти определения добавляются к контекстам при помощи методов addVariableDefinition(), addFunctionDefinition() и addEventDefinition(). Также существуют соответствующие методы удаления: removeVariableDefinition(), removeFunctionDefinition() и removeEventDefinition().

Не существует общего способа удаленно управлять/модифицировать структуру дерева контекстов сервера и определения переменных/функций/событий.

Таким образом, addChild(), removeChild(), addVariableDefinition(), removeVariableDefinition(), addFunctionDefinition(), removeFunctionDefinition(), addEventDefinition(), removeEventDefinition() и иные подобные методы, вызванные в прокси-контексте (например, через SberMobile Server API), не влияют на дерево контекстов сервера.

Использование статических форматов

Объявление переменных, функций и событий допускает уточнение TableFormat, т.е. формат значения переменных, функций ввода/вывода и данные событий.

В целом создание форматов описано в статье Создание таблиц данных.

Однако важно понимать, что в большинстве экземпляров класса TableFormat класс должен быть повторно использован между значениями тех же самых переменных/функций/событий, добавленных во множественные контексты.

Поэтому в большинстве случаев экземпляры форматов таблицы должны быть статическими. Это существенно уменьшит использование памяти в случае, если, допустим, это же самое значение переменной было добавлено к десяти тысячам контекстов.

Типичный экземпляр TableFormat может занимать один килобайт памяти. Поэтому добавление десяти переменных с нестатическими форматами к десяти тысячам контекстов (например, экземпляры пользовательских ресурсов) займет сто мегабайт памяти, которую можно было бы сберечь при использовании единственного экземпляра в статическом формате.