summaryrefslogtreecommitdiffstats
path: root/dbus/property.cc
diff options
context:
space:
mode:
authorarmansito@chromium.org <armansito@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-15 07:40:49 +0000
committerarmansito@chromium.org <armansito@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-15 07:40:49 +0000
commitebbfffa2f19d6d4727586710dd49be63fcd8e1e2 (patch)
treeca18177ab6074fd42aa589b53581ad7ca8d67983 /dbus/property.cc
parentdf42c35236e9570d64477009bf89fb42baee7b60 (diff)
downloadchromium_src-ebbfffa2f19d6d4727586710dd49be63fcd8e1e2.zip
chromium_src-ebbfffa2f19d6d4727586710dd49be63fcd8e1e2.tar.gz
chromium_src-ebbfffa2f19d6d4727586710dd49be63fcd8e1e2.tar.bz2
dbus: Add template specialization for Property<vector<uint8> >.
BUG=351229 TEST=dbus_unittests Review URL: https://codereview.chromium.org/199573003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@257315 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'dbus/property.cc')
-rw-r--r--dbus/property.cc28
1 files changed, 28 insertions, 0 deletions
diff --git a/dbus/property.cc b/dbus/property.cc
index 9289c86..774719f 100644
--- a/dbus/property.cc
+++ b/dbus/property.cc
@@ -449,4 +449,32 @@ void Property<std::vector<ObjectPath> >::AppendSetValueToWriter(
writer->CloseContainer(&variant_writer);
}
+//
+// Property<std::vector<uint8> > specialization.
+//
+
+template <>
+bool Property<std::vector<uint8> >::PopValueFromReader(MessageReader* reader) {
+ MessageReader variant_reader(NULL);
+ if (!reader->PopVariant(&variant_reader))
+ return false;
+
+ value_.clear();
+ const uint8* bytes = NULL;
+ size_t length = 0;
+ if (!variant_reader.PopArrayOfBytes(&bytes, &length))
+ return false;
+ value_.assign(bytes, bytes + length);
+ return true;
+}
+
+template <>
+void Property<std::vector<uint8> >::AppendSetValueToWriter(
+ MessageWriter* writer) {
+ MessageWriter variant_writer(NULL);
+ writer->OpenVariant("ay", &variant_writer);
+ variant_writer.AppendArrayOfBytes(set_value_.data(), set_value_.size());
+ writer->CloseContainer(&variant_writer);
+}
+
} // namespace dbus