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
|
/*
* Copyright 2018-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* Copyright 2019 Konsulko Group
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0/
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
#include "afb/AFBApiImpl.h"
#include "afb/include/AFBEventImpl.h"
#include "utilities/logging/Logger.h"
extern "C" {
#define AFB_BINDING_VERSION 3
#include <afb/afb-binding.h>
}
static std::string TAG = "vshlcore::afb::AFBApiImpl";
/**
* Specifies the severity level of a log message
*/
using Level = vshlcore::common::interfaces::ILogger::Level;
using namespace vshlcore::common::interfaces;
using namespace vshlcore::utilities::logging;
namespace vshlcore {
namespace afb {
std::unique_ptr<AFBApiImpl> AFBApiImpl::create(afb_api_t api) {
return std::unique_ptr<AFBApiImpl>(new AFBApiImpl(api));
}
AFBApiImpl::AFBApiImpl(afb_api_t api) : mApi(api), mLogger(Logger::create(api)) {
}
AFBApiImpl::~AFBApiImpl() {
}
std::shared_ptr<IAFBApi::IAFBEvent> AFBApiImpl::createEvent(const std::string& eventName) {
return AFBEventImpl::create(mLogger, mApi, eventName);
}
int AFBApiImpl::callSync(
const std::string& api,
const std::string& verb,
struct json_object* request,
struct json_object** result,
std::string& error,
std::string& info) {
char* errorStr = NULL;
char* infoStr = NULL;
int rc = afb_api_call_sync(mApi, api.c_str(), verb.c_str(), request, result, &errorStr, &infoStr);
if (errorStr) {
error = errorStr;
free(errorStr);
}
if (infoStr) {
info = infoStr;
free(infoStr);
}
return rc;
}
} // namespace afb
} // namespace vshl
|