// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "platform/TracedValue.h" #include "base/trace_event/trace_event_argument.h" #include "wtf/text/StringUTF8Adaptor.h" namespace blink { PassOwnPtr TracedValue::create() { return adoptPtr(new TracedValue()); } TracedValue::TracedValue() : m_tracedValue(new base::trace_event::TracedValue) { } TracedValue::~TracedValue() { } void TracedValue::setInteger(const char* name, int value) { ASSERT(m_tracedValue.get()); m_tracedValue->SetIntegerWithCopiedName(name, value); } void TracedValue::setDouble(const char* name, double value) { ASSERT(m_tracedValue.get()); m_tracedValue->SetDoubleWithCopiedName(name, value); } void TracedValue::setBoolean(const char* name, bool value) { ASSERT(m_tracedValue.get()); m_tracedValue->SetBooleanWithCopiedName(name, value); } void TracedValue::setString(const char* name, const String& value) { ASSERT(m_tracedValue.get()); StringUTF8Adaptor adaptor(value); m_tracedValue->SetStringWithCopiedName(name, adaptor.asStringPiece()); } void TracedValue::beginDictionary(const char* name) { ASSERT(m_tracedValue.get()); m_tracedValue->BeginDictionaryWithCopiedName(name); } void TracedValue::beginArray(const char* name) { ASSERT(m_tracedValue.get()); m_tracedValue->BeginArrayWithCopiedName(name); } void TracedValue::endDictionary() { ASSERT(m_tracedValue.get()); m_tracedValue->EndDictionary(); } void TracedValue::pushInteger(int value) { ASSERT(m_tracedValue.get()); m_tracedValue->AppendInteger(value); } void TracedValue::pushDouble(double value) { ASSERT(m_tracedValue.get()); m_tracedValue->AppendDouble(value); } void TracedValue::pushBoolean(bool value) { ASSERT(m_tracedValue.get()); m_tracedValue->AppendBoolean(value); } void TracedValue::pushString(const String& value) { ASSERT(m_tracedValue.get()); StringUTF8Adaptor adaptor(value); m_tracedValue->AppendString(adaptor.asStringPiece()); } void TracedValue::beginArray() { ASSERT(m_tracedValue.get()); m_tracedValue->BeginArray(); } void TracedValue::beginDictionary() { ASSERT(m_tracedValue.get()); m_tracedValue->BeginDictionary(); } void TracedValue::endArray() { ASSERT(m_tracedValue.get()); m_tracedValue->EndArray(); } String TracedValue::toString() const { ASSERT(m_tracedValue.get()); std::string out; m_tracedValue->AppendAsTraceFormat(&out); return String::fromUTF8(out.c_str()); } } // namespace blink