blob: dbf8f06e4f85c8cb4122c10dc8a7b222536cba1b [file] [log] [blame]
Ben Chan99c8a4d2012-05-01 08:11:53 -07001// Copyright (c) 2012 The Chromium OS 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 SHILL_WIMAX_H_
6#define SHILL_WIMAX_H_
7
Darin Petkovb72b62e2012-05-15 16:55:36 +02008#include <gtest/gtest_prod.h> // for FRIEND_TEST
9
Ben Chan99c8a4d2012-05-01 08:11:53 -070010#include "shill/device.h"
11
12namespace shill {
13
Darin Petkovb72b62e2012-05-15 16:55:36 +020014class ProxyFactory;
15class WiMaxDeviceProxyInterface;
16
Ben Chan99c8a4d2012-05-01 08:11:53 -070017class WiMax : public Device {
18 public:
19 WiMax(ControlInterface *control,
20 EventDispatcher *dispatcher,
21 Metrics *metrics,
22 Manager *manager,
23 const std::string &link_name,
Ben Chan4e64d2d2012-05-16 00:02:25 -070024 const std::string &address,
Darin Petkovb72b62e2012-05-15 16:55:36 +020025 int interface_index,
26 const RpcIdentifier &path);
Ben Chan99c8a4d2012-05-01 08:11:53 -070027
28 virtual ~WiMax();
29
30 virtual void Start(Error *error, const EnabledStateChangedCallback &callback);
31 virtual void Stop(Error *error, const EnabledStateChangedCallback &callback);
32
33 virtual bool TechnologyIs(const Technology::Identifier type) const;
34
35 virtual void Connect(Error *error);
36 virtual void Disconnect(Error *error);
37
Darin Petkovb72b62e2012-05-15 16:55:36 +020038 const RpcIdentifier &path() const { return path_; }
39
Ben Chan99c8a4d2012-05-01 08:11:53 -070040 private:
Darin Petkovb72b62e2012-05-15 16:55:36 +020041 friend class WiMaxTest;
42 FRIEND_TEST(WiMaxTest, StartStop);
43
44 const RpcIdentifier path_;
45
46 scoped_ptr<WiMaxDeviceProxyInterface> proxy_;
47
48 ProxyFactory *proxy_factory_;
49
Ben Chan99c8a4d2012-05-01 08:11:53 -070050 DISALLOW_COPY_AND_ASSIGN(WiMax);
51};
52
53} // namespace shill
54
55#endif // SHILL_WIMAX_H_