Chromium Code Reviews| Index: remoting/host/native_messaging/log_message_handler.h |
| diff --git a/remoting/host/native_messaging/log_message_handler.h b/remoting/host/native_messaging/log_message_handler.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..ee21f7b3e1128ba0c1dd7a63b98169c9946e853c |
| --- /dev/null |
| +++ b/remoting/host/native_messaging/log_message_handler.h |
| @@ -0,0 +1,44 @@ |
| +// Copyright (c) 2015 The Chromium Authors. All rights reserved. |
|
Sergey Ulanov
2015/08/16 23:22:02
nit: remove (c)
Jamie
2015/08/17 17:32:24
Done.
|
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef REMOTING_HOST_NATIVE_MESSAGIN_LOG_HANDLER_H_ |
| +#define REMOTING_HOST_NATIVE_MESSAGIN_LOG_HANDLER_H_ |
| + |
| +#include "base/callback.h" |
| +#include "base/memory/weak_ptr.h" |
| +#include "base/values.h" |
| + |
| +namespace remoting { |
| + |
| +// Helper class for logging::SetLogMessageHandler to deliver log messages to |
| +// a consistent thread in a thread-safe way and in a format suitable for sending |
| +// over a Native Messaging channel. |
| +class LogMessageHandler { |
| + public: |
| + typedef base::Callback<void (scoped_ptr<base::Value> message)> Delegate; |
|
Jamie
2015/08/11 21:23:13
This is only ever passed a DictionaryValue, but gi
|
| + |
| + explicit LogMessageHandler(const Delegate& delegate); |
| + ~LogMessageHandler(); |
| + |
| + private: |
| + static bool OnLogMessage( |
| + int severity, const char* file, int line, |
| + size_t message_start, const std::string& str); |
| + void PostLogMessageToCorrectThread( |
| + int severity, const char* file, int line, |
| + size_t message_start, const std::string& str); |
| + void SendLogMessageToClient( |
| + int severity, const char* file, int line, |
| + size_t message_start, const std::string& str); |
| + |
| + Delegate delegate_; |
| + bool suppress_logging_; |
| + scoped_refptr<base::SingleThreadTaskRunner> caller_task_runner_; |
| + logging::LogMessageHandlerFunction previous_log_message_handler_; |
| + base::WeakPtrFactory<LogMessageHandler> weak_ptr_factory_; |
| +}; |
| + |
| +} // namespace remoting |
| + |
| +#endif |