Использование контейнеров объектов KosObject (objcontainer.h)
API определен в заголовочном файле sysroot-*-kos/include/kos/objcontainer.h
из состава KasperskyOS SDK.
API позволяет объединять объекты KosObject
в контейнеры для удобства использования наборов этих объектов (об объектах KosObject
см. "Использование объектов KosObject (objects.h)"). Контейнеры также являются объектами KosObject
и могу быть элементами других контейнеров. Один и тот же объект KosObject
может быть элементом нескольких контейнеров одновременно.
Сведения о функциях API приведены в таблице ниже.
Создание контейнера
Чтобы создать контейнер, нужно вызвать функцию KosCreateObjContainer()
. В параметре parent
можно указать идентификатор родительского контейнера, то есть контейнера, в который будет добавлен создаваемый контейнер.
Добавление объекта в контейнер
Чтобы добавить объект в контейнер, нужно вызвать функцию KosInsertObjContainerObject()
. Объектом может быть другой контейнер. Через параметр name
нужно задать имя объекта, которое этот объект будет иметь внутри контейнера. Это имя не связано с именем, которое было задано при создании объекта. Имя объекта внутри контейнера должно быть уникальным, чтобы однозначно идентифицировать этот объект среди других объектов в этом контейнере. Добавление объекта в контейнер инкрементирует счетчик ссылок на этот объект.
Удаление объекта из контейнера
Чтобы удалить объект из контейнера, нужно вызвать функцию KosRemoveObjContainerObjectByName()
или KosRemoveObjContainerObject()
. Удаление объекта из контейнера декрементирует счетчик ссылок на этот объект.
Поиск объекта в контейнере
Чтобы выполнить поиск объекта с заданным именем в контейнере, нужно вызвать функцию KosGetObjContainerObjectByName()
. Поиск объекта в дочерних контейнерах не выполняется. Функция инкрементирует счетчик ссылок на найденный объект.
Перечисление объектов в контейнере
Перечисление может потребоваться, чтобы выполнить какие-либо действия с несколькими объектами в контейнере. Чтобы перечислить объекты в контейнере, нужно вызвать функцию KosWalkObjContainerObjects()
. Через параметр walk
нужно задать callback-функцию, которая вызывается для каждого объекта при перечислении и получает указатели на объект и данные, переданные функции KosWalkObjContainerObjects()
через параметр context
. Перечисление объектов в дочерних контейнерах не выполняется.
Перечисление имен объектов в контейнере
Чтобы перечислить имена объектов в контейнере, нужно использовать функцию KosEnumObjContainerNames()
. Порядок перечисления имен объектов соответствует порядку добавления этих объектов в контейнер. Перечисление имен объектов в дочерних контейнерах не выполняется.
Получение числа объектов в контейнере
Чтобы получить число объектов в контейнере, нужно вызвать функцию KosCountObjContainerObjects()
. Объекты в дочерних контейнерах не учитываются.
Очистка контейнера
Чтобы удалить все объекты из контейнера, нужно вызвать функцию KosClearObjContainer()
. Функция декрементирует счетчики ссылок на удаленные из контейнера объекты.
Проверка, является ли объект контейнером
Чтобы проверить, является ли объект контейнером, нужно вызвать функцию KosIsContainer()
.
Удаление контейнера
Чтобы удалить контейнер, нужно вызвать функцию KosDestroyObjContainer()
. Удаление контейнера декрементирует счетчики ссылок на объекты, которые в нем содержались.
Сведения о функциях API
Функции objcontainer.h
Функция |
Сведения о функции |
---|---|
|
Назначение Создает контейнер. Параметры
Возвращаемые значения В случае успеха возвращает |
|
Назначение Удаляет контейнер. Параметры
Возвращаемые значения В случае успеха возвращает |
|
Назначение Добавляет объект в контейнер. Параметры
Возвращаемые значения В случае успеха возвращает |
|
Назначение Удаляет из контейнера объект с заданным именем. Параметры
Возвращаемые значения В случае успеха возвращает |
|
Назначение Удаляет объект из контейнера. Параметры
Возвращаемые значения В случае успеха возвращает |
|
Назначение Выполняет поиск объекта с заданным именем в контейнере. Параметры
Возвращаемые значения В случае успеха возвращает Дополнительные сведения Если объект с заданным именем не найден, функция передает через параметр |
|
Назначение Перечисляет объекты в контейнере и вызывает заданную функцию для каждого объекта при перечислении. Параметры
Возвращаемые значения В случае успеха возвращает Дополнительные сведения Callback-функция, заданная через параметр Если callback-функция, заданная через параметр Если callback-функция, заданная через параметр Флаги |
|
Назначение Перечисляет имена объектов в контейнере. Параметры
Возвращаемые значения В случае успеха возвращает Дополнительные сведения Функция |
|
Назначение Позволяет получить число объектов в контейнере. Параметры
Возвращаемые значения Число объектов в контейнере. |
|
Назначение Очищает контейнер. Параметры
Возвращаемые значения В случае успеха возвращает |
|
Назначение Проверяет, является ли объект контейнером. Параметры
Возвращаемые значения В случае успешной проверки возвращает |