X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=include%2Fafb%2Fafb-binding.hpp;h=5942f76c9ef616d20a0abde55d7ee125651ab9f4;hb=refs%2Ftags%2Feel_5.0.0;hp=1fc8b497fbe13c49ed1aaa6e61e70224ad76fd86;hpb=70fe993324e901254c3e42225f9e5f5d111b1b14;p=src%2Fapp-framework-binder.git diff --git a/include/afb/afb-binding.hpp b/include/afb/afb-binding.hpp index 1fc8b497..5942f76c 100644 --- a/include/afb/afb-binding.hpp +++ b/include/afb/afb-binding.hpp @@ -110,7 +110,8 @@ public: int broadcast(json_object *object) const; int push(json_object *object) const; - void drop(); + void unref(); + void addref(); const char *name() const; }; @@ -219,6 +220,8 @@ public: bool has_permission(const char *permission) const; char *get_application_id() const; + + int get_uid() const; }; /*************************************************************************/ @@ -261,7 +264,8 @@ inline void event::invalidate() { event_.itf = NULL; event_.closure = NULL; } inline int event::broadcast(json_object *object) const { return afb_event_broadcast(event_, object); } inline int event::push(json_object *object) const { return afb_event_push(event_, object); } -inline void event::drop() { afb_event_drop(event_); invalidate(); } +inline void event::unref() { afb_event_unref(event_); invalidate(); } +inline void event::addref() { afb_event_addref(event_); } inline const char *event::name() const { return afb_event_name(event_); } /* args */ @@ -401,6 +405,11 @@ inline char *req::get_application_id() const return req_.itf->get_application_id(req_.closure); } +inline int req::get_uid() const +{ + return req_.itf->get_uid(req_.closure); +} + /* commons */ inline struct sd_event *get_event_loop() { return afb_daemon_get_event_loop_v2(); } @@ -576,7 +585,7 @@ constexpr afb_verb_v2 verbend() return r; } -const afb_binding_v2 binding(const char *name, const struct afb_verb_v2 *verbs, const char *info = nullptr, int (*init)() = nullptr, const char *specification = nullptr, void (*onevent)(const char*, struct json_object*) = nullptr, bool noconcurrency = false, int (*preinit)() = nullptr) +constexpr afb_binding_v2 binding(const char *name, const struct afb_verb_v2 *verbs, const char *info = nullptr, int (*init)() = nullptr, const char *specification = nullptr, void (*onevent)(const char*, struct json_object*) = nullptr, bool noconcurrency = false, int (*preinit)() = nullptr) { afb_binding_v2 r = { 0, 0, 0, 0, 0, 0, 0, 0 }; r.api = name;