Интерфейс IRouteProvider

Интерфейс applications::routing::IRouteProvider предоставляет метод для получения маршрутов программы. Для получения экземпляра интерфейса applications::routing::IRouteProvider используется функция applications::routing::CreateRouteProviderProxy(), расположенная в файле /opt/KasperskyOS-SDK-KISG-Platform-<version>/sysroot-*-kos/include/component/secure_platform/routing_table/route_provider_api/route_provider_proxy_factory.h.

route_provider_proxy_factory.h (фрагмент)

namespace applications::routing {

class IRouteProvider;

std::unique_ptr<IRouteProvider> CreateRouteProviderProxy();

}

Метод для получения маршрутов программы IRouteProvider::GetRoutes() принимает идентификатор программы и возвращает список обнаруженных маршрутов в виде структуры Routes, которая содержит вектор маршрутов RouteList и текущую ревизию маршрутов. Ревизия может быть использована для предотвращения состояния гонки при выполнении асинхронных операций.

Описание интерфейса IRouteProvider представлено в файле /opt/KasperskyOS-SDK-KISG-Platform-<version>/sysroot-*-kos/include/component/secure_platform/routing_table/base/route_provider.h.

route_provider.h (фрагмент)

class IRouteProvider

{

...

virtual kos::rtl::Result GetRoutes(AppId application, Routes& routes) const noexcept = 0;

};

В начало