sdbus++: move interface name to common header

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I887b85d47e4e380426973f217bb94b1bec69f7aa
diff --git a/example/calculator-server.cpp b/example/calculator-server.cpp
index 9e02ba0..aa60662 100644
--- a/example/calculator-server.cpp
+++ b/example/calculator-server.cpp
@@ -56,7 +56,7 @@
 
     static_assert(
         std::string_view(
-            sdbusplus::client::net::poettering::Calculator::interface) ==
+            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
diff --git a/tools/sdbusplus/templates/interface.client.hpp.mako b/tools/sdbusplus/templates/interface.client.hpp.mako
index d7cc84e..7c3c6e8 100644
--- a/tools/sdbusplus/templates/interface.client.hpp.mako
+++ b/tools/sdbusplus/templates/interface.client.hpp.mako
@@ -1,17 +1,18 @@
 #pragma once
 
-namespace sdbusplus::client::${interface.cppNamespacedClass()}
-{
-
-static constexpr auto interface = "${interface.name}";
-
-} // namespace sdbusplus::client::${interface.cppNamespacedClass()}
+#include <${interface.headerFile("common")}>
 
 #ifndef SDBUSPP_REMOVE_DEPRECATED_NAMESPACE
 namespace sdbusplus::${interface.old_cppNamespacedClass("client")}
 {
 
-using sdbusplus::client::${interface.cppNamespacedClass()}::interface;
+constexpr auto interface =
+    sdbusplus::common::${interface.cppNamespacedClass()}::interface;
 
 } // namespace sdbusplus::${interface.old_cppNamespacedClass("client")}
 #endif
+
+namespace sdbusplus::client::${interface.cppNamespacedClass()}
+{
+
+} // namespace sdbusplus::client::${interface.cppNamespacedClass()}
diff --git a/tools/sdbusplus/templates/interface.server.hpp.mako b/tools/sdbusplus/templates/interface.server.hpp.mako
index 7b9d660..ca20b2c 100644
--- a/tools/sdbusplus/templates/interface.server.hpp.mako
+++ b/tools/sdbusplus/templates/interface.server.hpp.mako
@@ -8,9 +8,11 @@
 #include <string>
 #include <systemd/sd-bus.h>
 #include <tuple>
+
 % for m in interface.methods + interface.properties + interface.signals:
-${ m.cpp_prototype(loader, interface=interface, ptype='callback-hpp-includes') }\
+${ m.cpp_prototype(loader, interface=interface, ptype='callback-hpp-includes') }
 % endfor
+#include <${interface.headerFile("common")}> \
 <%
     def setOfPropertyTypes():
         return set(p.cppTypeParam(interface.name) for p in
@@ -20,12 +22,10 @@
 namespace sdbusplus::server::${interface.cppNamespace()}
 {
 
-class ${interface.classname}
+class ${interface.classname} :
+    public sdbusplus::common::${interface.cppNamespacedClass()}
 {
     public:
-        static constexpr auto interface =
-                "${interface.name}";
-
         /* Define all of the basic class operations:
          *     Not allowed:
          *         - Default constructor to avoid nullptrs.