mars_lib 0.1.0.2abe2576fe7f
Modular and Robust Sensor-Fusion
Loading...
Searching...
No Matches
buffer_data_type.h
Go to the documentation of this file.
1// Copyright (C) 2021 Christian Brommer, Control of Networked Systems, University of Klagenfurt, Austria.
2//
3// All rights reserved.
4//
5// This software is licensed under the terms of the BSD-2-Clause-License with
6// no commercial use allowed, the full terms of which are made available
7// in the LICENSE file. No license in patents is granted.
8//
9// You can contact the author at <christian.brommer@ieee.org>
10
11#ifndef BUFFERDATATYPE_H
12#define BUFFERDATATYPE_H
13
14#include <memory>
15#include <utility>
16
17namespace mars
18{
36{
37public:
38 BufferDataType() = default;
39
47 BufferDataType(std::shared_ptr<void> meas)
48 {
49 set_measurement(meas);
50 }
51
52 BufferDataType(std::shared_ptr<void> core, std::shared_ptr<void> sensor)
53 {
54 set_states(core, sensor);
55 }
56
57 inline void set_core_state(std::shared_ptr<void> core)
58 {
59 core_state_ = core;
60 has_core_state_ = true;
61 }
62
63 inline void set_sensor_state(std::shared_ptr<void> sensor)
64 {
65 sensor_state_ = sensor;
66 has_sensor_state_ = true;
67 }
68
69 inline void set_states(std::shared_ptr<void> core, std::shared_ptr<void> sensor)
70 {
71 set_core_state(core);
72 set_sensor_state(sensor);
73 }
74
75 inline void set_measurement(std::shared_ptr<void> meas)
76 {
77 measurement_ = meas;
78 }
79
80 void ClearStates(void)
81 {
82 core_state_ = nullptr;
83 sensor_state_ = nullptr;
84 has_core_state_ = false;
85 has_sensor_state_ = false;
86 }
87
88 inline bool HasCoreStates(void) const
89 {
90 return has_core_state_;
91 }
92
93 inline bool HasSensorStates(void) const
94 {
95 return has_sensor_state_;
96 }
97
98 inline bool HasStates(void) const
99 {
100 return HasCoreStates() || HasSensorStates();
101 }
102
103 std::shared_ptr<void> core_state_{ nullptr };
104 std::shared_ptr<void> sensor_state_{ nullptr };
105 std::shared_ptr<void> measurement_{ nullptr };
106
107private:
108 bool has_core_state_ = { false };
109 bool has_sensor_state_ = { false };
110};
111} // namespace mars
112#endif // BUFFERDATATYPE_H
The BufferDataType binds the core and sensor state in form of a shared void pointer.
Definition buffer_data_type.h:36
bool HasCoreStates(void) const
Definition buffer_data_type.h:88
void set_measurement(std::shared_ptr< void > meas)
Definition buffer_data_type.h:75
std::shared_ptr< void > core_state_
Core state data.
Definition buffer_data_type.h:103
bool HasSensorStates(void) const
Definition buffer_data_type.h:93
void set_core_state(std::shared_ptr< void > core)
Definition buffer_data_type.h:57
void ClearStates(void)
Definition buffer_data_type.h:80
BufferDataType(std::shared_ptr< void > core, std::shared_ptr< void > sensor)
Definition buffer_data_type.h:52
bool has_sensor_state_
Definition buffer_data_type.h:109
bool HasStates(void) const
Definition buffer_data_type.h:98
void set_states(std::shared_ptr< void > core, std::shared_ptr< void > sensor)
Definition buffer_data_type.h:69
BufferDataType()=default
BufferDataType(std::shared_ptr< void > meas)
BufferDataType.
Definition buffer_data_type.h:47
void set_sensor_state(std::shared_ptr< void > sensor)
Definition buffer_data_type.h:63
std::shared_ptr< void > sensor_state_
Sensor state data.
Definition buffer_data_type.h:104
std::shared_ptr< void > measurement_
Sensor measurement.
Definition buffer_data_type.h:105
bool has_core_state_
Definition buffer_data_type.h:108
Definition buffer.h:27