shill: refactor supplicant_process_proxy and supplicant_interface_proxy

move these to separate files, and add a layer of indirection. this is
a step towards adding more unittests for wifi. (after breaking out these
classes, we can define mocks of them.)

BUG=chromium-os:16785
TEST=FEATURES="test nostrip noclean" emerge-x86-generic shill

Change-Id: I18570d47514bac0493d053f1a82b4d79a1565ad2
Reviewed-on: http://gerrit.chromium.org/gerrit/4117
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Tested-by: mukesh agrawal <quiche@chromium.org>
diff --git a/supplicant_interface_proxy_interface.h b/supplicant_interface_proxy_interface.h
new file mode 100644
index 0000000..c4be6b9
--- /dev/null
+++ b/supplicant_interface_proxy_interface.h
@@ -0,0 +1,32 @@
+// 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.
+
+#ifndef SUPPLICANT_INTERFACE_PROXY_INTERFACE_H_
+#define SUPPLICANT_INTERFACE_PROXY_INTERFACE_H_
+
+#include <map>
+#include <string>
+
+#include <dbus-c++/dbus.h>
+
+namespace shill {
+
+// SupplicantInterfaceProxyInterface declares only the subset of
+// fi::w1::wpa_supplicant1::Interface_proxy that is actually used by WiFi.
+class SupplicantInterfaceProxyInterface {
+ public:
+  virtual ~SupplicantInterfaceProxyInterface() {}
+
+  virtual ::DBus::Path AddNetwork(
+      const std::map<std::string, ::DBus::Variant> &args) = 0;
+  virtual void FlushBSS(const uint32_t &age) = 0;
+  virtual void RemoveAllNetworks() = 0;
+  virtual void Scan(
+      const std::map<std::string, ::DBus::Variant> &args) = 0;
+  virtual void SelectNetwork(const ::DBus::Path &network) = 0;
+};
+
+}  // namespace shill
+
+#endif  // SUPPLICANT_INTERFACE_PROXY_INTERFACE_H_