[ASDisplayNode] Add Event Tracing to Help Debugging (#2243)

* Add some simple event logging for ASDisplayNode

Improve the tracing

* Add header to copy files phase

* Make event header public
This commit is contained in:
Adlai Holler
2016-09-15 13:24:19 -07:00
committed by GitHub
parent 8459c1e825
commit 25de53bb13
12 changed files with 315 additions and 27 deletions

View File

@@ -50,16 +50,47 @@ typedef NS_OPTIONS(NSUInteger, ASHierarchyState)
ASHierarchyStateLayoutPending = 1 << 3
};
inline BOOL ASHierarchyStateIncludesLayoutPending(ASHierarchyState hierarchyState)
ASDISPLAYNODE_INLINE BOOL ASHierarchyStateIncludesLayoutPending(ASHierarchyState hierarchyState)
{
return ((hierarchyState & ASHierarchyStateLayoutPending) == ASHierarchyStateLayoutPending);
}
inline BOOL ASHierarchyStateIncludesRangeManaged(ASHierarchyState hierarchyState)
ASDISPLAYNODE_INLINE BOOL ASHierarchyStateIncludesRangeManaged(ASHierarchyState hierarchyState)
{
return ((hierarchyState & ASHierarchyStateRangeManaged) == ASHierarchyStateRangeManaged);
}
ASDISPLAYNODE_INLINE BOOL ASHierarchyStateIncludesRasterized(ASHierarchyState hierarchyState)
{
return ((hierarchyState & ASHierarchyStateRasterized) == ASHierarchyStateRasterized);
}
ASDISPLAYNODE_INLINE BOOL ASHierarchyStateIncludesTransitioningSupernodes(ASHierarchyState hierarchyState)
{
return ((hierarchyState & ASHierarchyStateTransitioningSupernodes) == ASHierarchyStateTransitioningSupernodes);
}
__unused static NSString * _Nonnull NSStringFromASHierarchyState(ASHierarchyState hierarchyState)
{
NSMutableArray *states = [NSMutableArray array];
if (hierarchyState == ASHierarchyStateNormal) {
[states addObject:@"Normal"];
}
if (ASHierarchyStateIncludesRangeManaged(hierarchyState)) {
[states addObject:@"RangeManaged"];
}
if (ASHierarchyStateIncludesLayoutPending(hierarchyState)) {
[states addObject:@"LayoutPending"];
}
if (ASHierarchyStateIncludesRasterized(hierarchyState)) {
[states addObject:@"Rasterized"];
}
if (ASHierarchyStateIncludesTransitioningSupernodes(hierarchyState)) {
[states addObject:@"TransitioningSupernodes"];
}
return [NSString stringWithFormat:@"{ %@ }", [states componentsJoinedByString:@" | "]];
}
@interface ASDisplayNode ()
{
@protected