Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(80)

Side by Side Diff: include/v8-platform.h

Issue 2371103002: Revert of [tracing] Support ConvertableToTraceFormat argument type. (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « include/libplatform/v8-tracing.h ('k') | src/libplatform/default-platform.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_V8_PLATFORM_H_ 5 #ifndef V8_V8_PLATFORM_H_
6 #define V8_V8_PLATFORM_H_ 6 #define V8_V8_PLATFORM_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 #include <memory>
11 #include <string>
12 10
13 namespace v8 { 11 namespace v8 {
14 12
15 class Isolate; 13 class Isolate;
16 14
17 /** 15 /**
18 * A Task represents a unit of work. 16 * A Task represents a unit of work.
19 */ 17 */
20 class Task { 18 class Task {
21 public: 19 public:
22 virtual ~Task() = default; 20 virtual ~Task() {}
23 21
24 virtual void Run() = 0; 22 virtual void Run() = 0;
25 }; 23 };
26 24
25
27 /** 26 /**
28 * An IdleTask represents a unit of work to be performed in idle time. 27 * An IdleTask represents a unit of work to be performed in idle time.
29 * The Run method is invoked with an argument that specifies the deadline in 28 * The Run method is invoked with an argument that specifies the deadline in
30 * seconds returned by MonotonicallyIncreasingTime(). 29 * seconds returned by MonotonicallyIncreasingTime().
31 * The idle task is expected to complete by this deadline. 30 * The idle task is expected to complete by this deadline.
32 */ 31 */
33 class IdleTask { 32 class IdleTask {
34 public: 33 public:
35 virtual ~IdleTask() = default; 34 virtual ~IdleTask() {}
36 virtual void Run(double deadline_in_seconds) = 0; 35 virtual void Run(double deadline_in_seconds) = 0;
37 }; 36 };
38 37
39 /**
40 * The interface represents complex arguments to trace events.
41 */
42 class ConvertableToTraceFormat {
43 public:
44 virtual ~ConvertableToTraceFormat() = default;
45
46 /**
47 * Append the class info to the provided |out| string. The appended
48 * data must be a valid JSON object. Strings must be properly quoted, and
49 * escaped. There is no processing applied to the content after it is
50 * appended.
51 */
52 virtual void AppendAsTraceFormat(std::string* out) const = 0;
53 };
54 38
55 /** 39 /**
56 * V8 Platform abstraction layer. 40 * V8 Platform abstraction layer.
57 * 41 *
58 * The embedder has to provide an implementation of this interface before 42 * The embedder has to provide an implementation of this interface before
59 * initializing the rest of V8. 43 * initializing the rest of V8.
60 */ 44 */
61 class Platform { 45 class Platform {
62 public: 46 public:
63 /** 47 /**
64 * This enum is used to indicate whether a task is potentially long running, 48 * This enum is used to indicate whether a task is potentially long running,
65 * or causes a long wait. The embedder might want to use this hint to decide 49 * or causes a long wait. The embedder might want to use this hint to decide
66 * whether to execute the task on a dedicated thread. 50 * whether to execute the task on a dedicated thread.
67 */ 51 */
68 enum ExpectedRuntime { 52 enum ExpectedRuntime {
69 kShortRunningTask, 53 kShortRunningTask,
70 kLongRunningTask 54 kLongRunningTask
71 }; 55 };
72 56
73 virtual ~Platform() = default; 57 virtual ~Platform() {}
74 58
75 /** 59 /**
76 * Gets the number of threads that are used to execute background tasks. Is 60 * Gets the number of threads that are used to execute background tasks. Is
77 * used to estimate the number of tasks a work package should be split into. 61 * used to estimate the number of tasks a work package should be split into.
78 * A return value of 0 means that there are no background threads available. 62 * A return value of 0 means that there are no background threads available.
79 * Note that a value of 0 won't prohibit V8 from posting tasks using 63 * Note that a value of 0 won't prohibit V8 from posting tasks using
80 * |CallOnBackgroundThread|. 64 * |CallOnBackgroundThread|.
81 */ 65 */
82 virtual size_t NumberOfAvailableBackgroundThreads() { return 0; } 66 virtual size_t NumberOfAvailableBackgroundThreads() { return 0; }
83 67
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
164 * tracing and the category of the particular trace are enabled. It is not 148 * tracing and the category of the particular trace are enabled. It is not
165 * advisable to call this function on its own; it is really only meant to be 149 * advisable to call this function on its own; it is really only meant to be
166 * used by the trace macros. The returned handle can be used by 150 * used by the trace macros. The returned handle can be used by
167 * UpdateTraceEventDuration to update the duration of COMPLETE events. 151 * UpdateTraceEventDuration to update the duration of COMPLETE events.
168 */ 152 */
169 virtual uint64_t AddTraceEvent( 153 virtual uint64_t AddTraceEvent(
170 char phase, const uint8_t* category_enabled_flag, const char* name, 154 char phase, const uint8_t* category_enabled_flag, const char* name,
171 const char* scope, uint64_t id, uint64_t bind_id, int32_t num_args, 155 const char* scope, uint64_t id, uint64_t bind_id, int32_t num_args,
172 const char** arg_names, const uint8_t* arg_types, 156 const char** arg_names, const uint8_t* arg_types,
173 const uint64_t* arg_values, unsigned int flags) { 157 const uint64_t* arg_values, unsigned int flags) {
174 return AddTraceEvent(phase, category_enabled_flag, name, scope, id, bind_id,
175 num_args, arg_names, arg_types, arg_values, nullptr,
176 flags);
177 }
178
179 /**
180 * Adds a trace event to the platform tracing system. This function call is
181 * usually the result of a TRACE_* macro from trace_event_common.h when
182 * tracing and the category of the particular trace are enabled. It is not
183 * advisable to call this function on its own; it is really only meant to be
184 * used by the trace macros. The returned handle can be used by
185 * UpdateTraceEventDuration to update the duration of COMPLETE events.
186 */
187 virtual uint64_t AddTraceEvent(
188 char phase, const uint8_t* category_enabled_flag, const char* name,
189 const char* scope, uint64_t id, uint64_t bind_id, int32_t num_args,
190 const char** arg_names, const uint8_t* arg_types,
191 const uint64_t* arg_values,
192 std::unique_ptr<ConvertableToTraceFormat>* arg_convertables,
193 unsigned int flags) {
194 return 0; 158 return 0;
195 } 159 }
196 160
197 /** 161 /**
198 * Sets the duration field of a COMPLETE trace event. It must be called with 162 * Sets the duration field of a COMPLETE trace event. It must be called with
199 * the handle returned from AddTraceEvent(). 163 * the handle returned from AddTraceEvent().
200 **/ 164 **/
201 virtual void UpdateTraceEventDuration(const uint8_t* category_enabled_flag, 165 virtual void UpdateTraceEventDuration(const uint8_t* category_enabled_flag,
202 const char* name, uint64_t handle) {} 166 const char* name, uint64_t handle) {}
203 167
204 class TraceStateObserver { 168 class TraceStateObserver {
205 public: 169 public:
206 virtual ~TraceStateObserver() = default; 170 virtual ~TraceStateObserver() = default;
207 virtual void OnTraceEnabled() = 0; 171 virtual void OnTraceEnabled() = 0;
208 virtual void OnTraceDisabled() = 0; 172 virtual void OnTraceDisabled() = 0;
209 }; 173 };
210 174
211 /** Adds tracing state change observer. */ 175 /** Adds tracing state change observer. */
212 virtual void AddTraceStateObserver(TraceStateObserver*) {} 176 virtual void AddTraceStateObserver(TraceStateObserver*) {}
213 177
214 /** Removes tracing state change observer. */ 178 /** Removes tracing state change observer. */
215 virtual void RemoveTraceStateObserver(TraceStateObserver*) {} 179 virtual void RemoveTraceStateObserver(TraceStateObserver*) {}
216 }; 180 };
217 181
218 } // namespace v8 182 } // namespace v8
219 183
220 #endif // V8_V8_PLATFORM_H_ 184 #endif // V8_V8_PLATFORM_H_
OLDNEW
« no previous file with comments | « include/libplatform/v8-tracing.h ('k') | src/libplatform/default-platform.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698