Chromium Code Reviews| Index: mojo/public/c/bindings/map.h |
| diff --git a/mojo/public/c/bindings/map.h b/mojo/public/c/bindings/map.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..3d9777deaf5853714db9d8cd3b5317f7d0afceca |
| --- /dev/null |
| +++ b/mojo/public/c/bindings/map.h |
| @@ -0,0 +1,37 @@ |
| +// Copyright 2016 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef MOJO_PUBLIC_C_BINDINGS_MAP_H_ |
| +#define MOJO_PUBLIC_C_BINDINGS_MAP_H_ |
| + |
| +#include <stdint.h> |
| + |
| +#include "mojo/public/c/bindings/array.h" |
| +#include "mojo/public/c/bindings/buffer.h" |
| +#include "mojo/public/c/bindings/struct.h" |
| +#include "mojo/public/c/system/macros.h" |
| + |
| +MOJO_BEGIN_EXTERN_C |
| + |
| +// A mojom Map is a mojom struct with two MojomArrays: keys and values. |
| +// - Number of elements in keys == number of elements values. |
| +// - ith key corresponds to the ith value. |
| +struct MojomMap { |
|
viettrungluu
2016/06/17 20:37:19
MojomMapHeader?
vardhan
2016/06/21 16:07:36
Done.
|
| + struct MojomStructHeader header; |
| + union MojomArrayPtr keys; |
| + union MojomArrayPtr values; |
| +}; |
| +MOJO_STATIC_ASSERT(sizeof(struct MojomMap) == 24, |
| + "struct MojomMap must be 24 bytes."); |
| + |
| +union MojomMapPtr { |
| + struct MojomMap* ptr; |
| + uint64_t offset; |
| +}; |
| +MOJO_STATIC_ASSERT(sizeof(union MojomMapPtr) == 8, |
| + "MojomMapPtr must be 8 bytes."); |
| + |
| +MOJO_END_EXTERN_C |
| + |
| +#endif // MOJO_PUBLIC_C_BINDINGS_MAP_H_ |