logger_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  * contributors may be used to endorse or promote products derived from
19  * this software without specific prior written permission.
20  *
21  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
24  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
25  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
27  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
28  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
29  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32 
38 #ifndef MAVROSFLIGHT_LOGGER_INTERFACE_H
39 #define MAVROSFLIGHT_LOGGER_INTERFACE_H
40 
41 namespace mavrosflight
42 {
51 template <typename Derived>
53 {
54 public:
55  template <typename... Args>
56  void debug(const char* format, const Args&... args)
57  {
58  Derived& derived = static_cast<Derived&>(*this);
59  derived.debug(format, args...);
60  }
61  template <typename... Args>
62  void debug_throttle(float period, const char* format, const Args&... args)
63  {
64  Derived& derived = static_cast<Derived&>(*this);
65  derived.debug_throttle(period, format, args...);
66  }
67 
68  template <typename... Args>
69  void info(const char* format, const Args&... args)
70  {
71  Derived& derived = static_cast<Derived&>(*this);
72  derived.info(format, args...);
73  }
74  template <typename... Args>
75  void info_throttle(float period, const char* format, const Args&... args)
76  {
77  Derived& derived = static_cast<Derived&>(*this);
78  derived.info_throttle(period, format, args...);
79  }
80 
81  template <typename... Args>
82  void warn(const char* format, const Args&... args)
83  {
84  Derived& derived = static_cast<Derived&>(*this);
85  derived.warn(format, args...);
86  }
87  template <typename... Args>
88  void warn_throttle(float period, const char* format, const Args&... args)
89  {
90  Derived& derived = static_cast<Derived&>(*this);
91  derived.warn_throttle(period, format, args...);
92  }
93 
94  template <typename... Args>
95  void error(const char* format, const Args&... args)
96  {
97  Derived& derived = static_cast<Derived&>(*this);
98  derived.error(format, args...);
99  }
100  template <typename... Args>
101  void error_throttle(float period, const char* format, const Args&... args)
102  {
103  Derived& derived = static_cast<Derived&>(*this);
104  derived.error_throttle(period, format, args...);
105  }
106 
107  template <typename... Args>
108  void fatal(const char* format, const Args&... args)
109  {
110  Derived& derived = static_cast<Derived&>(*this);
111  derived.fatal(format, args...);
112  }
113  template <typename... Args>
114  void fatal_throttle(float period, const char* format, const Args&... args)
115  {
116  Derived& derived = static_cast<Derived&>(*this);
117  derived.fatal_throttle(period, format, args...);
118  }
119 };
120 
121 } // namespace mavrosflight
122 #endif // MAVROSFLIGHT_LOGGER_INTERFACE_H
void warn(const char *format, const Args &...args)
void info(const char *format, const Args &...args)
void error_throttle(float period, const char *format, const Args &...args)
void debug_throttle(float period, const char *format, const Args &...args)
void warn_throttle(float period, const char *format, const Args &...args)
Abstract base class for message handler.
void error(const char *format, const Args &...args)
void fatal(const char *format, const Args &...args)
void fatal_throttle(float period, const char *format, const Args &...args)
void debug(const char *format, const Args &...args)
void info_throttle(float period, const char *format, const Args &...args)


rosflight
Author(s): Daniel Koch , James Jackson
autogenerated on Thu Apr 15 2021 05:09:25