| // Copyright (c) 2012 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 "chrome/browser/performance_monitor/event.h" |
| |
| #include "base/logging.h" |
| |
| namespace performance_monitor { |
| |
| Event::Event(const EventType& type, |
| const base::Time& time, |
| scoped_ptr<base::DictionaryValue> data) |
| : type_(type), time_(time), data_(data.release()) { |
| } |
| |
| Event::~Event() { |
| } |
| |
| scoped_ptr<Event> Event::FromValue(scoped_ptr<base::DictionaryValue> data) { |
| int type = 0; |
| if (!data->GetInteger(std::string("eventType"), &type)) |
| return scoped_ptr<Event>(); |
| double time = 0.0; |
| if (!data->GetDouble(std::string("time"), &time)) |
| return scoped_ptr<Event>(); |
| return scoped_ptr<Event>(new Event(static_cast<EventType>(type), |
| base::Time::FromInternalValue((int64)time), |
| data.Pass())); |
| } |
| |
| } // namespace performance_monitor |