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/dbus_adaptor.cc b/dbus_adaptor.cc
index d84ee0a..96672d7 100644
--- a/dbus_adaptor.cc
+++ b/dbus_adaptor.cc
@@ -21,6 +21,8 @@
namespace shill {
// static
+const char DBusAdaptor::kPathArraySig[] = "ao";
+// static
const char DBusAdaptor::kStringmapSig[] = "a{ss}";
// static
const char DBusAdaptor::kStringmapsSig[] = "aa{ss}";
@@ -166,6 +168,19 @@
}
// static
+::DBus::Variant DBusAdaptor::PathArrayToVariant(
+ const vector< ::DBus::Path> &value) {
+ ::DBus::MessageIter writer;
+ ::DBus::Variant v;
+
+ // TODO(quiche): figure out why we can't use operator<< without the
+ // temporary variable.
+ writer = v.writer();
+ writer << value;
+ return v;
+}
+
+// static
::DBus::Variant DBusAdaptor::StringToVariant(const string &value) {
::DBus::Variant v;
v.writer().append_string(value.c_str());
@@ -245,6 +260,11 @@
}
// static
+bool DBusAdaptor::IsPathArray(::DBus::Signature signature) {
+ return signature == DBusAdaptor::kPathArraySig;
+}
+
+// static
bool DBusAdaptor::IsString(::DBus::Signature signature) {
return signature == ::DBus::type<string>::sig();
}