1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "mojo/services/tracing/trace_data_sink.h"
7 #include "base/logging.h"
8 #include "mojo/common/data_pipe_utils.h"
10 using mojo::common::BlockingCopyFromString
;
15 const char kStart
[] = "{\"traceEvents\":[";
16 const char kEnd
[] = "]}";
20 TraceDataSink::TraceDataSink(mojo::ScopedDataPipeProducerHandle pipe
)
21 : pipe_(pipe
.Pass()), empty_(true) {
22 BlockingCopyFromString(kStart
, pipe_
);
25 TraceDataSink::~TraceDataSink() {
28 DCHECK(!pipe_
.is_valid());
31 void TraceDataSink::AddChunk(const std::string
& json
) {
33 BlockingCopyFromString(",", pipe_
);
35 BlockingCopyFromString(json
, pipe_
);
38 void TraceDataSink::Flush() {
39 BlockingCopyFromString(kEnd
, pipe_
);
43 } // namespace tracing