5 #ifndef V8_LIBPLATFORM_TRACING_TRACE_BUFFER_H_ 6 #define V8_LIBPLATFORM_TRACING_TRACE_BUFFER_H_ 11 #include "include/libplatform/v8-tracing.h" 12 #include "src/base/platform/mutex.h" 23 TraceObject* AddTraceEvent(uint64_t* handle)
override;
24 TraceObject* GetEventByHandle(uint64_t handle)
override;
25 bool Flush()
override;
28 uint64_t MakeHandle(
size_t chunk_index,
uint32_t chunk_seq,
29 size_t event_index)
const;
30 void ExtractHandle(uint64_t handle,
size_t* chunk_index,
uint32_t* chunk_seq,
31 size_t* event_index)
const;
32 size_t Capacity()
const {
return max_chunks_ * TraceBufferChunk::kChunkSize; }
33 size_t NextChunkIndex(
size_t index)
const;
37 std::unique_ptr<TraceWriter> trace_writer_;
38 std::vector<std::unique_ptr<TraceBufferChunk>> chunks_;
40 bool is_empty_ =
true;
48 #endif // V8_LIBPLATFORM_TRACING_TRACE_BUFFER_H_