dial_device_data.cc revision 2a99a7e74a7f215066514fe81d2bfa6639d9eddd
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/extensions/api/dial/dial_device_data.h" 6 7#include "chrome/common/extensions/api/dial.h" 8 9namespace extensions { 10 11DialDeviceData::DialDeviceData() : max_age_(-1), config_id_(-1) { } 12 13DialDeviceData::DialDeviceData(const std::string& device_id, 14 const GURL& device_description_url, 15 const base::Time& response_time) 16 : device_id_(device_id), device_description_url_(device_description_url), 17 response_time_(response_time), max_age_(-1), config_id_(-1) { 18} 19 20DialDeviceData::~DialDeviceData() { } 21 22const GURL& DialDeviceData::device_description_url() const { 23 return device_description_url_; 24} 25 26void DialDeviceData::set_device_description_url(const GURL& url) { 27 device_description_url_ = url; 28} 29 30// static 31bool DialDeviceData::IsDeviceDescriptionUrl(const GURL& url) { 32 return url.is_valid() && !url.is_empty() && 33 (url.SchemeIs("http") || url.SchemeIs("https")); 34} 35 36bool DialDeviceData::UpdateFrom(const DialDeviceData& new_data) { 37 DCHECK(new_data.device_id() == device_id_); 38 DCHECK(new_data.label().empty()); 39 std::string label_tmp(label_); 40 bool updated_api_visible_field = 41 (new_data.device_description_url() != device_description_url_) || 42 (new_data.config_id() != config_id_); 43 *this = new_data; 44 label_ = label_tmp; 45 return updated_api_visible_field; 46} 47 48void DialDeviceData::FillDialDevice(api::dial::DialDevice* device) const { 49 DCHECK(!device_id_.empty()); 50 DCHECK(IsDeviceDescriptionUrl(device_description_url_)); 51 device->device_label = label_; 52 device->device_description_url = device_description_url_.spec(); 53 if (has_config_id()) 54 device->config_id.reset(new int(config_id_)); 55} 56 57} // namespace extensions 58