device_description.h revision 46d4c2bc3267f3f028f39e7e311b0f89aba2e4fd
1// Copyright 2014 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#ifndef CHROME_BROWSER_LOCAL_DISCOVERY_DEVICE_DESCRIPTION_H_
6#define CHROME_BROWSER_LOCAL_DISCOVERY_DEVICE_DESCRIPTION_H_
7
8#include <string>
9
10#include "base/time/time.h"
11#include "net/base/host_port_pair.h"
12#include "net/base/net_util.h"
13
14namespace local_discovery {
15
16struct ServiceDescription;
17
18struct DeviceDescription {
19  enum ConnectionState {
20    ONLINE,
21    OFFLINE,
22    CONNECTING,
23    NOT_CONFIGURED,
24    UNKNOWN
25  };
26
27  DeviceDescription();
28  ~DeviceDescription();
29
30  void FillFromServiceDescription(
31      const ServiceDescription& service_description);
32
33  // Display attributes
34  std::string name;
35  std::string description;
36
37  // Functional attributes
38  std::string url;
39  std::string id;
40  std::string type;
41  int version;
42  ConnectionState connection_state;
43
44  // Attributes related to local HTTP
45  net::HostPortPair address;
46  net::IPAddressNumber ip_address;
47  base::Time last_seen;
48};
49
50}  // namespace local_discovery
51
52#endif  // CHROME_BROWSER_LOCAL_DISCOVERY_DEVICE_DESCRIPTION_H_
53