| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "dbus/values_util.h" | 5 #include "dbus/values_util.h" |
| 6 | 6 |
| 7 #include "base/json/json_writer.h" | 7 #include "base/json/json_writer.h" |
| 8 #include "base/logging.h" | 8 #include "base/logging.h" |
| 9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
| 10 #include "base/values.h" | 10 #include "base/values.h" |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 87 | 87 |
| 88 } // namespace | 88 } // namespace |
| 89 | 89 |
| 90 base::Value* PopDataAsValue(MessageReader* reader) { | 90 base::Value* PopDataAsValue(MessageReader* reader) { |
| 91 base::Value* result = NULL; | 91 base::Value* result = NULL; |
| 92 switch (reader->GetDataType()) { | 92 switch (reader->GetDataType()) { |
| 93 case Message::INVALID_DATA: | 93 case Message::INVALID_DATA: |
| 94 // Do nothing. | 94 // Do nothing. |
| 95 break; | 95 break; |
| 96 case Message::BYTE: { | 96 case Message::BYTE: { |
| 97 uint8 value = 0; | 97 uint8_t value = 0; |
| 98 if (reader->PopByte(&value)) | 98 if (reader->PopByte(&value)) |
| 99 result = new base::FundamentalValue(value); | 99 result = new base::FundamentalValue(value); |
| 100 break; | 100 break; |
| 101 } | 101 } |
| 102 case Message::BOOL: { | 102 case Message::BOOL: { |
| 103 bool value = false; | 103 bool value = false; |
| 104 if (reader->PopBool(&value)) | 104 if (reader->PopBool(&value)) |
| 105 result = new base::FundamentalValue(value); | 105 result = new base::FundamentalValue(value); |
| 106 break; | 106 break; |
| 107 } | 107 } |
| 108 case Message::INT16: { | 108 case Message::INT16: { |
| 109 int16 value = 0; | 109 int16_t value = 0; |
| 110 if (reader->PopInt16(&value)) | 110 if (reader->PopInt16(&value)) |
| 111 result = new base::FundamentalValue(value); | 111 result = new base::FundamentalValue(value); |
| 112 break; | 112 break; |
| 113 } | 113 } |
| 114 case Message::UINT16: { | 114 case Message::UINT16: { |
| 115 uint16 value = 0; | 115 uint16_t value = 0; |
| 116 if (reader->PopUint16(&value)) | 116 if (reader->PopUint16(&value)) |
| 117 result = new base::FundamentalValue(value); | 117 result = new base::FundamentalValue(value); |
| 118 break; | 118 break; |
| 119 } | 119 } |
| 120 case Message::INT32: { | 120 case Message::INT32: { |
| 121 int32 value = 0; | 121 int32_t value = 0; |
| 122 if (reader->PopInt32(&value)) | 122 if (reader->PopInt32(&value)) |
| 123 result = new base::FundamentalValue(value); | 123 result = new base::FundamentalValue(value); |
| 124 break; | 124 break; |
| 125 } | 125 } |
| 126 case Message::UINT32: { | 126 case Message::UINT32: { |
| 127 uint32 value = 0; | 127 uint32_t value = 0; |
| 128 if (reader->PopUint32(&value)) | 128 if (reader->PopUint32(&value)) |
| 129 result = new base::FundamentalValue(static_cast<double>(value)); | 129 result = new base::FundamentalValue(static_cast<double>(value)); |
| 130 break; | 130 break; |
| 131 } | 131 } |
| 132 case Message::INT64: { | 132 case Message::INT64: { |
| 133 int64 value = 0; | 133 int64_t value = 0; |
| 134 if (reader->PopInt64(&value)) { | 134 if (reader->PopInt64(&value)) { |
| 135 DLOG_IF(WARNING, !IsExactlyRepresentableByDouble(value)) << | 135 DLOG_IF(WARNING, !IsExactlyRepresentableByDouble(value)) << |
| 136 value << " is not exactly representable by double"; | 136 value << " is not exactly representable by double"; |
| 137 result = new base::FundamentalValue(static_cast<double>(value)); | 137 result = new base::FundamentalValue(static_cast<double>(value)); |
| 138 } | 138 } |
| 139 break; | 139 break; |
| 140 } | 140 } |
| 141 case Message::UINT64: { | 141 case Message::UINT64: { |
| 142 uint64 value = 0; | 142 uint64_t value = 0; |
| 143 if (reader->PopUint64(&value)) { | 143 if (reader->PopUint64(&value)) { |
| 144 DLOG_IF(WARNING, !IsExactlyRepresentableByDouble(value)) << | 144 DLOG_IF(WARNING, !IsExactlyRepresentableByDouble(value)) << |
| 145 value << " is not exactly representable by double"; | 145 value << " is not exactly representable by double"; |
| 146 result = new base::FundamentalValue(static_cast<double>(value)); | 146 result = new base::FundamentalValue(static_cast<double>(value)); |
| 147 } | 147 } |
| 148 break; | 148 break; |
| 149 } | 149 } |
| 150 case Message::DOUBLE: { | 150 case Message::DOUBLE: { |
| 151 double value = 0; | 151 double value = 0; |
| 152 if (reader->PopDouble(&value)) | 152 if (reader->PopDouble(&value)) |
| (...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 298 } | 298 } |
| 299 | 299 |
| 300 void AppendValueDataAsVariant(MessageWriter* writer, const base::Value& value) { | 300 void AppendValueDataAsVariant(MessageWriter* writer, const base::Value& value) { |
| 301 MessageWriter variant_writer(NULL); | 301 MessageWriter variant_writer(NULL); |
| 302 writer->OpenVariant(GetTypeSignature(value), &variant_writer); | 302 writer->OpenVariant(GetTypeSignature(value), &variant_writer); |
| 303 AppendValueData(&variant_writer, value); | 303 AppendValueData(&variant_writer, value); |
| 304 writer->CloseContainer(&variant_writer); | 304 writer->CloseContainer(&variant_writer); |
| 305 } | 305 } |
| 306 | 306 |
| 307 } // namespace dbus | 307 } // namespace dbus |
| OLD | NEW |