/*
- * 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 {
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);
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);