| // Copyright 2015 The Weave 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 "src/privet/device_delegate.h" | |
| #include <base/guid.h> | |
| #include "src/privet/constants.h" | |
| namespace weave { | |
| namespace privet { | |
| namespace { | |
| class DeviceDelegateImpl : public DeviceDelegate { | |
| public: | |
| DeviceDelegateImpl(uint16_t http_port, uint16_t https_port) | |
| : http_port_{http_port}, https_port_{https_port} {} | |
| ~DeviceDelegateImpl() override = default; | |
| std::pair<uint16_t, uint16_t> GetHttpEnpoint() const override { | |
| return std::make_pair(http_port_, http_port_); | |
| } | |
| std::pair<uint16_t, uint16_t> GetHttpsEnpoint() const override { | |
| return std::make_pair(https_port_, https_port_); | |
| } | |
| base::TimeDelta GetUptime() const override { | |
| return base::Time::Now() - start_time_; | |
| } | |
| void SetHttpPort(uint16_t port) override { http_port_ = port; } | |
| void SetHttpsPort(uint16_t port) override { https_port_ = port; } | |
| private: | |
| uint16_t http_port_{0}; | |
| uint16_t https_port_{0}; | |
| base::Time start_time_{base::Time::Now()}; | |
| }; | |
| } // namespace | |
| DeviceDelegate::DeviceDelegate() {} | |
| DeviceDelegate::~DeviceDelegate() {} | |
| // static | |
| std::unique_ptr<DeviceDelegate> DeviceDelegate::CreateDefault( | |
| uint16_t http_port, | |
| uint16_t https_port) { | |
| return std::unique_ptr<DeviceDelegate>( | |
| new DeviceDelegateImpl(http_port, https_port)); | |
| } | |
| } // namespace privet | |
| } // namespace weave |