libqicore-api  2.4.3.28
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
loglistener.hpp
Go to the documentation of this file.
1 /*
2 ** Author(s):
3 ** - Herve Cuche <hcuche@aldebaran-robotics.com>
4 ** - Matthieu Nottale <mnottale@aldebaran-robotics.com>
5 **
6 ** Copyright (C) 2013 Aldebaran Robotics
7 */
8 
9 #ifndef LOGLISTENER_HPP_
10 #define LOGLISTENER_HPP_
11 
12 #include <string>
13 
14 #include <qi/log.hpp>
15 
16 #include <qicore/api.hpp>
17 #include <qicore/logmanager.hpp>
18 #include <qicore/logmessage.hpp>
19 
20 #include <qi/signal.hpp>
21 #include <qi/property.hpp>
22 #include <qi/anyobject.hpp>
23 
24 namespace qi
25 {
27 {
28 public:
30  {
31  }
32  virtual ~LogListener()
33  {
34  }
35 
36  virtual void setLevel(qi::LogLevel level) = 0;
37  virtual void addFilter(const std::string& filter, qi::LogLevel level) = 0;
38 
40  virtual void clearFilters() = 0;
41 
42 public:
43  qi::Property<qi::LogLevel> logLevel;
44  qi::Signal<qi::LogMessage> onLogMessage;
45  qi::Signal<std::vector<qi::LogMessage> > onLogMessages;
46  qi::Signal<std::vector<qi::LogMessage> > onLogMessagesWithBacklog;
47 
48 protected:
49  LogListener(qi::Property<qi::LogLevel>::Getter get,
50  qi::Property<qi::LogLevel>::Setter set,
51  boost::function<void(bool)> func = boost::function<void(bool)>())
52  : logLevel(get, set)
53  , onLogMessagesWithBacklog(func)
54  {
55  }
56 };
57 
58 typedef qi::Object<LogListener> LogListenerPtr;
59 } // !qi
60 
61 namespace qi
62 {
63 namespace detail
64 {
65  template <>
66  struct QICORE_API ForceProxyInclusion<qi::LogListener>
67  {
68  bool dummyCall();
69  };
70 }
71 }
72 
73 #endif // !LOGLISTENER_HPP_
qi::Signal< std::vector< qi::LogMessage > > onLogMessages
Definition: loglistener.hpp:45
qi::Signal< std::vector< qi::LogMessage > > onLogMessagesWithBacklog
Definition: loglistener.hpp:46
virtual ~LogListener()
Definition: loglistener.hpp:32
qi::Property< qi::LogLevel > logLevel
Definition: loglistener.hpp:43
qi::Signal< qi::LogMessage > onLogMessage
Definition: loglistener.hpp:44
qi::Object< LogListener > LogListenerPtr
Definition: loglistener.hpp:58
LogListener(qi::Property< qi::LogLevel >::Getter get, qi::Property< qi::LogLevel >::Setter set, boost::function< void(bool)> func=boost::function< void(bool)>())
Definition: loglistener.hpp:49
#define QICORE_API
Definition: api.hpp:14