X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fsession.h;h=bb37a652cb1b4ee945ffadfc95cab820a950c896;hb=c7e9786d408f13d8f8f43c6b68da916bbb1ed5f3;hp=f6d67fe65fa0965f6cd31812d444146c84d9748c;hpb=4256f76f127ff982415e875567da08408087f326;p=src%2Fapp-framework-binder.git diff --git a/src/session.h b/src/session.h index f6d67fe6..bb37a652 100644 --- a/src/session.h +++ b/src/session.h @@ -1,5 +1,5 @@ /* - * Copyright 2016 IoT.bzh + * Copyright (C) 2016 "IoT.bzh" * Author: José Bollo * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -18,19 +18,12 @@ #pragma once struct json_object; - -struct afb_context -{ - void *context; - void (*free_context)(void*); -}; - -extern void *afb_context_get(struct afb_context *actx); -extern void afb_context_set(struct afb_context *actx, void *context, void (*free_context)(void*)); +struct AFB_clientCtx; struct afb_event_listener_itf { void (*send)(void *closure, const char *event, struct json_object *object); + int (*expects)(void *closure, const char *event); }; struct afb_event_listener @@ -39,24 +32,11 @@ struct afb_event_listener void *closure; }; -struct afb_event_listener_list; - -struct AFB_clientCtx -{ - int created; - unsigned refcount; - time_t expiration; // expiration time of the token - struct afb_context *contexts; - char uuid[37]; // long term authentication of remote client - char token[37]; // short term authentication of remote client - struct afb_event_listener_list *listeners; -}; - extern void ctxStoreInit (int max_session_count, int timeout, const char *initok, int context_count); -extern struct AFB_clientCtx *ctxClientGetForUuid (const char *uuid); -extern struct AFB_clientCtx *ctxClientGet(struct AFB_clientCtx *clientCtx); -extern void ctxClientPut(struct AFB_clientCtx *clientCtx); +extern struct AFB_clientCtx *ctxClientGetSession (const char *uuid, int *created); +extern struct AFB_clientCtx *ctxClientAddRef(struct AFB_clientCtx *clientCtx); +extern void ctxClientUnref(struct AFB_clientCtx *clientCtx); extern void ctxClientClose (struct AFB_clientCtx *clientCtx); extern int ctxClientEventListenerAdd(struct AFB_clientCtx *clientCtx, struct afb_event_listener listener); @@ -64,6 +44,11 @@ extern void ctxClientEventListenerRemove(struct AFB_clientCtx *clientCtx, struct extern int ctxClientEventSend(struct AFB_clientCtx *clientCtx, const char *event, struct json_object *object); extern int ctxTokenCheck (struct AFB_clientCtx *clientCtx, const char *token); -extern int ctxTokenCheckLen (struct AFB_clientCtx *clientCtx, const char *token, size_t length); extern void ctxTokenNew (struct AFB_clientCtx *clientCtx); +extern const char *ctxClientGetUuid (struct AFB_clientCtx *clientCtx); +extern const char *ctxClientGetToken (struct AFB_clientCtx *clientCtx); + +extern void *ctxClientValueGet(struct AFB_clientCtx *clientCtx, int index); +extern void ctxClientValueSet(struct AFB_clientCtx *clientCtx, int index, void *value, void (*free_value)(void*)); +