blob: 3d5bd312967bc82b17c34f074f0629ffa296d1ff [file] [log] [blame]
Darin Petkove02b3ca2011-05-31 16:00:44 -07001// 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_IPCONFIG_
6#define SHILL_IPCONFIG_
7
8#include <string>
9
10#include <base/memory/ref_counted.h>
11
12namespace shill {
13
14class Device;
15
16// IPConfig superclass. Individual IP configuration types will inherit from this
17// class.
18class IPConfig : public base::RefCounted<IPConfig> {
19 public:
20 explicit IPConfig(const Device *device);
21 virtual ~IPConfig();
22
23 const Device *device() const { return device_; }
24
25 const std::string &GetDeviceName() const;
26
27 private:
28 friend class base::RefCounted<IPConfig>;
29
30 const Device *device_;
31
32 DISALLOW_COPY_AND_ASSIGN(IPConfig);
33};
34
35} // namespace shill
36
37#endif // SHILL_IPCONFIG_