shill: Move remaining mock constructors/destructors to .cc.

Non-scientific experiment of 'FEATURES=test emerge-x86-mario -1 shill' shows
real time reduction from 77 seconds to 59 seconds.

BUG=chromium-os:19691
TEST=unit tests

Change-Id: Iba905587cce64648bebc69d03fe9ecb3a3a8b90e
Reviewed-on: http://gerrit.chromium.org/gerrit/6793
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
diff --git a/Makefile b/Makefile
index f072b0d..3705b01 100644
--- a/Makefile
+++ b/Makefile
@@ -163,8 +163,20 @@
 	mock_dhcp_provider.o \
 	mock_dhcp_proxy.o \
 	mock_glib.o \
+	mock_ipconfig.o \
+	mock_manager.o \
+	mock_modem_cdma_proxy.o \
+	mock_modem_gsm_network_proxy.o \
+	mock_modem_manager_proxy.o \
+	mock_modem_proxy.o \
+	mock_modem_simple_proxy.o \
 	mock_profile.o \
+	mock_property_store.o \
+	mock_rtnl_handler.o \
 	mock_service.o \
+	mock_sockets.o \
+	mock_supplicant_interface_proxy.o \
+	mock_supplicant_process_proxy.o \
 	modem_info_unittest.o \
 	modem_manager_unittest.o \
 	modem_unittest.o \
diff --git a/mock_ipconfig.cc b/mock_ipconfig.cc
new file mode 100644
index 0000000..fcb1467
--- /dev/null
+++ b/mock_ipconfig.cc
@@ -0,0 +1,15 @@
+// Copyright (c) 2011 The Chromium OS 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 "shill/mock_ipconfig.h"
+
+namespace shill {
+
+MockIPConfig::MockIPConfig(ControlInterface *control_interface,
+                           const std::string &device_name)
+    : IPConfig(control_interface, device_name) {}
+
+MockIPConfig::~MockIPConfig() {}
+
+}  // namespace shill
diff --git a/mock_ipconfig.h b/mock_ipconfig.h
index b5772e2..6c73a7c 100644
--- a/mock_ipconfig.h
+++ b/mock_ipconfig.h
@@ -5,21 +5,18 @@
 #ifndef SHILL_MOCK_IPCONFIG_
 #define SHILL_MOCK_IPCONFIG_
 
-#include <base/memory/ref_counted.h>
+#include <base/basictypes.h>
 #include <gmock/gmock.h>
 
 #include "shill/ipconfig.h"
 
 namespace shill {
-class ControlInterface;
 
 class MockIPConfig : public IPConfig {
  public:
   MockIPConfig(ControlInterface *control_interface,
-               const std::string &device_name)
-      : IPConfig(control_interface, device_name) {
-  }
-  virtual ~MockIPConfig() {}
+               const std::string &device_name);
+  virtual ~MockIPConfig();
 
   MOCK_METHOD0(RequestIP, bool(void));
   MOCK_METHOD0(RenewIP, bool(void));
@@ -27,6 +24,9 @@
 
   MOCK_METHOD2(Load, bool(StoreInterface *, const std::string &));
   MOCK_METHOD2(Save, bool(StoreInterface *, const std::string &));
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(MockIPConfig);
 };
 
 }  // namespace shill
diff --git a/mock_manager.cc b/mock_manager.cc
new file mode 100644
index 0000000..e2b45b2
--- /dev/null
+++ b/mock_manager.cc
@@ -0,0 +1,16 @@
+// Copyright (c) 2011 The Chromium OS 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 "shill/mock_manager.h"
+
+namespace shill {
+
+MockManager::MockManager(ControlInterface *control_interface,
+                         EventDispatcher *dispatcher,
+                         GLib *glib)
+    : Manager(control_interface, dispatcher, glib, "", "", "") {}
+
+MockManager::~MockManager() {}
+
+}  // namespace shill
diff --git a/mock_manager.h b/mock_manager.h
index e8f709d..21da55e 100644
--- a/mock_manager.h
+++ b/mock_manager.h
@@ -5,27 +5,19 @@
 #ifndef SHILL_MOCK_MANAGER_
 #define SHILL_MOCK_MANAGER_
 
-#include <base/memory/ref_counted.h>
+#include <base/basictypes.h>
 #include <gmock/gmock.h>
 
 #include "shill/manager.h"
 
 namespace shill {
 
-class ControlInterface;
-class DeviceInfo;
-class EventDispatcher;
-class GLib;
-class PropertyStore;
-
 class MockManager : public Manager {
  public:
   MockManager(ControlInterface *control_interface,
               EventDispatcher *dispatcher,
-              GLib *glib)
-      : Manager(control_interface, dispatcher, glib, "", "", "") {
-  }
-  ~MockManager() {}
+              GLib *glib);
+  virtual ~MockManager();
 
   MOCK_METHOD0(device_info, DeviceInfo*(void));
   MOCK_METHOD0(store, PropertyStore*(void));
diff --git a/mock_modem_cdma_proxy.cc b/mock_modem_cdma_proxy.cc
new file mode 100644
index 0000000..c27d685
--- /dev/null
+++ b/mock_modem_cdma_proxy.cc
@@ -0,0 +1,13 @@
+// Copyright (c) 2011 The Chromium OS 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 "shill/mock_modem_cdma_proxy.h"
+
+namespace shill {
+
+MockModemCDMAProxy::MockModemCDMAProxy() {}
+
+MockModemCDMAProxy::~MockModemCDMAProxy() {}
+
+}  // namespace shill
diff --git a/mock_modem_cdma_proxy.h b/mock_modem_cdma_proxy.h
index 59b1a4c..58e5a30 100644
--- a/mock_modem_cdma_proxy.h
+++ b/mock_modem_cdma_proxy.h
@@ -5,6 +5,7 @@
 #ifndef SHILL_MOCK_MODEM_CDMA_PROXY_H_
 #define SHILL_MOCK_MODEM_CDMA_PROXY_H_
 
+#include <base/basictypes.h>
 #include <gmock/gmock.h>
 
 #include "shill/modem_cdma_proxy_interface.h"
@@ -13,10 +14,16 @@
 
 class MockModemCDMAProxy : public ModemCDMAProxyInterface {
  public:
+  MockModemCDMAProxy();
+  virtual ~MockModemCDMAProxy();
+
   MOCK_METHOD1(Activate, uint32(const std::string &carrier));
   MOCK_METHOD2(GetRegistrationState, void(uint32 *cdma_1x_state,
                                           uint32 *evdo_state));
   MOCK_METHOD0(GetSignalQuality, uint32());
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(MockModemCDMAProxy);
 };
 
 }  // namespace shill
diff --git a/mock_modem_gsm_network_proxy.cc b/mock_modem_gsm_network_proxy.cc
new file mode 100644
index 0000000..1e3676f
--- /dev/null
+++ b/mock_modem_gsm_network_proxy.cc
@@ -0,0 +1,13 @@
+// Copyright (c) 2011 The Chromium OS 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 "shill/mock_modem_gsm_network_proxy.h"
+
+namespace shill {
+
+MockModemGSMNetworkProxy::MockModemGSMNetworkProxy() {}
+
+MockModemGSMNetworkProxy::~MockModemGSMNetworkProxy() {}
+
+}  // namespace shill
diff --git a/mock_modem_gsm_network_proxy.h b/mock_modem_gsm_network_proxy.h
index 478deac..633f25f 100644
--- a/mock_modem_gsm_network_proxy.h
+++ b/mock_modem_gsm_network_proxy.h
@@ -5,6 +5,7 @@
 #ifndef SHILL_MOCK_MODEM_GSM_NETWORK_PROXY_H_
 #define SHILL_MOCK_MODEM_GSM_NETWORK_PROXY_H_
 
+#include <base/basictypes.h>
 #include <gmock/gmock.h>
 
 #include "shill/modem_gsm_network_proxy_interface.h"
@@ -13,7 +14,13 @@
 
 class MockModemGSMNetworkProxy : public ModemGSMNetworkProxyInterface {
  public:
+  MockModemGSMNetworkProxy();
+  virtual ~MockModemGSMNetworkProxy();
+
   MOCK_METHOD1(Register, void(const std::string &network_id));
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(MockModemGSMNetworkProxy);
 };
 
 }  // namespace shill
diff --git a/mock_modem_manager_proxy.cc b/mock_modem_manager_proxy.cc
new file mode 100644
index 0000000..5d9480d
--- /dev/null
+++ b/mock_modem_manager_proxy.cc
@@ -0,0 +1,13 @@
+// Copyright (c) 2011 The Chromium OS 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 "shill/mock_modem_manager_proxy.h"
+
+namespace shill {
+
+MockModemManagerProxy::MockModemManagerProxy() {}
+
+MockModemManagerProxy::~MockModemManagerProxy() {}
+
+}  // namespace shill
diff --git a/mock_modem_manager_proxy.h b/mock_modem_manager_proxy.h
index 0810a8d..621b448 100644
--- a/mock_modem_manager_proxy.h
+++ b/mock_modem_manager_proxy.h
@@ -5,6 +5,7 @@
 #ifndef SHILL_MOCK_MODEM_MANAGER_PROXY_H_
 #define SHILL_MOCK_MODEM_MANAGER_PROXY_H_
 
+#include <base/basictypes.h>
 #include <gmock/gmock.h>
 
 #include "shill/modem_manager_proxy_interface.h"
@@ -13,7 +14,13 @@
 
 class MockModemManagerProxy : public ModemManagerProxyInterface {
  public:
+  MockModemManagerProxy();
+  virtual ~MockModemManagerProxy();
+
   MOCK_METHOD0(EnumerateDevices, std::vector<DBus::Path>());
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(MockModemManagerProxy);
 };
 
 }  // namespace shill
diff --git a/mock_modem_proxy.cc b/mock_modem_proxy.cc
new file mode 100644
index 0000000..97923db
--- /dev/null
+++ b/mock_modem_proxy.cc
@@ -0,0 +1,13 @@
+// Copyright (c) 2011 The Chromium OS 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 "shill/mock_modem_proxy.h"
+
+namespace shill {
+
+MockModemProxy::MockModemProxy() {}
+
+MockModemProxy::~MockModemProxy() {}
+
+}  // namespace shill
diff --git a/mock_modem_proxy.h b/mock_modem_proxy.h
index e203433..8d3de6e 100644
--- a/mock_modem_proxy.h
+++ b/mock_modem_proxy.h
@@ -5,6 +5,7 @@
 #ifndef SHILL_MOCK_MODEM_PROXY_H_
 #define SHILL_MOCK_MODEM_PROXY_H_
 
+#include <base/basictypes.h>
 #include <gmock/gmock.h>
 
 #include "shill/modem_proxy_interface.h"
@@ -13,8 +14,14 @@
 
 class MockModemProxy : public ModemProxyInterface {
  public:
+  MockModemProxy();
+  virtual ~MockModemProxy();
+
   MOCK_METHOD1(Enable, void(const bool enable));
   MOCK_METHOD0(GetInfo, Info());
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(MockModemProxy);
 };
 
 }  // namespace shill
diff --git a/mock_modem_simple_proxy.cc b/mock_modem_simple_proxy.cc
new file mode 100644
index 0000000..e76c500
--- /dev/null
+++ b/mock_modem_simple_proxy.cc
@@ -0,0 +1,13 @@
+// Copyright (c) 2011 The Chromium OS 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 "shill/mock_modem_simple_proxy.h"
+
+namespace shill {
+
+MockModemSimpleProxy::MockModemSimpleProxy() {}
+
+MockModemSimpleProxy::~MockModemSimpleProxy() {}
+
+}  // namespace shill
diff --git a/mock_modem_simple_proxy.h b/mock_modem_simple_proxy.h
index b5877df..be6e17e 100644
--- a/mock_modem_simple_proxy.h
+++ b/mock_modem_simple_proxy.h
@@ -5,6 +5,7 @@
 #ifndef SHILL_MOCK_MODEM_SIMPLE_PROXY_H_
 #define SHILL_MOCK_MODEM_SIMPLE_PROXY_H_
 
+#include <base/basictypes.h>
 #include <gmock/gmock.h>
 
 #include "shill/modem_simple_proxy_interface.h"
@@ -13,8 +14,14 @@
 
 class MockModemSimpleProxy : public ModemSimpleProxyInterface {
  public:
+  MockModemSimpleProxy();
+  virtual ~MockModemSimpleProxy();
+
   MOCK_METHOD0(GetStatus, DBusPropertiesMap());
   MOCK_METHOD1(Connect, void(const DBusPropertiesMap &properties));
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(MockModemSimpleProxy);
 };
 
 }  // namespace shill
diff --git a/mock_property_store.cc b/mock_property_store.cc
new file mode 100644
index 0000000..ebbc8f3
--- /dev/null
+++ b/mock_property_store.cc
@@ -0,0 +1,13 @@
+// Copyright (c) 2011 The Chromium OS 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 "shill/mock_property_store.h"
+
+namespace shill {
+
+MockPropertyStore::MockPropertyStore() {}
+
+MockPropertyStore::~MockPropertyStore() {}
+
+}  // namespace shill
diff --git a/mock_property_store.h b/mock_property_store.h
index 0956545..f1f16b4 100644
--- a/mock_property_store.h
+++ b/mock_property_store.h
@@ -5,22 +5,18 @@
 #ifndef SHILL_MOCK_PROPERTY_STORE_
 #define SHILL_MOCK_PROPERTY_STORE_
 
-#include "shill/property_store.h"
-
-#include <map>
-#include <string>
-#include <vector>
-
 #include <base/basictypes.h>
+#include <gmock/gmock.h>
+
+#include "shill/property_store.h"
 
 namespace shill {
 
-class Error;
-
 class MockPropertyStore : public PropertyStore {
  public:
-  MockPropertyStore() {}
-  virtual ~MockPropertyStore() {}
+  MockPropertyStore();
+  virtual ~MockPropertyStore();
+
   MOCK_METHOD1(Contains, bool(const std::string&));
   MOCK_METHOD3(SetBoolProperty, bool(const std::string&, bool, Error*));
   MOCK_METHOD3(SetInt16Property, bool(const std::string&, int16, Error*));
diff --git a/mock_rtnl_handler.cc b/mock_rtnl_handler.cc
new file mode 100644
index 0000000..01a3f72
--- /dev/null
+++ b/mock_rtnl_handler.cc
@@ -0,0 +1,13 @@
+// Copyright (c) 2011 The Chromium OS 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 "shill/mock_rtnl_handler.h"
+
+namespace shill {
+
+MockRTNLHandler::MockRTNLHandler() {}
+
+MockRTNLHandler::~MockRTNLHandler() {}
+
+}  // namespace shill
diff --git a/mock_rtnl_handler.h b/mock_rtnl_handler.h
index d08299a..b4b124b 100644
--- a/mock_rtnl_handler.h
+++ b/mock_rtnl_handler.h
@@ -5,6 +5,7 @@
 #ifndef SHILL_MOCK_RTNL_HANDLER_H_
 #define SHILL_MOCK_RTNL_HANDLER_H_
 
+#include <base/basictypes.h>
 #include <gmock/gmock.h>
 
 #include "shill/rtnl_handler.h"
@@ -13,6 +14,9 @@
 
 class MockRTNLHandler : public RTNLHandler {
  public:
+  MockRTNLHandler();
+  virtual ~MockRTNLHandler();
+
   MOCK_METHOD2(Start, void(EventDispatcher *dispatcher, Sockets *sockets));
   MOCK_METHOD1(AddListener, void(RTNLListener *to_add));
   MOCK_METHOD1(RemoveListener, void(RTNLListener *to_remove));
@@ -26,6 +30,9 @@
   MOCK_METHOD1(RequestDump, void(int request_flags));
   MOCK_METHOD1(GetInterfaceIndex, int(const std::string &interface_name));
   MOCK_METHOD1(SendMessage, bool(RTNLMessage *message));
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(MockRTNLHandler);
 };
 
 }  // namespace shill
diff --git a/mock_sockets.cc b/mock_sockets.cc
new file mode 100644
index 0000000..15b989f
--- /dev/null
+++ b/mock_sockets.cc
@@ -0,0 +1,13 @@
+// Copyright (c) 2011 The Chromium OS 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 "shill/mock_sockets.h"
+
+namespace shill {
+
+MockSockets::MockSockets() {}
+
+MockSockets::~MockSockets() {}
+
+}  // namespace shill
diff --git a/mock_sockets.h b/mock_sockets.h
index a54beef..8d80269 100644
--- a/mock_sockets.h
+++ b/mock_sockets.h
@@ -5,6 +5,7 @@
 #ifndef SHILL_MOCK_SOCKETS_H_
 #define SHILL_MOCK_SOCKETS_H_
 
+#include <base/basictypes.h>
 #include <gmock/gmock.h>
 
 #include "shill/sockets.h"
@@ -13,6 +14,9 @@
 
 class MockSockets : public Sockets {
  public:
+  MockSockets();
+  virtual ~MockSockets();
+
   MOCK_METHOD3(Bind,
                int(int sockfd, const struct sockaddr *addr, socklen_t addrlen));
   MOCK_METHOD1(Close, int(int fd));
@@ -26,6 +30,9 @@
                                const struct sockaddr *dest_addr,
                                socklen_t addrlen));
   MOCK_METHOD3(Socket, int(int domain, int type, int protocol));
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(MockSockets);
 };
 
 }  // namespace shill
diff --git a/mock_supplicant_interface_proxy.cc b/mock_supplicant_interface_proxy.cc
new file mode 100644
index 0000000..72a2fb7
--- /dev/null
+++ b/mock_supplicant_interface_proxy.cc
@@ -0,0 +1,16 @@
+// Copyright (c) 2011 The Chromium OS 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 "shill/mock_supplicant_interface_proxy.h"
+
+#include "shill/wifi.h"
+
+namespace shill {
+
+MockSupplicantInterfaceProxy::MockSupplicantInterfaceProxy(
+    const WiFiRefPtr &wifi) : wifi_(wifi) {}
+
+MockSupplicantInterfaceProxy::~MockSupplicantInterfaceProxy() {}
+
+}  // namespace shill
diff --git a/mock_supplicant_interface_proxy.h b/mock_supplicant_interface_proxy.h
index ea69639..bbaecb5 100644
--- a/mock_supplicant_interface_proxy.h
+++ b/mock_supplicant_interface_proxy.h
@@ -5,17 +5,18 @@
 #ifndef MOCK_SUPPLICANT_INTERFACE_PROXY_H_
 #define MOCK_SUPPLICANT_INTERFACE_PROXY_H_
 
+#include <base/basictypes.h>
 #include <gmock/gmock.h>
 
+#include "shill/refptr_types.h"
 #include "shill/supplicant_interface_proxy_interface.h"
 
 namespace shill {
 
 class MockSupplicantInterfaceProxy : public SupplicantInterfaceProxyInterface {
  public:
-  explicit MockSupplicantInterfaceProxy(const WiFiRefPtr &wifi) :
-      wifi_(wifi) {}
-  virtual ~MockSupplicantInterfaceProxy() {}
+  explicit MockSupplicantInterfaceProxy(const WiFiRefPtr &wifi);
+  virtual ~MockSupplicantInterfaceProxy();
 
   MOCK_METHOD1(AddNetwork, ::DBus::Path(
       const std::map<std::string, ::DBus::Variant> &args));
@@ -26,9 +27,10 @@
   MOCK_METHOD1(SelectNetwork, void(const ::DBus::Path &network));
 
  private:
-  // wifi_ is not used explicitly. but its presence here tests that
-  // WiFi::Stop properly removes cyclic references.
+  // wifi_ is not used explicitly but its presence here tests that WiFi::Stop
+  // properly removes cyclic references.
   WiFiRefPtr wifi_;
+
   DISALLOW_COPY_AND_ASSIGN(MockSupplicantInterfaceProxy);
 };
 
diff --git a/mock_supplicant_process_proxy.cc b/mock_supplicant_process_proxy.cc
new file mode 100644
index 0000000..6bafc10
--- /dev/null
+++ b/mock_supplicant_process_proxy.cc
@@ -0,0 +1,13 @@
+// Copyright (c) 2011 The Chromium OS 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 "shill/mock_supplicant_process_proxy.h"
+
+namespace shill {
+
+MockSupplicantProcessProxy::MockSupplicantProcessProxy() {}
+
+MockSupplicantProcessProxy::~MockSupplicantProcessProxy() {}
+
+}  // namespace shill
diff --git a/mock_supplicant_process_proxy.h b/mock_supplicant_process_proxy.h
index 89eb507..d47b5f7 100644
--- a/mock_supplicant_process_proxy.h
+++ b/mock_supplicant_process_proxy.h
@@ -5,16 +5,17 @@
 #ifndef MOCK_SUPPLICANT_PROCESS_PROXY_H_
 #define MOCK_SUPPLICANT_PROCESS_PROXY_H_
 
+#include <base/basictypes.h>
 #include <gmock/gmock.h>
 
-#include "supplicant_process_proxy_interface.h"
+#include "shill/supplicant_process_proxy_interface.h"
 
 namespace shill {
 
 class MockSupplicantProcessProxy : public SupplicantProcessProxyInterface {
  public:
-  MockSupplicantProcessProxy() {}
-  virtual ~MockSupplicantProcessProxy() {}
+  MockSupplicantProcessProxy();
+  virtual ~MockSupplicantProcessProxy();
 
   MOCK_METHOD1(CreateInterface,
                ::DBus::Path(
diff --git a/modem_cdma_proxy_interface.h b/modem_cdma_proxy_interface.h
index 7a333a9..249b7c4 100644
--- a/modem_cdma_proxy_interface.h
+++ b/modem_cdma_proxy_interface.h
@@ -9,6 +9,8 @@
 
 #include <base/basictypes.h>
 
+#include "shill/dbus_properties.h"
+
 namespace shill {
 
 // These are the methods that a ModemManager.Modem.CDMA proxy must support. The
diff --git a/sockets.h b/sockets.h
index bface16..31d718e 100644
--- a/sockets.h
+++ b/sockets.h
@@ -5,6 +5,7 @@
 #ifndef SHILL_SOCKETS_H_
 #define SHILL_SOCKETS_H_
 
+#include <sys/socket.h>
 #include <sys/types.h>
 
 #include <base/basictypes.h>
diff --git a/supplicant_process_proxy.cc b/supplicant_process_proxy.cc
index d3f72a4..c523acb 100644
--- a/supplicant_process_proxy.cc
+++ b/supplicant_process_proxy.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "supplicant_process_proxy.h"
+#include "shill/supplicant_process_proxy.h"
 
 #include <map>
 #include <string>