shill: Change service.device property to be a DBus::Path
Change service.device property to be a DBus::Path because it is a path
not a string. Flimflam exports the property as a path. Exporting it
as a string causes cashew to die.
Change the unit tests to use valid DBus paths which can contain
elements separated by /. Each element can contain only
[A-z][a-z][0-9]_ and cannot end in a trailing /.
BUG=chromium-os:28734
TEST=run shill unit tests, run shill on DUT. Run cashew.
Change-Id: I65fb843fb93f76d95eea6da334ad326ccb9fbd6f
Reviewed-on: https://gerrit.chromium.org/gerrit/19366
Commit-Ready: Jason Glasgow <jglasgow@chromium.org>
Reviewed-by: Jason Glasgow <jglasgow@chromium.org>
Tested-by: Jason Glasgow <jglasgow@chromium.org>
diff --git a/accessor_interface.h b/accessor_interface.h
index b47278c..527204c 100644
--- a/accessor_interface.h
+++ b/accessor_interface.h
@@ -48,6 +48,7 @@
// differently. Accordingly, PropertyStore tracks RpcIdentifiers
// separately from Strings. We create a separate typedef here, to make
// the PropertyStore-related code read more simply.
+typedef std::string RpcIdentifier;
typedef std::vector<std::string> RpcIdentifiers;
typedef std::vector<std::string> Strings;
typedef std::map<std::string, std::string> Stringmap;
@@ -62,6 +63,8 @@
// RpcIdentifiersAccessor exists (even though it has the same
// underlying type as StringsAccessor).
typedef std::tr1::shared_ptr<
+ AccessorInterface<RpcIdentifier> > RpcIdentifierAccessor;
+typedef std::tr1::shared_ptr<
AccessorInterface<std::vector<std::string> > >RpcIdentifiersAccessor;
typedef std::tr1::shared_ptr<AccessorInterface<std::string> > StringAccessor;
typedef std::tr1::shared_ptr<AccessorInterface<Stringmap> > StringmapAccessor;