summaryrefslogtreecommitdiffstats
path: root/include/afb/c++/binding-wrap.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/afb/c++/binding-wrap.hpp')
-rw-r--r--include/afb/c++/binding-wrap.hpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/include/afb/c++/binding-wrap.hpp b/include/afb/c++/binding-wrap.hpp
index 0a5a5e25..8eddc58b 100644
--- a/include/afb/c++/binding-wrap.hpp
+++ b/include/afb/c++/binding-wrap.hpp
@@ -571,6 +571,40 @@ constexpr afb_verb_t verb(
return r;
}
+#if AFB_BINDING_VERSION >= 3
+void __afb__verb__cb__for__global__(afb_req_t r)
+{
+ void *vcbdata;
+ void (*callback)(req);
+
+ vcbdata = afb_req_get_vcbdata(r);
+ callback = reinterpret_cast<void(*)(req)>(vcbdata);
+ callback(req(r));
+}
+
+constexpr afb_verb_t verb(
+ const char *name,
+ void (&callback)(req),
+ const char *info = nullptr,
+ uint16_t session = 0,
+ const afb_auth *auth = nullptr
+ ,
+ bool glob = false,
+ void *vcbdata = nullptr
+)
+{
+ return verb(
+ name,
+ __afb__verb__cb__for__global__,
+ info,
+ session,
+ auth,
+ glob,
+ reinterpret_cast<void*>(&callback)
+ );
+}
+#endif
+
constexpr afb_verb_t verbend()
{
afb_verb_t r = verb(nullptr, nullptr);