aboutsummaryrefslogtreecommitdiffstats
path: root/ctl-lib/afb-definitions_v2.h
blob: 66c5ed2f5e21695a414f8427cf5795707e59869f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
/*
 * Copyright (C) 2016-2018 "IoT.bzh"
 * Author Fulup Ar Foll <fulup@iot.bzh>
 * Contrib Jonathan Aillet <jonathan.aillet@iot.bzh>
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, something express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 */

#ifndef _AFB_DEFINITIONS_V2_INCLUDE_
#define _AFB_DEFINITIONS_V2_INCLUDE_

// Legacy DYNAPI support. Deprecated and will be removed.
#if(AFB_BINDING_VERSION == 2)
#include <afb/afb-binding.h>

typedef struct afb_req AFB_ReqT;
typedef void* AFB_ApiT;
#define AFB_ReqNone (struct afb_req){0,0}

typedef struct afb_event AFB_EventT;
#define AFB_EventPush afb_event_push
#define AFB_ReqSubscribe  afb_req_subscribe
#define AFB_EventIsValid(event) afb_event_is_valid(event)
#define AFB_EventMake(api, name) afb_daemon_make_event(name)

#define AFB_ReqJson(request) afb_req_x1_json(request)
#define AFB_ReqSuccess  afb_req_success
#define AFB_ReqSuccessF afb_req_success_f
#define AFB_ReqFail    afb_req_fail
#define AFB_ReqFailF   afb_req_fail_f

#define AFB_ReqNotice(request, ...)   AFB_NOTICE (__VA_ARGS__)
#define AFB_ReqWarning(request, ...)  AFB_WARNING (__VA_ARGS__)
#define AFB_ReqDebug(request, ...)    AFB_DEBUG (__VA_ARGS__)
#define AFB_ReqError(request, ...)    AFB_ERROR (__VA_ARGS__)
#define AFB_ReqInfo(request, ...)     AFB_INFO (__VA_ARGS__)

#define AFB_ApiVerbose(api, level, ...) afb_daemon_verbose_v2(level,__VA_ARGS__)
#define AFB_ApiNotice(api, ...)   AFB_NOTICE (__VA_ARGS__)
#define AFB_ApiWarning(api, ...)  AFB_WARNING (__VA_ARGS__)
#define AFB_ApiDebug(api, ...)    AFB_DEBUG (__VA_ARGS__)
#define AFB_ApiError(api, ...)    AFB_ERROR (__VA_ARGS__)
#define AFB_ApiInfo(api, ...)     AFB_INFO (__VA_ARGS__)

#define AFB_GetApiSettings(api) json_object_new_object()

#define AFB_ReqIsValid(request)   afb_req_is_valid(request)
#define AFB_EvtIsValid(evtHandle) afb_event_is_valid(evtHandle)

#define AFB_ServiceCall(api, ...) afb_service_call(__VA_ARGS__)
#define AFB_ServiceSync(api, ...) afb_service_call_sync(__VA_ARGS__)

#define AFB_RequireApi(api, ...)  afb_daemon_require_api(__VA_ARGS__)

#define AFB_GetEventLoop(api) afb_daemon_get_event_loop()
#define AFB_RootDirGetFD(api) afb_daemon_rootdir_get_fd()
#define AFB_ReqVCBData afb_req_get_vcbdata

#define AFB_ReqSetLOA(request, level) afb_req_session_set_LOA(request, level)

static inline void* AFB_ClientCtxSet(afb_req request, int replace, void *(*create_context)(void *closure), void (*free_context)(void*), void *closure)
{
    void *ctx = create_context(closure);
    if(ctx)
    {afb_req_context_set(request, ctx, free_context);}
    return ctx;
}

#define AFB_ClientCtxClear(request) afb_req_context_clear(request)

#define AFB_ApiVerbs afb_verb_v2

#endif
#endif /* _AFB_DEFINITIONS_INCLUDE_ */