1// Copyright (c) 2012 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.
4
5#include "chrome/browser/performance_monitor/event.h"
6
7#include "base/logging.h"
8
9namespace performance_monitor {
10
11Event::Event(const EventType& type,
12             const base::Time& time,
13             scoped_ptr<base::DictionaryValue> data)
14    : type_(type), time_(time), data_(data.release()) {
15}
16
17Event::~Event() {
18}
19
20scoped_ptr<Event> Event::FromValue(scoped_ptr<base::DictionaryValue> data) {
21  int type = 0;
22  if (!data->GetInteger(std::string("eventType"), &type))
23    return scoped_ptr<Event>();
24  double time = 0.0;
25  if (!data->GetDouble(std::string("time"), &time))
26    return scoped_ptr<Event>();
27  return scoped_ptr<Event>(new Event(static_cast<EventType>(type),
28                                     base::Time::FromInternalValue((int64)time),
29                                     data.Pass()));
30}
31
32}  // namespace performance_monitor
33