KasperskyOS Community Edition 1.3

Компонент PackageManager

API определен в заголовочных файлах, расположенных в директории sysroot-*-kos/include/component/package_manager/ из состава KasperskyOS SDK.

Сценарий использования компонента PackageManager описан в статье "Сценарий использования компонента PackageManager".

Интерфейс package_manager_proxy.h

API определен в заголовочном файле sysroot-*-kos/include/component/package_manager/kos_ipc/package_manager_proxy.h из состава KasperskyOS SDK.

Интерфейс содержит функцию CreatePackageManager() для получения указателя на экземпляр интерфейса IPackageManager, необходимого для работы с компонентом PackageManager. Через входной параметр cfg эта функция принимает параметры конфигурации в виде структуры PackageManagerConfig. Все поля этой структуры опциональны для заполнения.

struct PackageManagerConfig { // Имя IPC-канала для соединения с процессом PackageManager. std::string const mainConnection = KOS_PKGMGR_CONN_MAIN; // Имя службы, реализующей интерфейс IPackageController. std::string const pkgControlInterface = KOS_PKGMGR_IFACE_PKGC; // Имя класса процесса PackageManager. std::string const pkgMgrServerName = KOS_PKGMGR_SERVER_NAME; };

Функции package_manager_proxy.h

Функция

Сведения о функции

CreatePackageManager()

Назначение

Получение указателя на экземпляр интерфейса IPackageManager, необходимого для работы с компонентом PackageManager.

Параметры

  • [in] cfg – структура PackageManagerConfig с параметрами конфигурации для соединения с процессом PackageManager.
  • [out] iPkgMgr – указатель на экземпляр интерфейса IPackageManager.

Возвращаемые значения

В случае успеха возвращает kos::rtl::Ok, иначе возвращает код ошибки.

Пример использования:

client.cpp

#include <component/package_manager/kos_ipc/package_manager_proxy.h> namespace pkgmgr = package_manager; int main(int argc, const char *argv[]) { // ... pkgmgr::IPackageManagerPtr iPkgMgr; std::string mainConnection{"PkgMgrEntity"}; std::string pkgControlInterface{"kl.package_manager.PackageManager.ipkgc"}; pkgmgr::ipc::PackageManagerConfig cfg{mainConnection, pkgControlInterface}; if (CreatePackageManager(cfg, iPkgMgr) != kos::rtl::Ok) return EXIT_FAILURE; // ... }

Интерфейс IPackageManager

API определен в заголовочном файле sysroot-*-kos/include/component/package_manager/i_package_manager.h из состава KasperskyOS SDK.

Интерфейс IPackageManager позволяет получить указатель на интерфейс IPackageController. Этот интерфейс предназначен для установки KPA-пакетов в решение на базе KasperskyOS, а также получения сведений о них.

Функции i_package_manager.h

Функция

Сведения о функции

GetPackageController()

Назначение

Получение указателя на экземпляр интерфейса IPackageController.

Параметры

  • [out] pkgController – указатель на экземпляр интерфейса IPackageController.

Возвращаемые значения

В случае успеха возвращает kos::rtl::Ok, иначе возвращает код ошибки.

Пример использования:

client.cpp

int main(int argc, const char *argv[]) { // ... pkgmgr::IPackageControllerPtr pkgc; if (iPkgMgr->GetPackageController(pkgc) != kos::rtl::Ok) return EXIT_FAILURE; // ... }

В этом разделе

Интерфейс IPackageController

Интерфейс IPackageManifest