forked from facebook/react-native
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Create base MapBuffer class and tests
Summary: This diff creates the base classes for MapBuffer and its tests Reviewed By: shergin Differential Revision: D15550730 fbshipit-source-id: a5a47edebd7c3e1b8b2c3ad2006aee0f8bdb7866
- Loading branch information
1 parent
bc6dd6b
commit 9a053fc
Showing
3 changed files
with
69 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
/** | ||
* 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. | ||
*/ | ||
|
||
#include "MapBuffer.h" | ||
|
||
namespace facebook { | ||
namespace react { | ||
|
||
MapBuffer::MapBuffer() {} | ||
|
||
MapBuffer::~MapBuffer() {} | ||
|
||
} // namespace react | ||
} // namespace facebook |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
/** | ||
* 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 implemenation 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(); | ||
}; | ||
|
||
} // namespace react | ||
} // namespace facebook |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
/** | ||
* 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. | ||
*/ | ||
|
||
#include <memory> | ||
|
||
#include <gtest/gtest.h> | ||
|
||
TEST(MapBufferTest, testSomething) { | ||
// TODO | ||
} |