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 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
157 typename MaybeConstUserType, | 157 typename MaybeConstUserType, |
158 typename UserTypeReader> | 158 typename UserTypeReader> |
159 struct ArraySerializer<MojomType, | 159 struct ArraySerializer<MojomType, |
160 MaybeConstUserType, | 160 MaybeConstUserType, |
161 UserTypeReader, | 161 UserTypeReader, |
162 ArraySerializerType::BOOLEAN> { | 162 ArraySerializerType::BOOLEAN> { |
163 using UserType = typename std::remove_const<MaybeConstUserType>::type; | 163 using UserType = typename std::remove_const<MaybeConstUserType>::type; |
164 using Traits = ArrayTraits<UserType>; | 164 using Traits = ArrayTraits<UserType>; |
165 using Data = typename MojomType::Data_; | 165 using Data = typename MojomType::Data_; |
166 | 166 |
167 static_assert(std::is_same<bool, typename UserType::Element>::value, | 167 static_assert(std::is_same<bool, typename Traits::Element>::value, |
168 "Incorrect array serializer"); | 168 "Incorrect array serializer"); |
169 | 169 |
170 static size_t GetSerializedSize(UserTypeReader* input, | 170 static size_t GetSerializedSize(UserTypeReader* input, |
171 SerializationContext* context) { | 171 SerializationContext* context) { |
172 return sizeof(Data) + Align((input->GetSize() + 7) / 8); | 172 return sizeof(Data) + Align((input->GetSize() + 7) / 8); |
173 } | 173 } |
174 | 174 |
175 static void SerializeElements(UserTypeReader* input, | 175 static void SerializeElements(UserTypeReader* input, |
176 Buffer* buf, | 176 Buffer* buf, |
177 Data* output, | 177 Data* output, |
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
457 if (!input) | 457 if (!input) |
458 return CallSetToNullIfExists<Traits>(output); | 458 return CallSetToNullIfExists<Traits>(output); |
459 return Impl::DeserializeElements(input, output, context); | 459 return Impl::DeserializeElements(input, output, context); |
460 } | 460 } |
461 }; | 461 }; |
462 | 462 |
463 } // namespace internal | 463 } // namespace internal |
464 } // namespace mojo | 464 } // namespace mojo |
465 | 465 |
466 #endif // MOJO_PUBLIC_CPP_BINDINGS_LIB_ARRAY_SERIALIZATION_H_ | 466 #endif // MOJO_PUBLIC_CPP_BINDINGS_LIB_ARRAY_SERIALIZATION_H_ |
OLD | NEW |