blob: f044872e5255246a1dd3d8f941de8e7d9a0d261e [file] [log] [blame]
// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef REMOTING_HOST_PLUGIN_HOST_LOG_HANDLER_H_
#define REMOTING_HOST_PLUGIN_HOST_LOG_HANDLER_H_
#include <string>
namespace remoting {
class HostNPScriptObject;
class HostLogHandler {
public:
// Register the log handler.
// These should be called from the plugin init/destroy methods so that they
// are only called once per plugin process (not once per plugin instance).
static void RegisterLogMessageHandler();
// We don't have the corresponding UnregisterLogMessageHandler because it
// is not safe to call it when there are multiple threads that might be
// logging.
static void RegisterLoggingScriptObject(HostNPScriptObject* script_object);
static void UnregisterLoggingScriptObject(HostNPScriptObject* script_object);
private:
// A Log Message Handler that is called after each LOG message has been
// processed. This must be of type LogMessageHandlerFunction defined in
// base/logging.h.
static bool LogToUI(int severity, const char* file, int line,
size_t message_start, const std::string& str);
};
} // namespace remoting
#endif // REMOTING_HOST_PLUGIN_HOST_LOG_HANDLER_H_