blob: 32dd661ed92a90d4918a50d0fa821a1f6a1001b3 [file] [log] [blame]
Darin Petkovdaf43862011-10-27 11:37:28 +02001// Copyright (c) 2011 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_CELLULAR_CAPABILITY_
6#define SHILL_CELLULAR_CAPABILITY_
7
8#include <base/basictypes.h>
9
10namespace shill {
11
12class Cellular;
13class ProxyFactory;
14
15// Cellular devices instantiate subclasses of CellularCapability that handle the
16// specific modem technologies and capabilities.
17class CellularCapability {
18 public:
19 // |cellular| is the parent Cellular device.
20 CellularCapability(Cellular *cellular);
21 virtual ~CellularCapability();
22
23 Cellular *cellular() const { return cellular_; }
24 ProxyFactory *proxy_factory() const { return proxy_factory_; }
25
26 // Initialize RPC proxies.
27 virtual void InitProxies() = 0;
28
29 private:
30 Cellular *cellular_;
31 ProxyFactory *proxy_factory_;
32
33 DISALLOW_COPY_AND_ASSIGN(CellularCapability);
34};
35
36} // namespace shill
37
38#endif // SHILL_CELLULAR_CAPABILITY_