| Index: content/common/content_ipc_logging.cc
|
| diff --git a/content/common/content_ipc_logging.cc b/content/common/content_ipc_logging.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..114d320845052badde90322e75c9f89eb372f83e
|
| --- /dev/null
|
| +++ b/content/common/content_ipc_logging.cc
|
| @@ -0,0 +1,37 @@
|
| +// Copyright (c) 2012 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.
|
| +
|
| +#include "ipc/ipc_message.h" // For IPC_MESSAGE_LOG_ENABLED.
|
| +
|
| +#if defined(OS_POSIX) && defined(IPC_MESSAGE_LOG_ENABLED)
|
| +#define IPC_MESSAGE_MACROS_LOG_ENABLED
|
| +#include "content/public/common/content_ipc_logging.h"
|
| +#define IPC_LOG_TABLE_ADD_ENTRY(msg_id, logger) \
|
| + content::RegisterIPCLogger(msg_id, logger)
|
| +#include "content/common/all_messages.h"
|
| +#endif
|
| +
|
| +#if defined(IPC_MESSAGE_LOG_ENABLED)
|
| +
|
| +#include "base/hash_tables.h"
|
| +#include "base/lazy_instance.h"
|
| +
|
| +namespace content {
|
| +
|
| +namespace {
|
| +
|
| +base::LazyInstance<base::hash_map<uint32, LogFunction> >::Leaky
|
| + g_log_function_mapping = LAZY_INSTANCE_INITIALIZER;
|
| +
|
| +} // namespace
|
| +
|
| +void RegisterIPCLogger(uint32 msg_id, LogFunction logger) {
|
| + if (g_log_function_mapping == NULL)
|
| + IPC::Logging::set_log_function_map(g_log_function_mapping.Pointer());
|
| + g_log_function_mapping.Get()[msg_id] = logger;
|
| +}
|
| +
|
| +} // content
|
| +
|
| +#endif
|
|
|