[email protected] | 4f68ed7 | 2012-10-30 05:24:07 | [diff] [blame] | 1 | // Copyright (c) 2012 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 | #include "ipc/ipc_message.h" // For IPC_MESSAGE_LOG_ENABLED. | ||||
6 | |||||
avi | a9aa7a8 | 2015-12-25 03:06:31 | [diff] [blame^] | 7 | #include <stdint.h> |
8 | |||||
[email protected] | 4f68ed7 | 2012-10-30 05:24:07 | [diff] [blame] | 9 | #if defined(IPC_MESSAGE_LOG_ENABLED) |
10 | #define IPC_MESSAGE_MACROS_LOG_ENABLED | ||||
11 | #include "content/public/common/content_ipc_logging.h" | ||||
12 | #define IPC_LOG_TABLE_ADD_ENTRY(msg_id, logger) \ | ||||
13 | content::RegisterIPCLogger(msg_id, logger) | ||||
14 | #include "content/common/all_messages.h" | ||||
15 | #endif | ||||
16 | |||||
17 | #if defined(IPC_MESSAGE_LOG_ENABLED) | ||||
18 | |||||
[email protected] | 14c1c23 | 2013-06-11 17:52:44 | [diff] [blame] | 19 | #include "base/containers/hash_tables.h" |
[email protected] | 4f68ed7 | 2012-10-30 05:24:07 | [diff] [blame] | 20 | #include "base/lazy_instance.h" |
21 | |||||
22 | namespace content { | ||||
23 | |||||
24 | namespace { | ||||
25 | |||||
avi | a9aa7a8 | 2015-12-25 03:06:31 | [diff] [blame^] | 26 | base::LazyInstance<base::hash_map<uint32_t, LogFunction>>::Leaky |
[email protected] | 4f68ed7 | 2012-10-30 05:24:07 | [diff] [blame] | 27 | g_log_function_mapping = LAZY_INSTANCE_INITIALIZER; |
28 | |||||
29 | } // namespace | ||||
30 | |||||
avi | a9aa7a8 | 2015-12-25 03:06:31 | [diff] [blame^] | 31 | void RegisterIPCLogger(uint32_t msg_id, LogFunction logger) { |
[email protected] | 4f68ed7 | 2012-10-30 05:24:07 | [diff] [blame] | 32 | if (g_log_function_mapping == NULL) |
33 | IPC::Logging::set_log_function_map(g_log_function_mapping.Pointer()); | ||||
34 | g_log_function_mapping.Get()[msg_id] = logger; | ||||
35 | } | ||||
36 | |||||
37 | } // content | ||||
38 | |||||
39 | #endif |