mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
89beefaefb
Summary: Setup test infra into mapBuffer project changelog: [internal] Reviewed By: JoshuaGross Differential Revision: D25733949 fbshipit-source-id: bcfc89d87e28dc5a6ed28bc6b56893aa6f191e71
40 lines
1.2 KiB
C++
40 lines
1.2 KiB
C++
/*
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <string>
|
|
|
|
namespace facebook {
|
|
namespace react {
|
|
|
|
/**
|
|
* MapBuffer is an optimized map format for transferring data like props between
|
|
* C++ and other platforms The implementation of this map is optimized to:
|
|
* - be compact to optimize space when sparse (sparse is the common case).
|
|
* - be accessible through JNI with zero/minimal copying via ByteBuffer.
|
|
* - be Have excellent C++ single-write and many-read performance by maximizing
|
|
* CPU cache performance through compactness, data locality, and fixed offsets
|
|
* where possible.
|
|
* - be optimized for iteration and intersection against other maps, but with
|
|
* reasonably good random access as well.
|
|
* - Work recursively for nested maps/arrays.
|
|
* - Supports dynamic types that map to JSON.
|
|
* - Don't require mutability - single-write on creation.
|
|
* - have minimal APK size and build time impact.
|
|
*/
|
|
class MapBuffer {
|
|
public:
|
|
MapBuffer();
|
|
virtual ~MapBuffer();
|
|
|
|
int getSize();
|
|
};
|
|
|
|
} // namespace react
|
|
} // namespace facebook
|