| // 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/extensions/api/dial/dial_device_data.h" |
| |
| #include "chrome/common/extensions/api/dial.h" |
| |
| namespace extensions { |
| namespace api { |
| namespace dial { |
| |
| DialDeviceData::DialDeviceData() : max_age_(-1), config_id_(-1) { } |
| |
| DialDeviceData::DialDeviceData(const std::string& device_id, |
| const GURL& device_description_url, |
| const base::Time& response_time) |
| : device_id_(device_id), device_description_url_(device_description_url), |
| response_time_(response_time), max_age_(-1), config_id_(-1) { |
| } |
| |
| DialDeviceData::DialDeviceData(const DialDeviceData& other) = default; |
| |
| DialDeviceData::~DialDeviceData() { } |
| |
| const GURL& DialDeviceData::device_description_url() const { |
| return device_description_url_; |
| } |
| |
| void DialDeviceData::set_device_description_url(const GURL& url) { |
| device_description_url_ = url; |
| } |
| |
| // static |
| bool DialDeviceData::IsDeviceDescriptionUrl(const GURL& url) { |
| return url.is_valid() && !url.is_empty() && url.SchemeIsHTTPOrHTTPS(); |
| } |
| |
| bool DialDeviceData::UpdateFrom(const DialDeviceData& new_data) { |
| DCHECK(new_data.device_id() == device_id_); |
| DCHECK(new_data.label().empty()); |
| std::string label_tmp(label_); |
| bool updated_api_visible_field = |
| (new_data.device_description_url() != device_description_url_) || |
| (new_data.config_id() != config_id_); |
| *this = new_data; |
| label_ = label_tmp; |
| return updated_api_visible_field; |
| } |
| |
| void DialDeviceData::FillDialDevice(api::dial::DialDevice* device) const { |
| DCHECK(!device_id_.empty()); |
| DCHECK(IsDeviceDescriptionUrl(device_description_url_)); |
| device->device_label = label_; |
| device->device_description_url = device_description_url_.spec(); |
| if (has_config_id()) |
| device->config_id.reset(new int(config_id_)); |
| } |
| |
| DialDeviceDescriptionData::DialDeviceDescriptionData( |
| const std::string& device_description, |
| const GURL& app_url) |
| : device_description(device_description), app_url(app_url) {} |
| |
| } // namespace dial |
| } // namespace api |
| } // namespace extensions |