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.