aboutsummaryrefslogtreecommitdiffstats
path: root/ctl-lib/afb-definitions.h
blob: 116be69d3ee4e0ae2a3e425811a5bf2772de4280 (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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
/*
 * 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_INCLUDE_
#define _AFB_DEFINITIONS_INCLUDE_


#if(AFB_BINDING_VERSION != 2)
#include <afb/afb-binding.h>
#define AFB_ReqNone NULL
typedef struct afb_req_x2* AFB_ReqT;
typedef struct afb_api_x3*  AFB_ApiT;

typedef struct afb_event_x2* AFB_EventT;
#define AFB_EventIsValid(eventid) eventid
#define AFB_EventPush afb_event_x2_push
#define AFB_ReqSubscribe  afb_req_x2_subscribe

#define AFB_ReqJson(request) afb_req_x2_json(request)

#define AFB_ReqSuccess(r,o,i)		afb_req_x2_reply(r,o,NULL,i)
#define AFB_ReqSuccessF(r,o,...)	afb_req_x2_reply_f(r,o,NULL,__VA_ARGS__)
#define AFB_ReqFail(r,e,i)		afb_req_x2_reply(r,NULL,e,i)
#define AFB_ReqFailF(r,e,...)		afb_req_x2_reply_f(r,NULL,e,__VA_ARGS__)

#define AFB_ReqNotice(request, ...)   AFB_REQ_NOTICE (request, __VA_ARGS__)
#define AFB_ReqWarning(request, ...)  AFB_REQ_WARNING (request, __VA_ARGS__)
#define AFB_ReqDebug(request, ...)    AFB_REQ_DEBUG (request, __VA_ARGS__)
#define AFB_ReqError(request, ...)    AFB_REQ_ERROR (request, __VA_ARGS__)
#define AFB_ReqInfo(request, ...)     AFB_REQ_INFO (request, __VA_ARGS__)


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

/*
 * Binder version < FF.RC4, we miss two defined calls.
 * This is for compatibility purpose that we defined them here.
 */
#if ! defined(afb_service_call_legacy) || ! defined(afb_service_call_sync_legacy)
#define afb_service_call_legacy afb_api_x3_call_legacy
#define afb_service_call_sync_legacy afb_api_x3_call_sync_legacy
#endif


#define AFB_ClientCtxClear(request) afb_req_x2_context_clear(request)

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


typedef struct {
    const char *verb;                       /* name of the verb, NULL only at end of the array */
    void (*callback)(AFB_ReqT req);   /* callback function implementing the verb */
    const struct afb_auth *auth;		/* required authorisation, can be NULL */
    const char *info;			/* some info about the verb, can be NULL */
    uint32_t session;
} AFB_ApiVerbs;


#define AFB_EventMake(api, name) afb_api_x3_make_event_x2(api, name)
#define AFB_ApiVerbose(api, level, ...) afb_api_x3_verbose(api, level, __VA_ARGS__)
#define AFB_ApiNotice(api, ...)   AFB_API_NOTICE_V3 (api, __VA_ARGS__)
#define AFB_ApiWarning(api, ...)  AFB_API_WARNING_V3 (api, __VA_ARGS__)
#define AFB_ApiDebug(api, ...)    AFB_API_DEBUG_V3 (api, __VA_ARGS__)
#define AFB_ApiError(api, ...)    AFB_API_ERROR_V3 (api, __VA_ARGS__)
#define AFB_ApiInfo(api, ...)     AFB_API_INFO_V3 (api, __VA_ARGS__)

#define AFB_GetApiSettings afb_api_x3_settings

#define AFB_ServiceCall(api, ...) afb_api_x3_call_legacy(api, __VA_ARGS__)
#define AFB_ServiceSync(api, ...) afb_api_x3_call_sync_legacy(api, __VA_ARGS__)

#define AFB_ApiCall(api, ...) afb_api_x3_call(api, __VA_ARGS__)
#define AFB_ApiSync(api, ...) afb_api_x3_call_sync(api, __VA_ARGS__)

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

#define AFB_GetEventLoop(api) afb_api_x3_get_event_loop(api)
#define AFB_RootDirGetFD(api) afb_api_x3_rootdir_get_fd(api)
#define AFB_ReqVCBData afb_req_x2_get_vcbdata
#define AFB_ReqGetApi afb_req_get_api

#define AFB_NewApi afb_api_x3_new_api

#define  AFB_ApiAddVerb afb_api_x3_add_verb

#define AFB_ApiSetUserData afb_api_x3_set_userdata
#define AFB_ApiGetUserData afb_api_x3_get_userdata

#define AFB_ApiOnEvent afb_api_x3_on_event
#define AFB_ApiOnInit afb_api_x3_on_init
#define AFB_ApiSeal afb_api_x3_seal

#define AFB_ClientCtxSet(request, replace, createCB, freeCB, handle) afb_req_x2_context(request, replace, createCB, freeCB, handle)

#endif

#include "afb-definitions_v2.h"

#endif /* _AFB_DEFINITIONS_INCLUDE_ */