[shill] Enable the getting of properties, and wire to dbus.

PropertyStore exposes getters for iterators pointing to the beginning
and end of its property maps, and a static utility method in DBusAdaptor
uses these to iterate through all the properties in the PropertyStore and build
up a map of property name -> DBus::Variant-wrapped value.

BUG=chromium-os:16343
TEST=unit tests

Change-Id: I85ebbaee167ab2feed0fcf8fe654274de352aca0
Reviewed-on: http://gerrit.chromium.org/gerrit/3359
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
diff --git a/property_store.cc b/property_store.cc
index 8f66ed2..c2ceac4 100644
--- a/property_store.cc
+++ b/property_store.cc
@@ -91,6 +91,42 @@
   return ReturnError(name, error);
 }
 
+PropertyConstIterator<bool> PropertyStore::GetBoolPropertiesIter() {
+  return PropertyConstIterator<bool>(bool_properties_);
+}
+
+PropertyConstIterator<int16> PropertyStore::GetInt16PropertiesIter() {
+  return PropertyConstIterator<int16>(int16_properties_);
+}
+
+PropertyConstIterator<int32> PropertyStore::GetInt32PropertiesIter() {
+  return PropertyConstIterator<int32>(int32_properties_);
+}
+
+PropertyConstIterator<std::string> PropertyStore::GetStringPropertiesIter() {
+  return PropertyConstIterator<std::string>(string_properties_);
+}
+
+PropertyConstIterator<Stringmap> PropertyStore::GetStringmapPropertiesIter() {
+  return PropertyConstIterator<Stringmap>(stringmap_properties_);
+}
+
+PropertyConstIterator<Strings> PropertyStore::GetStringsPropertiesIter() {
+  return PropertyConstIterator<Strings>(strings_properties_);
+}
+
+PropertyConstIterator<uint8> PropertyStore::GetUint8PropertiesIter() {
+  return PropertyConstIterator<uint8>(uint8_properties_);
+}
+
+PropertyConstIterator<uint16> PropertyStore::GetUint16PropertiesIter() {
+  return PropertyConstIterator<uint16>(uint16_properties_);
+}
+
+PropertyConstIterator<uint32> PropertyStore::GetUint32PropertiesIter() {
+  return PropertyConstIterator<uint32>(uint32_properties_);
+}
+
 void PropertyStore::RegisterBool(const string &name, bool *prop) {
   bool_properties_[name] = BoolAccessor(new PropertyAccessor<bool>(prop));
 }