session-ios/Signal/src/ViewControllers/DebugUI/DebugUIMessagesAction.h
2018-04-02 10:07:15 -04:00

63 lines
2 KiB
Objective-C

//
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
//
#import "DebugUIMessagesUtils.h"
NS_ASSUME_NONNULL_BEGIN
@interface DebugUIMessagesAction : NSObject
@property (nonatomic) NSString *label;
- (void)prepareAndPerformNTimes:(NSUInteger)count;
@end
#pragma mark -
@interface DebugUIMessagesSingleAction : DebugUIMessagesAction
+ (DebugUIMessagesAction *)actionWithLabel:(NSString *)label
staggeredActionBlock:(StaggeredActionBlock)staggeredActionBlock;
+ (DebugUIMessagesAction *)actionWithLabel:(NSString *)label
unstaggeredActionBlock:(UnstaggeredActionBlock)unstaggeredActionBlock;
+ (DebugUIMessagesAction *)actionWithLabel:(NSString *)label
staggeredActionBlock:(StaggeredActionBlock)staggeredActionBlock
prepareBlock:(ActionPrepareBlock)prepareBlock;
+ (DebugUIMessagesAction *)actionWithLabel:(NSString *)label
unstaggeredActionBlock:(UnstaggeredActionBlock)unstaggeredActionBlock
prepareBlock:(ActionPrepareBlock)prepareBlock;
@end
#pragma mark -
typedef NS_ENUM(NSUInteger, SubactionMode) {
SubactionMode_Random = 0,
SubactionMode_Ordered,
};
@interface DebugUIMessagesGroupAction : DebugUIMessagesAction
@property (nonatomic, readonly) SubactionMode subactionMode;
@property (nonatomic, readonly, nullable) NSArray<DebugUIMessagesAction *> *subactions;
// Given a group of subactions, perform a single random subaction each time.
+ (DebugUIMessagesAction *)randomGroupActionWithLabel:(NSString *)label
subactions:(NSArray<DebugUIMessagesAction *> *)subactions;
// Given a group of subactions, perform the subactions in order.
//
// If prepareAndPerformNTimes: is called with count == subactions.count, all of the subactions
// are performed exactly once.
+ (DebugUIMessagesAction *)allGroupActionWithLabel:(NSString *)label
subactions:(NSArray<DebugUIMessagesAction *> *)subactions;
@end
NS_ASSUME_NONNULL_END