Клиент D-Bus не получает сигнальные события в системной шинеC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Клиент D-Bus не получает сигнальные события в системной шине

Сообщение Anonymous »

Я использую библиотеку sdbus-cpp, чтобы проверить, как создать службу и получить доступ к ее методам и сигналам через клиент D-Bus. Библиотека предоставляет пример этого, который я тестировал и работал у меня. Однако в этом примере служба создается в сеансовой шине, и мне хотелось бы, чтобы она работала на системной шине. Это пример:
Серверная часть:

Код: Выделить всё

#include 
#include 
#include 

int main(int argc, char *argv[])
{
// Create D-Bus connection to the (either system or session) bus and requests a well-known name on it.
sdbus::ServiceName serviceName{"org.sdbuscpp.concatenator"};
auto connection = sdbus::createBusConnection(serviceName);

// Create concatenator D-Bus object.
sdbus::ObjectPath objectPath{"/org/sdbuscpp/concatenator"};
auto concatenator = sdbus::createObject(*connection, std::move(objectPath));

auto concatenate = [&concatenator](const std::vector numbers, const std::string& separator)
{
// Return error if there are no numbers in the collection
if (numbers.empty())
throw sdbus::Error(sdbus::Error::Name{"org.sdbuscpp.Concatenator.Error"}, "No numbers provided");

std::string result;
for (auto number : numbers)
{
result += (result.empty() ? std::string() : separator) + std::to_string(number);
}

// Emit 'concatenated' signal
concatenator->emitSignal("concatenated").onInterface("org.sdbuscpp.Concatenator").withArguments(result);
std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/79336714/d-bus-client-not-receiving-signal-events-in-the-system-bus[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»