// Copyright 2016 the V8 project authors. All rights reserved.
|
// Use of this source code is governed by a BSD-style license that can be
|
// found in the LICENSE file.
|
|
#ifndef V8_LIBPLATFORM_TRACING_TRACE_WRITER_H_
|
#define V8_LIBPLATFORM_TRACING_TRACE_WRITER_H_
|
|
#include "include/libplatform/v8-tracing.h"
|
|
namespace v8 {
|
namespace platform {
|
namespace tracing {
|
|
class JSONTraceWriter : public TraceWriter {
|
public:
|
explicit JSONTraceWriter(std::ostream& stream);
|
JSONTraceWriter(std::ostream& stream, const std::string& tag);
|
~JSONTraceWriter();
|
void AppendTraceEvent(TraceObject* trace_event) override;
|
void Flush() override;
|
|
private:
|
void AppendArgValue(uint8_t type, TraceObject::ArgValue value);
|
void AppendArgValue(v8::ConvertableToTraceFormat*);
|
|
std::ostream& stream_;
|
bool append_comma_ = false;
|
};
|
|
} // namespace tracing
|
} // namespace platform
|
} // namespace v8
|
|
#endif // V8_LIBPLATFORM_TRACING_TRACE_WRITER_H_
|