FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
AsyncDisplayKit/AsyncDisplayKit/Private/ASWeakMap.h at master · HackPlan/AsyncDisplayKit · GitHub
Uh oh!
There was an error while loading.
Please reload this page
.
HackPlan
/
AsyncDisplayKit
Public
forked from
facebookarchive/AsyncDisplayKit
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Wiki
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
AsyncDisplayKit
/
AsyncDisplayKit
/
Private
/
ASWeakMap.h
Copy path
More file actions
More file actions
Latest commit
History
History
History
60 lines (47 loc) · 2.15 KB
Breadcrumbs
AsyncDisplayKit
/
AsyncDisplayKit
/
Private
/
ASWeakMap.h
Copy path
File metadata and controls
60 lines (47 loc) · 2.15 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//
//
ASWeakMap.h
//
AsyncDisplayKit
//
//
Created by Chris Danford on 7/11/16.
//
//
Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
//
This source code is licensed under the BSD-style license found in the
//
LICENSE file in the root directory of this source tree. An additional grant
//
of patent rights can be found in the PATENTS file in the same directory.
//
#
import
<
Foundation/Foundation.h
>
#
import
<
AsyncDisplayKit/ASBaseDefines.h
>
NS_ASSUME_NONNULL_BEGIN
/*
*
* This class is used in conjunction with ASWeakMap. Instances of this type are returned by an ASWeakMap,
* must retain this value for as long as they want the entry to exist in the map.
*/
@interface
ASWeakMapEntry
<Value> :
NSObject
@property
(
nonatomic
,
retain
,
readonly
) Value value;
@end
/*
*
* This is not a full-featured map. It does not support features like `count` and FastEnumeration because there
* is not currently a need.
*
* This is a map that does not retain keys or values added to it. When both getting and setting, the caller is
* returned a ASWeakMapEntry and must retain it for as long as it wishes the key/value to remain in the map.
* We return a single Entry value to the caller to avoid two potential problems:
*
* 1) It's easier for callers to retain one value (the Entry) and not two (a key and a value).
* 2) Key values are tested for `isEqual` equality. If if a caller asks for a key "A" that is equal to a key "B"
* already in the map, then we need the caller to retain key "B" and not key "A". Returning an Entry simplifies
* the semantics.
*
* The underlying storage is a hash table and the Key type should implement `hash` and `isEqual:`.
*/
@interface
ASWeakMap
<__covariant Key :
NSObject
*, Value> :
NSObject
/*
*
* Read from the cache. The Value object is accessible from the returned ASWeakMapEntry.
*/
- (nullable ASWeakMapEntry<Value> *)
entryForKey
:
(Key)
key
AS_WARN_UNUSED_RESULT;
/*
*
* Put a value into the cache. If an entry with an equal key already exists, then the value is updated on the existing entry.
*/
- (ASWeakMapEntry<Value> *)
setObject
:
(Value)
value
forKey
:
(Key)
key
AS_WARN_UNUSED_RESULT;
@end
NS_ASSUME_NONNULL_END
Back
|
FazBrowse Home
|
New Git URL