diff options
author | José Bollo <jose.bollo@iot.bzh> | 2018-02-07 17:45:37 +0100 |
---|---|---|
committer | José Bollo <jose.bollo@iot.bzh> | 2018-02-09 18:53:24 +0100 |
commit | 52f9783ce6b488f178f26ec07e9e11ae4442e178 (patch) | |
tree | f2aa50763792fb01df3b54dd98e5b4c75ddb573a /src/afb-hook.h | |
parent | d45426257d5149c735e33e3055220625a919e7bc (diff) |
afb-hook: Add hooks for session
Change-Id: I4fbd6bf57958abb366a742b12afb92bfc03ad299
Diffstat (limited to 'src/afb-hook.h')
-rw-r--r-- | src/afb-hook.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/afb-hook.h b/src/afb-hook.h index c9ecb331..3ab98468 100644 --- a/src/afb-hook.h +++ b/src/afb-hook.h @@ -35,6 +35,7 @@ struct afb_hook_xreq; struct afb_hook_ditf; struct afb_hook_svc; struct afb_hook_evt; +struct afb_hook_session; struct afb_hook_global; /********************************************************* @@ -332,6 +333,42 @@ extern struct afb_hook_evt *afb_hook_addref_evt(struct afb_hook_evt *hook); extern void afb_hook_unref_evt(struct afb_hook_evt *hook); /********************************************************* +* section hooking session (session interface) +*********************************************************/ + +#define afb_hook_flag_session_create 0x000001 +#define afb_hook_flag_session_close 0x000002 +#define afb_hook_flag_session_destroy 0x000004 +#define afb_hook_flag_session_renew 0x000008 +#define afb_hook_flag_session_addref 0x000010 +#define afb_hook_flag_session_unref 0x000020 + +#define afb_hook_flags_session_common (afb_hook_flag_session_create|afb_hook_flag_session_close\ + |afb_hook_flag_session_renew) +#define afb_hook_flags_session_all (afb_hook_flags_session_common|afb_hook_flag_session_destroy\ + |afb_hook_flag_session_addref|afb_hook_flag_session_unref) + +struct afb_hook_session_itf { + void (*hook_session_create)(void *closure, const struct afb_hookid *hookid, struct afb_session *session); + void (*hook_session_close)(void *closure, const struct afb_hookid *hookid, struct afb_session *session); + void (*hook_session_destroy)(void *closure, const struct afb_hookid *hookid, struct afb_session *session); + void (*hook_session_renew)(void *closure, const struct afb_hookid *hookid, struct afb_session *session); + void (*hook_session_addref)(void *closure, const struct afb_hookid *hookid, struct afb_session *session); + void (*hook_session_unref)(void *closure, const struct afb_hookid *hookid, struct afb_session *session); +}; + +extern void afb_hook_session_create(struct afb_session *session); +extern void afb_hook_session_close(struct afb_session *session); +extern void afb_hook_session_destroy(struct afb_session *session); +extern void afb_hook_session_renew(struct afb_session *session); +extern void afb_hook_session_addref(struct afb_session *session); +extern void afb_hook_session_unref(struct afb_session *session); + +extern struct afb_hook_session *afb_hook_create_session(const char *pattern, int flags, struct afb_hook_session_itf *itf, void *closure); +extern struct afb_hook_session *afb_hook_addref_session(struct afb_hook_session *hook); +extern void afb_hook_unref_session(struct afb_hook_session *hook); + +/********************************************************* * section hooking global (global interface) *********************************************************/ |