| 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 |