Made a DataStorage for live editing in flipper
Summary: Theadsafe Data Storage for new insets in CKInsetComponent Reviewed By: kevin0571 Differential Revision: D16338091 fbshipit-source-id: 3b77652a4d08cfebce115a606af3fc3440a1aca0
This commit is contained in:
committed by
Facebook Github Bot
parent
dcf8bc1799
commit
89911acd84
@@ -0,0 +1,16 @@
|
|||||||
|
/*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#import <ComponentKit/CKTreeNodeTypes.h>
|
||||||
|
|
||||||
|
/** DataStorage uses to map global IDs of nodes to data which we want to store
|
||||||
|
to prodice live editing*/
|
||||||
|
@interface FKDataStorageForLiveEditing : NSObject
|
||||||
|
|
||||||
|
- (id)dataForTreeNodeIdentifier:(CKTreeNodeIdentifier)treeNodeIdentifier;
|
||||||
|
- (void)setData:(id)value forTreeNodeIdentifier:(CKTreeNodeIdentifier)treeNodeIdentifier;
|
||||||
|
|
||||||
|
@end
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
/*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#import "FKDataStorageForLiveEditing.h"
|
||||||
|
#import <ComponentKit/CKComponentScopeTypes.h>
|
||||||
|
#import <mutex>
|
||||||
|
|
||||||
|
@implementation FKDataStorageForLiveEditing {
|
||||||
|
std::unordered_map<CKTreeNodeIdentifier, id> _data;
|
||||||
|
std::mutex _mutex;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)setData:(id)value forTreeNodeIdentifier:(CKTreeNodeIdentifier)treeNodeIdentifier {
|
||||||
|
std::lock_guard<std::mutex> lock(_mutex);
|
||||||
|
_data[treeNodeIdentifier] = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (id)dataForTreeNodeIdentifier:(CKTreeNodeIdentifier)treeNodeIdentifier {
|
||||||
|
std::lock_guard<std::mutex> lock(_mutex);
|
||||||
|
return (_data.count(treeNodeIdentifier) ? _data[treeNodeIdentifier] : nil);
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
Reference in New Issue
Block a user