example: calculator: use YAML paths and service_names support
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: Ia2a51f5c9ef62715b9e65e3935c64d6da7a49f31
diff --git a/example/calculator-aserver.cpp b/example/calculator-aserver.cpp
index f70e7ab..6d41d07 100644
--- a/example/calculator-aserver.cpp
+++ b/example/calculator-aserver.cpp
@@ -42,7 +42,7 @@
int main()
{
- constexpr auto path = "/net/poettering/calculator";
+ constexpr auto path = Calculator::instance_path;
sdbusplus::async::context ctx;
sdbusplus::server::manager_t manager{ctx, path};
@@ -50,7 +50,7 @@
Calculator c{ctx, path};
ctx.spawn([](sdbusplus::async::context& ctx) -> sdbusplus::async::task<> {
- ctx.get_bus().request_name("net.poettering.Calculator");
+ ctx.get_bus().request_name(Calculator::default_service);
co_return;
}(ctx));
diff --git a/example/calculator-client.cpp b/example/calculator-client.cpp
index 2db6ae2..0ba1438 100644
--- a/example/calculator-client.cpp
+++ b/example/calculator-client.cpp
@@ -5,20 +5,19 @@
auto startup(sdbusplus::async::context& ctx) -> sdbusplus::async::task<>
{
- constexpr auto service = "net.poettering.Calculator";
- constexpr auto path = "/net/poettering/calculator";
+ using Calculator = sdbusplus::client::net::poettering::Calculator<>;
- auto c = sdbusplus::client::net::poettering::Calculator(ctx)
- .service(service)
- .path(path);
+ auto c = Calculator(ctx)
+ .service(Calculator::default_service)
+ .path(Calculator::instance_path);
// Alternatively, sdbusplus::async::client_t<Calculator, ...>() could have
// been used to combine multiple interfaces into a single client-proxy.
auto alternative_c [[maybe_unused]] =
sdbusplus::async::client_t<
sdbusplus::client::net::poettering::Calculator>(ctx)
- .service(service)
- .path(path);
+ .service(Calculator::default_service)
+ .path(Calculator::instance_path);
{
// Call the Multiply method.
diff --git a/example/calculator-server.cpp b/example/calculator-server.cpp
index b0603a3..7ee4218 100644
--- a/example/calculator-server.cpp
+++ b/example/calculator-server.cpp
@@ -51,24 +51,16 @@
int main()
{
- // Define a dbus path location to place the object.
- constexpr auto path = "/net/poettering/calculator";
-
- static_assert(
- std::string_view(
- sdbusplus::common::net::poettering::Calculator::interface) ==
- std::string_view(Calculator::interface));
-
// Create a new bus and affix an object manager for the subtree path we
// intend to place objects at..
auto b = sdbusplus::bus::new_default();
- sdbusplus::server::manager_t m{b, path};
+ sdbusplus::server::manager_t m{b, Calculator::instance_path};
// Reserve the dbus service name : net.poettering.Calculator
- b.request_name("net.poettering.Calculator");
+ b.request_name(Calculator::default_service);
// Create a calculator object at /net/poettering/calculator
- Calculator c1{b, path};
+ Calculator c1{b, Calculator::instance_path};
// Handle dbus processing forever.
b.process_loop();
diff --git a/example/yaml/net/poettering/Calculator.interface.yaml b/example/yaml/net/poettering/Calculator.interface.yaml
index 4862f84..f130e59 100644
--- a/example/yaml/net/poettering/Calculator.interface.yaml
+++ b/example/yaml/net/poettering/Calculator.interface.yaml
@@ -86,3 +86,11 @@
- name: Error
description: >
The service has encountered an error.
+
+paths:
+ - instance: /net/poettering/calculator
+ description: Expected path of the instance.
+
+service_names:
+ - default: net.poettering.Calculator
+ description: Expected service name for the instance.