OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #ifndef MOJO_PUBLIC_CPP_BINDINGS_LIB_ARRAY_SERIALIZATION_H_ | 5 #ifndef MOJO_PUBLIC_CPP_BINDINGS_LIB_ARRAY_SERIALIZATION_H_ |
6 #define MOJO_PUBLIC_CPP_BINDINGS_LIB_ARRAY_SERIALIZATION_H_ | 6 #define MOJO_PUBLIC_CPP_BINDINGS_LIB_ARRAY_SERIALIZATION_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 #include <string.h> // For |memcpy()|. | 9 #include <string.h> // For |memcpy()|. |
10 | 10 |
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
156 typename MaybeConstUserType, | 156 typename MaybeConstUserType, |
157 typename UserTypeReader> | 157 typename UserTypeReader> |
158 struct ArraySerializer<MojomType, | 158 struct ArraySerializer<MojomType, |
159 MaybeConstUserType, | 159 MaybeConstUserType, |
160 UserTypeReader, | 160 UserTypeReader, |
161 ArraySerializerType::BOOLEAN> { | 161 ArraySerializerType::BOOLEAN> { |
162 using UserType = typename std::remove_const<MaybeConstUserType>::type; | 162 using UserType = typename std::remove_const<MaybeConstUserType>::type; |
163 using Traits = ArrayTraits<UserType>; | 163 using Traits = ArrayTraits<UserType>; |
164 using Data = typename MojomType::Data_; | 164 using Data = typename MojomType::Data_; |
165 | 165 |
166 static_assert(std::is_same<bool, typename UserType::Element>::value, | 166 static_assert(std::is_same<bool, typename Traits::Element>::value, |
167 "Incorrect array serializer"); | 167 "Incorrect array serializer"); |
168 | 168 |
169 static size_t GetSerializedSize(UserTypeReader* input, | 169 static size_t GetSerializedSize(UserTypeReader* input, |
170 SerializationContext* context) { | 170 SerializationContext* context) { |
171 return sizeof(Data) + Align((input->GetSize() + 7) / 8); | 171 return sizeof(Data) + Align((input->GetSize() + 7) / 8); |
172 } | 172 } |
173 | 173 |
174 static void SerializeElements(UserTypeReader* input, | 174 static void SerializeElements(UserTypeReader* input, |
175 Buffer* buf, | 175 Buffer* buf, |
176 Data* output, | 176 Data* output, |
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
452 if (!input) | 452 if (!input) |
453 return CallSetToNullIfExists<Traits>(output); | 453 return CallSetToNullIfExists<Traits>(output); |
454 return Impl::DeserializeElements(input, output, context); | 454 return Impl::DeserializeElements(input, output, context); |
455 } | 455 } |
456 }; | 456 }; |
457 | 457 |
458 } // namespace internal | 458 } // namespace internal |
459 } // namespace mojo | 459 } // namespace mojo |
460 | 460 |
461 #endif // MOJO_PUBLIC_CPP_BINDINGS_LIB_ARRAY_SERIALIZATION_H_ | 461 #endif // MOJO_PUBLIC_CPP_BINDINGS_LIB_ARRAY_SERIALIZATION_H_ |
OLD | NEW |