Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
include
rosflight
mavrosflight
timer_interface.h
Go to the documentation of this file.
1
/*
2
* Software License Agreement (BSD-3 License)
3
*
4
* Copyright (c) 2020 Jacob Willis.
5
* All rights reserved.
6
*
7
* Redistribution and use in source and binary forms, with or without
8
* modification, are permitted provided that the following conditions are met:
9
*
10
* * Redistributions of source code must retain the above copyright notice, this
11
* list of conditions and the following disclaimer.
12
*
13
* * Redistributions in binary form must reproduce the above copyright notice,
14
* this list of conditions and the following disclaimer in the documentation
15
* and/or other materials provided with the distribution.
16
*
17
* * Neither the name of the copyright holder nor the names of its
18
time_interface_(time_interface),
19
* contributors may be used to endorse or promote products derived from
20
* this software without specific prior written permission.
21
*
22
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
23
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
25
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
26
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
28
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
30
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32
*/
33
39
#ifndef MAVROSFLIGHT_TIMER_INTERFACE_H
40
#define MAVROSFLIGHT_TIMER_INTERFACE_H
41
42
#include <chrono>
43
#include <functional>
44
#include <memory>
45
46
namespace
mavrosflight
47
{
53
class
TimerInterface
54
{
55
public
:
56
virtual
void
start
() = 0;
57
virtual
void
stop
() = 0;
58
};
59
64
class
TimerProviderInterface
65
{
66
public
:
67
virtual
std::shared_ptr<TimerInterface> create_timer(std::chrono::nanoseconds period,
68
std::function<
void
()> callback,
69
const
bool
oneshot =
false
,
70
const
bool
autostart =
true
) = 0;
71
};
72
73
}
// namespace mavrosflight
74
#endif
/* MAVROSFLIGHT_TIMER_INTERFACE_H */
mavrosflight
Definition:
default_logger.h:46
mavrosflight::TimerInterface::stop
virtual void stop()=0
mavrosflight::TimerInterface
Abstracts basic timer functionality.
Definition:
timer_interface.h:53
mavrosflight::TimerInterface::start
virtual void start()=0
mavrosflight::TimerProviderInterface
Provide an interface for creating timers.
Definition:
timer_interface.h:64
rosflight
Author(s): Daniel Koch
, James Jackson
autogenerated on Thu Apr 15 2021 05:09:27