#ifndef CHROME_BROWSER_EXTENSIONS_API_DIAL_DIAL_DEVICE_DATA_H_
#define CHROME_BROWSER_EXTENSIONS_API_DIAL_DIAL_DEVICE_DATA_H_
#include <string>
#include <vector>
#include "base/time/time.h"
#include "base/values.h"
#include "url/gurl.h"
namespace extensions {
namespace api {
namespace dial {
struct DialDevice;
}
}
class DialDeviceData {
public:
DialDeviceData();
DialDeviceData(const std::string& device_id,
const GURL& device_description_url,
const base::Time& response_time);
~DialDeviceData();
bool operator==(const DialDeviceData& other_data) const {
return device_id_ == other_data.device_id_;
}
const std::string& device_id() const { return device_id_; }
void set_device_id(const std::string& id) {
device_id_ = id;
}
const std::string& label() const { return label_; }
void set_label(const std::string& label) {
label_ = label;
}
const GURL& device_description_url() const;
void set_device_description_url(const GURL& url);
const base::Time& response_time() const { return response_time_; }
void set_response_time(const base::Time& response_time) {
response_time_ = response_time;
}
int max_age() const { return max_age_; }
void set_max_age(int max_age) { max_age_ = max_age; }
bool has_max_age() const { return max_age_ >= 0; }
int config_id() const { return config_id_; }
void set_config_id(int config_id) { config_id_ = config_id; }
bool has_config_id() const { return config_id_ >= 0; }
void FillDialDevice(api::dial::DialDevice* device) const;
bool UpdateFrom(const DialDeviceData& new_data);
static bool IsDeviceDescriptionUrl(const GURL& url);
private:
std::string device_id_;
std::string label_;
GURL device_description_url_;
base::Time response_time_;
int max_age_;
int config_id_;
};
}
#endif