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.h b/manager.h
index 7c6b6f2..f11aac2 100644
--- a/manager.h
+++ b/manager.h
@@ -58,7 +58,7 @@
   void RegisterDevice(const DeviceRefPtr &to_manage);
   void DeregisterDevice(const DeviceRefPtr &to_forget);
 
-  void RegisterService(const ServiceRefPtr &to_manage);
+  virtual void RegisterService(const ServiceRefPtr &to_manage);
   void DeregisterService(const ServiceConstRefPtr &to_forget);
   virtual void UpdateService(const ServiceConstRefPtr &to_update);
 
@@ -68,6 +68,9 @@
   ServiceRefPtr FindService(const std::string& name);
   std::vector<std::string> EnumerateAvailableServices();
 
+  // called via RPC (e.g., from ManagerDBusAdaptor)
+  void RequestScan(const std::string &technology, Error *error);
+
   virtual DeviceInfo *device_info() { return &device_info_; }
   virtual PropertyStore *store() { return &store_; }