1// Copyright 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CONTENT_PUBLIC_RENDERER_MEDIA_WEBRTC_LOG_MESSAGE_DELEGATE_H_
6#define CONTENT_PUBLIC_RENDERER_MEDIA_WEBRTC_LOG_MESSAGE_DELEGATE_H_
7
8#include <string>
9
10#include "content/common/content_export.h"
11
12namespace content {
13
14// This interface is implemented by a handler in the embedder and used for
15// initializing the logging and passing log messages to the handler. The
16// purpose is to forward mainly libjingle log messages to embedder (besides
17// the ordinary logging stream) that will be used for diagnostic purposes.
18class WebRtcLogMessageDelegate {
19 public:
20  // Pass a diagnostic WebRTC log message.
21  virtual void LogMessage(const std::string& message) = 0;
22
23 protected:
24  virtual ~WebRtcLogMessageDelegate() {}
25};
26
27// Must be called on IO thread.
28CONTENT_EXPORT void InitWebRtcLoggingDelegate(
29    WebRtcLogMessageDelegate* delegate);
30
31// Must be called on IO thread.
32CONTENT_EXPORT void InitWebRtcLogging();
33
34}  // namespace content
35
36#endif  // CONTENT_PUBLIC_RENDERER_MEDIA_WEBRTC_LOG_MESSAGE_DELEGATE_H_
37