Left: | ||
Right: |
LEFT | RIGHT |
---|---|
1 /* | 1 /* |
2 * This file is part of Adblock Plus <https://adblockplus.org/>, | 2 * This file is part of Adblock Plus <https://adblockplus.org/>, |
3 * Copyright (C) 2006-2015 Eyeo GmbH | 3 * Copyright (C) 2006-2016 Eyeo GmbH |
4 * | 4 * |
5 * Adblock Plus is free software: you can redistribute it and/or modify | 5 * Adblock Plus is free software: you can redistribute it and/or modify |
6 * it under the terms of the GNU General Public License version 3 as | 6 * it under the terms of the GNU General Public License version 3 as |
7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
8 * | 8 * |
9 * Adblock Plus is distributed in the hope that it will be useful, | 9 * Adblock Plus is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
12 * GNU General Public License for more details. | 12 * GNU General Public License for more details. |
13 * | 13 * |
14 * You should have received a copy of the GNU General Public License | 14 * You should have received a copy of the GNU General Public License |
15 * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. | 15 * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. |
16 */ | 16 */ |
17 | 17 |
18 #ifndef _PLUGIN_DEBUG_H_ | 18 #ifndef _PLUGIN_DEBUG_H_ |
19 #define _PLUGIN_DEBUG_H_ | 19 #define _PLUGIN_DEBUG_H_ |
20 | 20 |
21 #include <memory> | 21 #include <memory> |
22 #include <mutex> | 22 #include <mutex> |
23 #include <string> | |
23 | 24 |
24 namespace Trace | 25 namespace Trace |
25 { | 26 { |
26 /** | 27 /** |
27 */ | 28 */ |
28 struct Location | 29 struct Location |
29 { | 30 { |
30 std::string prefixText; | 31 std::string prefixText; |
31 std::string postfixText; | 32 std::string postfixText; |
32 | 33 |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
84 static void DebugResultDomain(const std::wstring& domain); | 85 static void DebugResultDomain(const std::wstring& domain); |
85 static void DebugResultBlocking(const std::wstring& type, const std::wstring& src, const std::wstring& domain); | 86 static void DebugResultBlocking(const std::wstring& type, const std::wstring& src, const std::wstring& domain); |
86 static void DebugResultHiding(const std::wstring& tag, const std::wstring& id, const std::wstring& filter); | 87 static void DebugResultHiding(const std::wstring& tag, const std::wstring& id, const std::wstring& filter); |
87 #endif | 88 #endif |
88 | 89 |
89 #if (defined ENABLE_DEBUG_RESULT_IGNORED) | 90 #if (defined ENABLE_DEBUG_RESULT_IGNORED) |
90 static void DebugResultIgnoring(const std::wstring& type, const std::wstring& src, const std::wstring& domain); | 91 static void DebugResultIgnoring(const std::wstring& type, const std::wstring& src, const std::wstring& domain); |
91 #endif | 92 #endif |
92 }; | 93 }; |
93 | 94 |
95 /** | |
96 * Convert a pointer to a hexadecimal literal (0x...) | |
97 * | |
98 * The length of the literal varies with pointer size: | |
99 * 10 characters for WIN32, and 18 for WIN64. | |
100 */ | |
101 std::wstring ToHexLiteral(const void*); | |
102 | |
94 /* | 103 /* |
95 * Forward declaration. | 104 * Forward declaration. |
96 */ | 105 */ |
97 class LogQueue; | 106 class LogQueue; |
98 | 107 |
99 /** | 108 /** |
100 * This class maintains a singleton LogQueue in existence. | 109 * This class maintains a singleton LogQueue in existence. |
101 * | 110 * |
102 * This class exists because it's not possible to use a static declaration for | 111 * This class exists because it's not possible to use a static declaration for |
103 * 'std::thread' or any class that contains one, such as 'ActiveQueue'. | 112 * 'std::thread' or any class that contains one, such as 'ActiveQueue'. |
(...skipping 18 matching lines...) Expand all Loading... | |
122 */ | 131 */ |
123 class LogQueueReference | 132 class LogQueueReference |
124 { | 133 { |
125 friend LogQueue; | 134 friend LogQueue; |
126 | 135 |
127 typedef std::shared_ptr<LogQueue> pointer; | 136 typedef std::shared_ptr<LogQueue> pointer; |
128 | 137 |
129 /** | 138 /** |
130 * The class-wide reference to the debug queue. | 139 * The class-wide reference to the debug queue. |
131 */ | 140 */ |
132 static pointer queueMasterReference; | 141 static pointer queueMasterReference; |
sergei
2015/10/01 15:50:07
Why do we need more static stuff? We have already
Eric
2015/10/08 21:05:41
In the present case, we want a single log facility
| |
133 | 142 |
134 /** | 143 /** |
135 * The instance reference to the debug queue. | 144 * The instance reference to the debug queue. |
136 */ | 145 */ |
137 pointer queueReference; | 146 pointer queueReference; |
138 | 147 |
139 /** | 148 /** |
140 * Mutex to allow joint serialization of constructor/destructor calls. | 149 * Mutex to allow joint serialization of constructor/destructor calls. |
141 */ | 150 */ |
142 static std::mutex mutex; | 151 static std::mutex mutex; |
143 | 152 |
144 public: | 153 public: |
145 LogQueueReference(); | 154 LogQueueReference(); |
146 ~LogQueueReference(); | 155 ~LogQueueReference(); |
147 }; | 156 }; |
148 | 157 |
149 #endif // _PLUGIN_DEBUG_H_ | 158 #endif // _PLUGIN_DEBUG_H_ |
LEFT | RIGHT |