Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Delta Between Two Patch Sets: src/plugin/PluginDebug.h

Issue 29323611: Issue #1234, #2058 - Rewrite log facility, improving thread implementation
Left Patch Set: Created Aug. 19, 2015, 5:42 p.m.
Right Patch Set: rebase only Created July 27, 2016, 9:11 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
Left: Side by side diff | Download
Right: Side by side diff | Download
« no previous file with change/comment | « src/plugin/PluginClientBase.cpp ('k') | src/plugin/PluginDebug.cpp » ('j') | no next file with change/comment »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
LEFTRIGHT
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
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
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_
LEFTRIGHT

Powered by Google App Engine
This is Rietveld