diff options
author | armansito@chromium.org <armansito@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-15 07:40:49 +0000 |
---|---|---|
committer | armansito@chromium.org <armansito@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-15 07:40:49 +0000 |
commit | ebbfffa2f19d6d4727586710dd49be63fcd8e1e2 (patch) | |
tree | ca18177ab6074fd42aa589b53581ad7ca8d67983 /dbus/property.cc | |
parent | df42c35236e9570d64477009bf89fb42baee7b60 (diff) | |
download | chromium_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.cc | 28 |
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 |