Документация
ОС Аврора 5.0.1

Daemon Connection

Класс для управления пакетами через демон market. Подробнее…

Подключение: #include <market/daemon-connection.hpp>

Публичные функции

const std::string & GetArchitecture () const
Получает имя архитектуры устройства, совместимое с именами архитектуры пакета RPM. Подробнее…
const std::string & GetAuroraVersion () const
Получает версию операционной системы, установленной на устройстве. Подробнее…
Result<Operation> GetActiveOperation (const OperationUUID &operationUUID) const
Получает активную операцию с помощью операции UUID. Подробнее…
std::vector<Operation> GetActiveOperations () const
Получает список операций, которые на данный момент не завершены. Подробнее…
std::vector<Operation> GetCompletedOperations () const
Возвращает список операций, которые завершились, пока двоичный файл, создавший эти операции, не был запущен. Подробнее…
Result<Package> GetPackage (const std::string &packageID) const
Получает установленный пакет по идентификатору пакета. Подробнее…
std::vector<Package> GetPackageList () const
Получает список установленных пакетов. Подробнее…
std::vector<Package> GetPackageList (const PackageFilter &filter) const
Получает список установленных пакетов, удовлетворяющих правилам фильтрации. Подробнее…
Result<OperationUUID> CreateOperation (const OperationRequest &request) const
Создает операцию для данного OperationRequest и отправляет эту операцию в очередь обработки. Подробнее…
EventSubscription SubscribeToEvent (EventType eventType, const OnEventFunc &func) const
Добавляет функцию обработчика событий в очередь обработчиков, которые будут вызываться один за другим при возникновении указанного события. Подробнее…
void UnsubscribeFromEvent (const EventSubscription &subscription)
Отписывает от события. Подробнее…
Result<void> Start (const std::string &packageID) const
Запускает приложение. Подробнее…
Result<void> Restart (const std::string &packageID) const
Перезапускает приложение. Подробнее…
operator bool () const
Проверяет, удалось ли подключение к демону. Подробнее…

Дружественные функции

DaemonConnection GetDaemonConnection ()
Возвращает единственное соединение с демоном market. Подробнее…

Подробное описание

Класс для управления пакетами через демон market.

Примечание

У этого класса нет открытого конструктора. Чтобы получить соединение, следует использовать метод GetDaemonConnection(), который создаёт и возвращает единственное соединение с демоном market.

DaemonConnection daemon = GetDaemonConnection();

Описание функций

CreateOperation()

Result<OperationUUID> Market::DaemonConnection::CreateOperation (const OperationRequest &request) const

Создает операцию для данного OperationRequest и отправляет эту операцию в очередь обработки.

Примечание

Метод может вернуть результат ошибки, если при создании операции произошла ошибка на стороне демона.

Параметры

request Запрос на создание операции

Возвращает

Result, содержащий UUID созданной операции или ошибки.

GetActiveOperation()

Result<Operation> Market::DaemonConnection::GetActiveOperation (const OperationUUID &operationUUID) const

Получает активную операцию с помощью операции UUID.

Примечание

Метод может вернуть ошибку, если список активных операций не содержит операции с указанным UUID.

Параметры

operationUUID Уникальный идентификатор операции.

Возвращает

Result, содержащий активную операцию или ошибку.

GetActiveOperations()

std::vector<Operation> Market::DaemonConnection::GetActiveOperations () const

Получает список операций, которые на данный момент не завершены.

Примечание

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

Возвращает

Список активных операций.

GetArchitecture()

const std::string& Market::DaemonConnection::GetArchitecture () const

Получает имя архитектуры устройства, совместимое с именами архитектуры пакета RPM.

Возвращает

Имя архитектуры устройства.

GetAuroraVersion()

const std::string& Market::DaemonConnection::GetAuroraVersion () const

Получает версию операционной системы, установленной на устройстве.

Возвращает

Имя архитектуры устройства.

GetCompletedOperations()

std::vector<Operation> Market::DaemonConnection::GetCompletedOperations () const

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

Примечание

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

Возвращает

Список выполненных операций.

GetPackage()

Result<Package> Market::DaemonConnection::GetPackage (const std::string &packageID) const

Получает установленный пакет по идентификатору пакета.

Примечание

Метод может вернуть ошибку, если в списке установленных пакетов нет пакета с указанным идентификатором.

Параметры

packageID Идентификатор Package (имя пакета).

Возвращает

Result, содержащий установленный пакет или ошибку.

GetPackageList() [1/2]

std::vector<Package> Market::DaemonConnection::GetPackageList () const

Получает список установленных пакетов.

Возвращает

Список установленных пакетов.

GetPackageList() [2/2]

std::vector<Package> Market::DaemonConnection::GetPackageList (const PackageFilter &filter) const

Получает список установленных пакетов, удовлетворяющих правилам фильтрации.

Примечание

Библиотека предоставляет готовые к использованию фильтры, которые можно найти в пространстве имён PackageFilters:

DaemonConnection daemon = GetDaemonConnection();
 
std::vector<Package> packages;
 
packages = daemon->GetPackageList(PackageFilters::DeveloperCertificateID("xxx-xxx-xxx"));
packages = daemon->GetPackageList(PackageFilters::DeveloperCertificateSubgroup("regular"));

Возвращает

Отфильтрованный список установленных пакетов.

operator bool()

Market::DaemonConnection::operator bool () const explicit

Проверяет, удалось ли подключение к демону.

Примечание

Если используются методы неудачного подключения к демону, будет выдано исключение std::logic_error().

DaemonConnection daemon = GetDaemonConnection();
 
if (!daemon) {
std::cout << "Неуспешное соединение с демоном market" << std::endl;
}

Restart()

Result<void> Market::DaemonConnection::Restart (const std::string &packageID) const

Перезапускает приложение.

Примечание

Если приложение работало в фоновом режиме, оно переходит на передний план.

Параметры

packageID packageID приложения, которое необходимо перезапустить.

Start()

Result<void> Market::DaemonConnection::Start (const std::string &packageID) const

Запускает приложение.

Примечание

Если приложение работало в фоновом режиме, оно переходит на передний план.

Параметры

packageID packageID приложения, которое должно быть запущено.

SubscribeToEvent()

EventSubscription Market::DaemonConnection::SubscribeToEvent (EventType eventType, const OnEventFunc &func ) const

Добавляет функцию обработчика событий в очередь обработчиков, которые будут вызываться один за другим при возникновении указанного события.

Клиент демона market увидит события PackageInstalled, PackageUpgraded и PackageRemoved, которые произошли во время запуска операции другим клиентом демона market.

Клиент демона market будет видеть события OperationStatusChanged только для тех операций, которые были созданы этим клиентом.

Примечание

В настоящее время после повторного подключения клиента к демону, например, при перезапуске исполняемого файла, нет возможности отслеживать операции, созданные при предыдущем запуске, путём подписки на сигнал OperationStatusChanged.

Примечание

Для событий установки, обновления и удаления пакета необходимо использовать обратный вызов типа OnPackageEventFunc. Для событий, связанных с изменением статуса операции, необходимо использовать обратный вызов типа OnOperationEventFunc.

Примечание

Если тип обратного вызова не соответствует типу события, будет выброшено исключение std::logic_error.

Примечание

Класс EventSubscription автоматически отключает подписку клиента демона market от событий, связанных с этой подпиской на событие, когда деструктор вызывается в целях безопасности памяти. Это значит, что клиенту нужно где-то сохранить эту подписку.

Примечание

В настоящее время клиент может прослушивать события, только если клиентское приложение использует GMainLoop, например приложение, созданное с помощью Qt.

Параметры

eventType Тип события
func Обратный вызов, который будет вызываться при возникновении события.
DaemonConnection daemon = GetDaemonConnection();
 
std::vector<EventSubscription> subscriptions = {
    daemon.SubscribeToEvent(EventType::PackageInstalled, [](const Package &package) { ... }),
    daemon.SubscribeToEvent(EventType::OperationStatusChanged, [](const Operation &operation) { ... }),
};

Возвращает

Экземпляр класса EventSubscription, который управляет созданной подпиской на события.

UnsubscribeFromEvent()

void Market::DaemonConnection::UnsubscribeFromEvent (const EventSubscription &subscription)

Отписывает от события.

Примечание

Ничего не произойдёт, если передать этому методу экземпляр класса EventSubscription, подписка на который уже была отменена ранее.

Параметры

subscription Подписка на событие, от которой нужно отказаться.

Описание дружественных и связанных функций

GetDaemonConnection

DaemonConnection GetDaemonConnection () friend

Возвращает единственное соединение с демоном market.

Примечание

Приложение, использующее этот метод, должно проверить успешность подключения. Если используются методы неудачного подключения к демону, будет выдано исключение std::logic_error().

DaemonConnection daemon = GetDaemonConnection();
 
if (!daemon) {
std::cout << "Неуспешное соединение с демоном market" << std::endl;
}

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.