sensorctl: add options/features for usability
[platform/core/system/sensord.git] / src / server / sensor_publisher.h
1 /*
2  * sensord
3  *
4  * Copyright (c) 2017 Samsung Electronics Co., Ltd.
5  *
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
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
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.
17  *
18  */
19
20 #ifndef __SENSOR_PUBLISHER_H__
21 #define __SENSOR_PUBLISHER_H__
22
23 #include <sensor_types.h>
24
25 namespace sensor {
26
27 class sensor_observer;
28
29 class sensor_publisher {
30 public:
31         virtual ~sensor_publisher() {}
32
33         virtual bool has_observer(sensor_observer *ob) = 0;
34         virtual void add_observer(sensor_observer *ob) = 0;
35         virtual void remove_observer(sensor_observer *ob) = 0;
36         virtual int notify(const char *type, sensor_data_t *data, int len) = 0;
37 };
38
39 }
40
41 #endif /* __SENSOR_PUBLISHER_H__ */