sdbus++: async: server: add generator stub

Add the needful changes in the tools and meson-generator to
create an asynchronous server binding header.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I0607aefc006eafb9224d92b887cf2d3b30c8da06
diff --git a/example/gen/meson.build b/example/gen/meson.build
index 23394ac..b550c79 100644
--- a/example/gen/meson.build
+++ b/example/gen/meson.build
@@ -5,10 +5,10 @@
     check: true,
 ).stdout().strip().split('\n')[0]
 
-if sdbuspp_gen_meson_ver != 'sdbus++-gen-meson version 6'
+if sdbuspp_gen_meson_ver != 'sdbus++-gen-meson version 7'
     warning('Generated meson files from wrong version of sdbus++-gen-meson.')
     warning(
-        'Expected "sdbus++-gen-meson version 6", got:',
+        'Expected "sdbus++-gen-meson version 7", got:',
         sdbuspp_gen_meson_ver
     )
 endif
diff --git a/example/gen/net/poettering/Calculator/meson.build b/example/gen/net/poettering/Calculator/meson.build
index e906ab2..128a6ca 100644
--- a/example/gen/net/poettering/Calculator/meson.build
+++ b/example/gen/net/poettering/Calculator/meson.build
@@ -2,7 +2,7 @@
 generated_sources += custom_target(
     'net/poettering/Calculator__cpp'.underscorify(),
     input: [ '../../../../yaml/net/poettering/Calculator.interface.yaml',  ],
-    output: [ 'error.cpp', 'error.hpp', 'common.hpp', 'server.cpp', 'server.hpp', 'client.hpp',  ],
+    output: [ 'error.cpp', 'error.hpp', 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
diff --git a/test/gen/meson.build b/test/gen/meson.build
index 23394ac..b550c79 100644
--- a/test/gen/meson.build
+++ b/test/gen/meson.build
@@ -5,10 +5,10 @@
     check: true,
 ).stdout().strip().split('\n')[0]
 
-if sdbuspp_gen_meson_ver != 'sdbus++-gen-meson version 6'
+if sdbuspp_gen_meson_ver != 'sdbus++-gen-meson version 7'
     warning('Generated meson files from wrong version of sdbus++-gen-meson.')
     warning(
-        'Expected "sdbus++-gen-meson version 6", got:',
+        'Expected "sdbus++-gen-meson version 7", got:',
         sdbuspp_gen_meson_ver
     )
 endif
diff --git a/test/gen/server/Test/meson.build b/test/gen/server/Test/meson.build
index 829f238..459f0a8 100644
--- a/test/gen/server/Test/meson.build
+++ b/test/gen/server/Test/meson.build
@@ -2,7 +2,7 @@
 generated_sources += custom_target(
     'server/Test__cpp'.underscorify(),
     input: [ '../../../yaml/server/Test.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'client.hpp',  ],
+    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
diff --git a/tools/meson.build b/tools/meson.build
index 30ce47f..8570394 100644
--- a/tools/meson.build
+++ b/tools/meson.build
@@ -13,6 +13,7 @@
   'sdbusplus/templates/error.cpp.mako',
   'sdbusplus/templates/error.hpp.mako',
   'sdbusplus/templates/error.md.mako',
+  'sdbusplus/templates/interface.aserver.hpp.mako',
   'sdbusplus/templates/interface.client.hpp.mako',
   'sdbusplus/templates/interface.common.hpp.mako',
   'sdbusplus/templates/interface.md.mako',
diff --git a/tools/sdbus++-gen-meson b/tools/sdbus++-gen-meson
index 9dcae96..2de2032 100755
--- a/tools/sdbus++-gen-meson
+++ b/tools/sdbus++-gen-meson
@@ -36,7 +36,7 @@
 ## if a repository contains old copies of the generated meson.build files and
 ## needs an update.  We should increment the version number whenever the
 ## resulting meson.build would change.
-tool_version="sdbus++-gen-meson version 6"
+tool_version="sdbus++-gen-meson version 7"
 function show_version() {
     echo "${tool_version}"
 }
@@ -190,6 +190,7 @@
             interface.yaml)
                 outputs="${outputs}'common.hpp', "
                 outputs="${outputs}'server.cpp', 'server.hpp', "
+                outputs="${outputs}'aserver.hpp', "
                 outputs="${outputs}'client.hpp', "
                 ;;
 
@@ -307,6 +308,7 @@
         ${sdbusppcmd} interface server-header "${intf}" > "${outputdir}/server.hpp"
         ${sdbusppcmd} interface server-cpp "${intf}" > "${outputdir}/server.cpp"
         ${sdbusppcmd} interface client-header "${intf}" > "${outputdir}/client.hpp"
+        ${sdbusppcmd} interface aserver-header "${intf}" > "${outputdir}/aserver.hpp"
     fi
 
     if [[ -e "${rootdir}/$1.errors.yaml" ]]; then
diff --git a/tools/sdbusplus/interface.py b/tools/sdbusplus/interface.py
index ed3e2d7..734a1fe 100644
--- a/tools/sdbusplus/interface.py
+++ b/tools/sdbusplus/interface.py
@@ -57,6 +57,11 @@
     def markdown(self, loader):
         return self.render(loader, "interface.md.mako", interface=self)
 
+    def async_server_header(self, loader):
+        return self.render(
+            loader, "interface.aserver.hpp.mako", interface=self
+        )
+
     def server_header(self, loader):
         return self.render(loader, "interface.server.hpp.mako", interface=self)
 
diff --git a/tools/sdbusplus/main.py b/tools/sdbusplus/main.py
index c40cee6..fcab7b1 100644
--- a/tools/sdbusplus/main.py
+++ b/tools/sdbusplus/main.py
@@ -11,6 +11,7 @@
 
     valid_types = {"interface": sdbusplus.Interface, "error": sdbusplus.Error}
     valid_processes = {
+        "aserver-header": "async_server_header",
         "client-header": "client_header",
         "common-header": "common_header",
         "exception-cpp": "exception_cpp",
diff --git a/tools/sdbusplus/templates/interface.aserver.hpp.mako b/tools/sdbusplus/templates/interface.aserver.hpp.mako
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tools/sdbusplus/templates/interface.aserver.hpp.mako