add function to get the current LOA
[src/app-framework-binder.git] / src / afb-context.h
index eeb4def..f140238 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2016 IoT.bzh
+ * Copyright (C) 2016, 2017 "IoT.bzh"
  * Author: José Bollo <jose.bollo@iot.bzh>
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
 
 #pragma once
 
-struct AFB_clientCtx;
+struct afb_session;
 
 struct afb_context
 {
-       struct AFB_clientCtx *session;
+       struct afb_session *session;
        union {
                unsigned flags;
                struct {
@@ -32,12 +32,18 @@ struct afb_context
                        unsigned refreshed: 1;
                        unsigned closing: 1;
                        unsigned closed: 1;
+                       unsigned loa_in: 3;
+                       unsigned loa_out: 3;
+                       unsigned loa_changing: 1;
+                       unsigned loa_changed: 1;
                };
        };
-       int api_index;
+       void *api_key;
+       struct afb_context *super;
 };
 
-extern void afb_context_init(struct afb_context *context, struct AFB_clientCtx *session, const char *token);
+extern void afb_context_init(struct afb_context *context, struct afb_session *session, const char *token);
+extern void afb_context_subinit(struct afb_context *context, struct afb_context *super);
 extern int afb_context_connect(struct afb_context *context, const char *uuid, const char *token);
 extern void afb_context_disconnect(struct afb_context *context);
 extern const char *afb_context_sent_token(struct afb_context *context);
@@ -49,5 +55,7 @@ extern void afb_context_set(struct afb_context *context, void *value, void (*fre
 extern void afb_context_close(struct afb_context *context);
 extern void afb_context_refresh(struct afb_context *context);
 extern int afb_context_check(struct afb_context *context);
-extern int afb_context_create(struct afb_context *context);
+extern int afb_context_check_loa(struct afb_context *context, unsigned loa);
+extern int afb_context_change_loa(struct afb_context *context, unsigned loa);
+extern unsigned afb_context_get_loa(struct afb_context *context);