Mir
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
message_processor_report.h
Go to the documentation of this file.
1 /*
2  * Copyright © 2013 Canonical Ltd.
3  *
4  * This program is free software: you can redistribute it and/or modify it
5  * under the terms of the GNU General Public License version 3,
6  * as published by the Free Software Foundation.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program. If not, see <http://www.gnu.org/licenses/>.
15  *
16  * Authored by: Alan Griffiths <alan@octopull.co.uk>
17  */
18 
19 #ifndef MIR_REPORT_LOGGING_MESSAGE_PROCESSOR_REPORT_H_
20 #define MIR_REPORT_LOGGING_MESSAGE_PROCESSOR_REPORT_H_
21 
23 #include "mir/time/clock.h"
24 
25 #include <memory>
26 #include <mutex>
27 #include <unordered_map>
28 
29 namespace mir
30 {
31 namespace logging
32 {
33 class Logger;
34 }
35 namespace report
36 {
37 namespace logging
38 {
39 namespace detail
40 {
42 {
44  std::string method;
45  std::string exception;
46 };
47 
48 typedef std::unordered_map<int, InvocationDetails> Invocations;
49 
51 {
53 };
54 
55 typedef std::unordered_map<void const*, MediatorDetails> Mediators;
56 }
57 
59 {
60 public:
62  std::shared_ptr<mir::logging::Logger> const& log,
63  std::shared_ptr<time::Clock> const& clock);
64 
65  void received_invocation(void const* mediator, int id, std::string const& method);
66 
67  void completed_invocation(void const* mediator, int id, bool result);
68 
69  void unknown_method(void const* mediator, int id, std::string const& method);
70 
71  void exception_handled(void const* mediator, int id, std::exception const& error);
72 
73  void exception_handled(void const* mediator, std::exception const& error);
74 
75  void sent_event(void const* mediator, MirSurfaceEvent const& event);
76 
77  ~MessageProcessorReport() noexcept(true);
78 
79 private:
80  std::shared_ptr<mir::logging::Logger> const log;
81  std::shared_ptr<time::Clock> const clock;
82  std::mutex mutex;
83  detail::Mediators mediators;
84 };
85 }
86 }
87 }
88 
89 #endif /* MIR_REPORT_LOGGING_MESSAGE_PROCESSOR_REPORT_H_ */
std::chrono::high_resolution_clock::time_point Timestamp
Definition: clock.h:29
void sent_event(void const *mediator, MirSurfaceEvent const &event)
Definition: message_processor_report.cpp:166
Definition: event.h:189
Definition: message_processor_report.h:58
MessageProcessorReport()
Definition: message_processor_report.h:35
std::unordered_map< void const *, MediatorDetails > Mediators
Definition: message_processor_report.h:55
void exception_handled(void const *mediator, int id, std::exception const &error)
Definition: message_processor_report.cpp:137
input_rectangles report(report)
Definition: message_processor_report.h:32
void unknown_method(void const *mediator, int id, std::string const &method)
Definition: message_processor_report.cpp:125
void completed_invocation(void const *mediator, int id, bool result)
Definition: message_processor_report.cpp:87
std::string method
Definition: message_processor_report.h:44
Invocations current_invocations
Definition: message_processor_report.h:52
error
Definition: connector_report_tp.h:60
Definition: message_processor_report.h:50
~MessageProcessorReport() noexcept(true)
Definition: message_processor_report.cpp:42
std::string exception
Definition: message_processor_report.h:45
Definition: message_processor_report.h:41
std::unordered_map< int, InvocationDetails > Invocations
Definition: message_processor_report.h:48
void received_invocation(void const *mediator, int id, std::string const &method)
Definition: message_processor_report.cpp:73
time::Timestamp start
Definition: message_processor_report.h:43

Copyright © 2012,2013 Canonical Ltd.
Generated on Fri Apr 11 21:14:53 UTC 2014