shill: implement manager.RequestScan (for WiFi only)

BUG=chromium-os:19831
TEST=unittests, WiFiManager/000_SSID_Length_Limit

note that 000_SSID_Length_Limit does not pass yet,
because we don't do IP configuration yet. but it
does get scan results.

Change-Id: I8993b3c646eda705271d1f7ad7d7341c692ae06b
Reviewed-on: http://gerrit.chromium.org/gerrit/7407
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Tested-by: mukesh agrawal <quiche@chromium.org>
diff --git a/manager_dbus_adaptor.cc b/manager_dbus_adaptor.cc
index fa58416..8a9ecb4 100644
--- a/manager_dbus_adaptor.cc
+++ b/manager_dbus_adaptor.cc
@@ -11,6 +11,7 @@
 #include <base/logging.h>
 #include <dbus-c++/dbus.h>
 
+#include "shill/device.h"
 #include "shill/error.h"
 #include "shill/manager.h"
 
@@ -54,6 +55,18 @@
   PropertyChanged(name, DBusAdaptor::StringToVariant(value));
 }
 
+void ManagerDBusAdaptor::EmitRpcIdentifierArrayChanged(
+    const string &name,
+    const vector<string> &value) {
+  vector< ::DBus::Path> paths;
+  vector<string>::const_iterator it;
+  for (it = value.begin(); it != value.end(); ++it) {
+    paths.push_back(*it);
+  }
+
+  PropertyChanged(name, DBusAdaptor::PathArrayToVariant(paths));
+}
+
 void ManagerDBusAdaptor::EmitStateChanged(const string &new_state) {
   StateChanged(new_state);
 }
@@ -101,8 +114,11 @@
 void ManagerDBusAdaptor::PopAnyProfile(::DBus::Error &error) {
 }
 
-void ManagerDBusAdaptor::RequestScan(const string &,
+void ManagerDBusAdaptor::RequestScan(const string &technology,
                                      ::DBus::Error &error) {
+  Error e;
+  manager_->RequestScan(technology, &e);
+  e.ToDBusError(&error);
 }
 
 void ManagerDBusAdaptor::EnableTechnology(const string &,