blob: 78aa3c46efe91283768fdaa5b9bf3971f0e41629 [file] [log] [blame]
Vitaly Buka4615e0d2015-10-14 15:35:12 -07001// Copyright 2015 The Weave Authors. All rights reserved.
Vitaly Buka7ce499f2015-06-09 08:04:11 -07002// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
Stefan Sauer2d16dfa2015-09-25 17:08:35 +02005#include "src/privet/device_delegate.h"
Vitaly Buka7ce499f2015-06-09 08:04:11 -07006
Vitaly Buka7ce499f2015-06-09 08:04:11 -07007#include <base/guid.h>
8
Stefan Sauer2d16dfa2015-09-25 17:08:35 +02009#include "src/privet/constants.h"
Vitaly Buka7ce499f2015-06-09 08:04:11 -070010
Vitaly Bukab6f015a2015-07-09 14:59:23 -070011namespace weave {
12namespace privet {
Vitaly Buka7ce499f2015-06-09 08:04:11 -070013
14namespace {
15
16class DeviceDelegateImpl : public DeviceDelegate {
17 public:
Vitaly Buka1f2e4f32015-10-08 10:13:52 -070018 DeviceDelegateImpl(uint16_t http_port, uint16_t https_port)
19 : http_port_{http_port}, https_port_{https_port} {}
Vitaly Buka7ce499f2015-06-09 08:04:11 -070020 ~DeviceDelegateImpl() override = default;
21
22 std::pair<uint16_t, uint16_t> GetHttpEnpoint() const override {
23 return std::make_pair(http_port_, http_port_);
24 }
25 std::pair<uint16_t, uint16_t> GetHttpsEnpoint() const override {
26 return std::make_pair(https_port_, https_port_);
27 }
28 base::TimeDelta GetUptime() const override {
29 return base::Time::Now() - start_time_;
30 }
31
Vitaly Buka075b3d42015-06-09 08:34:25 -070032 void SetHttpPort(uint16_t port) override { http_port_ = port; }
Vitaly Buka7ce499f2015-06-09 08:04:11 -070033
Vitaly Buka075b3d42015-06-09 08:34:25 -070034 void SetHttpsPort(uint16_t port) override { https_port_ = port; }
Vitaly Buka7ce499f2015-06-09 08:04:11 -070035
36 private:
37 uint16_t http_port_{0};
38 uint16_t https_port_{0};
39 base::Time start_time_{base::Time::Now()};
40};
41
42} // namespace
43
Vitaly Buka4ebd3292015-09-23 18:04:17 -070044DeviceDelegate::DeviceDelegate() {}
Vitaly Buka7ce499f2015-06-09 08:04:11 -070045
Vitaly Buka4ebd3292015-09-23 18:04:17 -070046DeviceDelegate::~DeviceDelegate() {}
Vitaly Buka7ce499f2015-06-09 08:04:11 -070047
48// static
Vitaly Buka1f2e4f32015-10-08 10:13:52 -070049std::unique_ptr<DeviceDelegate> DeviceDelegate::CreateDefault(
50 uint16_t http_port,
51 uint16_t https_port) {
52 return std::unique_ptr<DeviceDelegate>(
53 new DeviceDelegateImpl(http_port, https_port));
Vitaly Buka7ce499f2015-06-09 08:04:11 -070054}
55
Vitaly Bukab6f015a2015-07-09 14:59:23 -070056} // namespace privet
57} // namespace weave