blob: 3302698ed2e50427d5ee1cee8a839406b2961cac [file] [log] [blame]
// 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> 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