Компонент 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

В начало