[shill] Wire IPConfig objects to dbus

BUG=chromium-os:17154
TEST=unit tests
STATUS=Verified

Change-Id: If4344b1df2806dcff914fe1e79d6f0d7705a6eb3
Reviewed-on: http://gerrit.chromium.org/gerrit/3494
Reviewed-by: Darin Petkov <petkov@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
diff --git a/ipconfig.h b/ipconfig.h
index f6ac640..cd9e8fd 100644
--- a/ipconfig.h
+++ b/ipconfig.h
@@ -13,13 +13,17 @@
 #include <base/memory/scoped_ptr.h>
 #include <gtest/gtest_prod.h>  // for FRIEND_TEST
 
+#include "shill/property_store.h"
 #include "shill/refptr_types.h"
 
 namespace shill {
+class ControlInterface;
+class Error;
+class IPConfigAdaptorInterface;
 
 // IPConfig superclass. Individual IP configuration types will inherit from this
 // class.
-class IPConfig : public base::RefCounted<IPConfig> {
+class IPConfig : public PropertyStore, public base::RefCounted<IPConfig> {
  public:
   enum AddressFamily {
     kAddressFamilyUnknown,
@@ -72,11 +76,14 @@
   void UpdateProperties(const Properties &properties, bool success);
 
  private:
+  friend class IPConfigAdaptorInterface;
+
   FRIEND_TEST(DeviceTest, AcquireDHCPConfig);
   FRIEND_TEST(DeviceTest, DestroyIPConfig);
   FRIEND_TEST(IPConfigTest, UpdateCallback);
   FRIEND_TEST(IPConfigTest, UpdateProperties);
 
+  scoped_ptr<IPConfigAdaptorInterface> adaptor_;
   const std::string device_name_;
   Properties properties_;
   scoped_ptr<Callback2<const IPConfigRefPtr&, bool>::Type> update_callback_;