[shill] Add support for weird Cellular.SimLockStatus property
SimLockStatus is bizarre in that its type is a dictionary that maps
names to values of different types. It's { string:string,
string:uint32 }, which doesn't fit nicely into dbus-c++, because you
can't represent it trivially with an STL container -- and therefore I
have to do something special to convert it.
BUG=chromium-os:17281
TEST=unit tests
STATUS=Verified
Change-Id: I9c4e43f75c666570caae66e04293bce6207a1b99
Reviewed-on: http://gerrit.chromium.org/gerrit/3619
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
diff --git a/property_store.h b/property_store.h
index fdea66a..c452d79 100644
--- a/property_store.h
+++ b/property_store.h
@@ -74,6 +74,8 @@
PropertyConstIterator<int32> GetInt32PropertiesIter();
PropertyConstIterator<std::string> GetStringPropertiesIter();
PropertyConstIterator<Stringmap> GetStringmapPropertiesIter();
+ PropertyConstIterator<Stringmaps> GetStringmapsPropertiesIter();
+ PropertyConstIterator<StrIntPair> GetStrIntPairPropertiesIter();
PropertyConstIterator<Strings> GetStringsPropertiesIter();
PropertyConstIterator<uint8> GetUint8PropertiesIter();
PropertyConstIterator<uint16> GetUint16PropertiesIter();
@@ -90,6 +92,8 @@
void RegisterStringmap(const std::string &name, Stringmap *prop);
void RegisterConstStringmap(const std::string &name, const Stringmap *prop);
void RegisterStrings(const std::string &name, Strings *prop);
+ void RegisterConstStrings(const std::string &name, const Strings *prop);
+ void RegisterUint8(const std::string &name, uint8 *prop);
void RegisterConstUint8(const std::string &name, const uint8 *prop);
void RegisterUint16(const std::string &name, uint16 *prop);
void RegisterConstUint16(const std::string &name, const uint16 *prop);
@@ -98,8 +102,12 @@
const BoolAccessor &accessor);
void RegisterDerivedString(const std::string &name,
const StringAccessor &accessor);
+ void RegisterDerivedStringmaps(const std::string &name,
+ const StringmapsAccessor &accessor);
void RegisterDerivedStrings(const std::string &name,
const StringsAccessor &accessor);
+ void RegisterDerivedStrIntPair(const std::string &name,
+ const StrIntPairAccessor &accessor);
private:
// These are std::maps instead of something cooler because the common
@@ -109,7 +117,9 @@
std::map<std::string, Int32Accessor> int32_properties_;
std::map<std::string, StringAccessor> string_properties_;
std::map<std::string, StringmapAccessor> stringmap_properties_;
+ std::map<std::string, StringmapsAccessor> stringmaps_properties_;
std::map<std::string, StringsAccessor> strings_properties_;
+ std::map<std::string, StrIntPairAccessor> strintpair_properties_;
std::map<std::string, Uint8Accessor> uint8_properties_;
std::map<std::string, Uint16Accessor> uint16_properties_;
std::map<std::string, Uint32Accessor> uint32_properties_;