shill: SupplicantInterfaceProxy: Move Events to delegate

Previously the SupplicantInterfaceProxy sent events directly to a
WiFi device reference.  In moving towards using wpa_supplicant on
wired interfaces, create a SupplicantEventDelegateInterface on
which these events are invoked instead.  WiFi Devices methods
which accepted supplicant events are now an implementation of
this interface.  While here, also move kSupplicantConfPath
to wpa_supplicant (since it isn't WiFi specific) and add a "wired"
driver.

BUG=chromium:224509
TEST=Unit tests + manual association

Change-Id: Id19a70254ad1256e9933a9512ab93e5951582634
Reviewed-on: https://gerrit.chromium.org/gerrit/46726
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
diff --git a/supplicant_event_delegate_interface.h b/supplicant_event_delegate_interface.h
new file mode 100644
index 0000000..c4b3383
--- /dev/null
+++ b/supplicant_event_delegate_interface.h
@@ -0,0 +1,36 @@
+// Copyright (c) 2013 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_EVENT_DELEGATE_INTERFACE_H_
+#define SUPPLICANT_EVENT_DELEGATE_INTERFACE_H_
+
+#include <map>
+#include <string>
+
+#include <dbus-c++/dbus.h>
+
+namespace shill {
+
+// SupplicantEventDelegateInterface declares the set of methods that
+// a SupplicantInterfaceProxy calls on an interested party when
+// wpa_supplicant events occur on the network interface interface.
+class SupplicantEventDelegateInterface {
+ public:
+  typedef std::map<std::string, ::DBus::Variant> PropertyMap;
+
+  virtual ~SupplicantEventDelegateInterface() {}
+
+  virtual void BSSAdded(const ::DBus::Path &BSS,
+                        const PropertyMap &properties) = 0;
+  virtual void BSSRemoved(const ::DBus::Path &BSS) = 0;
+  virtual void Certification(const PropertyMap &properties) = 0;
+  virtual void EAPEvent(const std::string &status,
+                        const std::string &parameter) = 0;
+  virtual void PropertiesChanged(const PropertyMap &properties) = 0;
+  virtual void ScanDone() = 0;
+};
+
+}  // namespace shill
+
+#endif  // SUPPLICANT_EVENT_DELEGATE_INTERFACE_H_