| // 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 <weave/provider/task_runner.h> |
| |
| #include "src/privet/constants.h" |
| |
| namespace weave { |
| namespace privet { |
| |
| namespace { |
| |
| class DeviceDelegateImpl : public DeviceDelegate { |
| public: |
| DeviceDelegateImpl(provider::TaskRunner* task_runner, |
| uint16_t http_port, |
| uint16_t https_port, |
| base::TimeDelta http_request_timeout) |
| : task_runner_{task_runner}, |
| http_request_timeout_{http_request_timeout}, |
| 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 GetHttpRequestTimeout() const override { |
| return http_request_timeout_; |
| } |
| |
| void PostDelayedTask(const tracked_objects::Location& from_here, |
| const base::Closure& task, |
| base::TimeDelta delay) override { |
| task_runner_->PostDelayedTask(from_here, task, delay); |
| } |
| |
| private: |
| provider::TaskRunner* task_runner_; |
| base::TimeDelta http_request_timeout_; |
| uint16_t http_port_{0}; |
| uint16_t https_port_{0}; |
| }; |
| |
| } // namespace |
| |
| DeviceDelegate::DeviceDelegate() {} |
| |
| DeviceDelegate::~DeviceDelegate() {} |
| |
| // static |
| std::unique_ptr<DeviceDelegate> DeviceDelegate::CreateDefault( |
| provider::TaskRunner* task_runner, |
| uint16_t http_port, |
| uint16_t https_port, |
| base::TimeDelta http_request_timeout) { |
| return std::unique_ptr<DeviceDelegate>(new DeviceDelegateImpl( |
| task_runner, http_port, https_port, http_request_timeout)); |
| } |
| |
| } // namespace privet |
| } // namespace weave |