Swiftgram/Source/Details/ASWeakSet.h
appleguy 465abb1ded [License] Simplify the Texture license to be pure Apache 2 (removing ASDK-Licenses). (#1077)
* [License] Simplify the Texture license to be pure Apache 2 (removing ASDK-Licenses)

With permission of the Facebook Open Source team, we are simplifying the Texture
license so that clients can rely on the Apache 2 terms that most of Texture is
already covered by. This means that code originally forked from AsyncDisplayKit
will be re-licensed from "BSD 3-clause + PATENTS v2" to Apache 2 without a
PATENTS file.

After getting confirmation that the updates to these core files look good, we'll
propagate this new license header to all files (in this same PR) and get sign-off
from all parties before landing.

* [License] Update all Texture source files to be pure Apache 2.

* Changelog entry for Apache 2 license update.

* Revert "[License] Update all Texture source files to be pure Apache 2."

This reverts commit ffa0fbbba9717d871dd16c4b07539f2f8208fc2b.

* [License] Update all Texture source files to be pure Apache 2, maintaining copyrights.

* [License] Update CONTRIBUTING, README, Podspec & Dangerfile.
2018-08-28 07:39:18 -07:00

51 lines
1.5 KiB
Objective-C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// ASWeakSet.h
// Texture
//
// Copyright (c) Facebook, Inc. and its affiliates. All rights reserved.
// Changes after 4/13/2017 are: Copyright (c) Pinterest, Inc. All rights reserved.
// Licensed under Apache 2.0: http://www.apache.org/licenses/LICENSE-2.0
//
#import <Foundation/Foundation.h>
#import <AsyncDisplayKit/ASBaseDefines.h>
NS_ASSUME_NONNULL_BEGIN
/**
* A class similar to NSSet that stores objects weakly.
* Note that this class uses NSPointerFunctionsObjectPointerPersonality
* that is, it uses shifted pointer for hashing, and identity comparison for equality.
*/
AS_SUBCLASSING_RESTRICTED
@interface ASWeakSet<__covariant ObjectType> : NSObject<NSFastEnumeration>
/// Returns YES if the receiver is empty, NO otherwise.
@property (nonatomic, readonly, getter=isEmpty) BOOL empty;
/// Returns YES if `object` is in the receiver, NO otherwise.
- (BOOL)containsObject:(ObjectType)object AS_WARN_UNUSED_RESULT;
/// Insets `object` into the set.
- (void)addObject:(ObjectType)object;
/// Removes object from the set.
- (void)removeObject:(ObjectType)object;
/// Removes all objects from the set.
- (void)removeAllObjects;
/// Returns a standard *retained* NSArray of all objects. Not free to generate, but useful for iterating over contents.
- (NSArray<ObjectType> *)allObjects AS_WARN_UNUSED_RESULT;
/**
* How many objects are contained in this set.
* NOTE: This computed property is O(N). Consider using the `empty` property.
*/
@property (nonatomic, readonly) NSUInteger count;
@end
NS_ASSUME_NONNULL_END