Gazebo Sensors
API Reference
9.0.0
insert_drive_file
Tutorials
library_books
Classes
toc
Namespaces
insert_drive_file
Files
launch
Gazebo Website
Index
List
Hierarchy
Members: All
Members: Functions
Members: Variables
Members: Typedefs
Members: Enumerations
Members: Enumerator
List
Members
Functions
Typedefs
Variables
Enumerations
Enumerator
src
gz-sensors
include
gz
sensors
Manager.hh
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2017 Open Source Robotics Foundation
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*
16
*/
17
#ifndef GZ_SENSORS_MANAGER_HH_
18
#define GZ_SENSORS_MANAGER_HH_
19
20
#include <memory>
21
#include <string>
22
#include <utility>
23
#include <type_traits>
24
#include <vector>
25
#include <sdf/sdf.hh>
26
#include <gz/utils/SuppressWarning.hh>
27
#include <gz/common/Console.hh>
28
#include <gz/sensors/config.hh>
29
#include <gz/sensors/Export.hh>
30
#include <
gz/sensors/Sensor.hh
>
31
#include <
gz/sensors/SensorFactory.hh
>
32
33
namespace
gz
34
{
35
namespace
sensors
36
{
37
// Inline bracket to help doxygen filtering.
38
inline
namespace
GZ_SENSORS_VERSION_NAMESPACE {
39
// Forward declarations
40
class
ManagerPrivate;
41
53
class
GZ_SENSORS_VISIBLE
Manager
54
{
56
public
:
Manager
();
57
59
public
:
virtual
~Manager
();
60
63
public
:
bool
Init
();
64
73
public
:
template
<
typename
SensorType,
typename
SdfType>
74
SensorType *
CreateSensor
(SdfType _sdf)
75
{
76
SensorFactory
sensorFactory;
77
auto
sensor = sensorFactory.
CreateSensor
<SensorType>(_sdf);
78
if
(
nullptr
== sensor)
79
{
80
gzerr <<
"Failed to create sensor."
<<
std::endl
;
81
return
nullptr
;
82
}
83
auto
result = sensor.get();
84
if
(
NO_SENSOR
== this->AddSensor(
std::move
(sensor)))
85
{
86
gzerr <<
"Failed to add sensor."
<<
std::endl
;
87
return
nullptr
;
88
}
89
return
result;
90
}
91
92
98
public
:
SensorId
AddSensor
(
std::unique_ptr<Sensor>
_sensor);
99
103
public
:
gz::sensors::Sensor
*
Sensor
(
104
gz::sensors::SensorId
_id);
105
109
public
:
bool
Remove
(
const
gz::sensors::SensorId
_id);
110
115
public
:
void
RunOnce
(
const
std::chrono::steady_clock::duration &_time,
116
bool
_force =
false
);
117
118
GZ_UTILS_WARN_IGNORE__DLL_INTERFACE_MISSING
120
private
:
std::unique_ptr<ManagerPrivate>
dataPtr;
121
GZ_UTILS_WARN_RESUME__DLL_INTERFACE_MISSING
122
};
123
}
124
}
125
}
126
127
#endif