4 * Copyright (c) 2015 Samsung Electronics Co., Ltd.
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
20 #pragma once // _INJECT_MANAGER_H_
22 #include <sensor_internal.h>
25 #include "sensor_manager.h"
27 #define REGISTER_INJECTOR(sensor_type, sensor_name, injector_type) \
28 static void __attribute__((constructor)) reg_injector(void) \
30 struct injector_info info; \
31 info.type = (sensor_type); \
32 info.name = (sensor_name); \
33 info.injector = new(std::nothrow) (injector_type)(); \
34 if (!info.injector) { \
35 _E("ERROR: Failed to allocate memory(%s)", #injector_type); \
38 injector_manager::register_injector(info); \
41 struct injector_info {
44 injector_interface *injector;
47 class injector_manager : public sensor_manager {
50 virtual ~injector_manager();
52 bool process(int argc, char *argv[]);
54 static bool register_injector(injector_info info);
56 injector_interface *get_injector(sensor_type_t type, const char *name);