12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- //
- // QNTransactionManager.h
- // QiniuSDK
- //
- // Created by yangsen on 2020/4/1.
- // Copyright © 2020 Qiniu. All rights reserved.
- //
- #import <Foundation/Foundation.h>
- NS_ASSUME_NONNULL_BEGIN
- @interface QNTransaction : NSObject
- /// 事务名称
- @property(nonatomic, copy, readonly)NSString *name;
- /// 事务延迟执行时间 单位:秒
- @property(nonatomic, assign, readonly)NSInteger after;
- /// 事务内容
- @property(nonatomic, copy, readonly)void(^action)(void);
- /// 是否正在执行
- @property(nonatomic, assign, readonly)BOOL isExecuting;
- /// MARK: -- 构造方法
- /// 普通事务,事务体仅仅执行一次
- /// @param name 事务名称
- /// @param after 事务延后时间 单位:秒
- /// @param action 事务体
- + (instancetype)transaction:(NSString *)name
- after:(NSInteger)after
- action:(void(^)(void))action;
- /// 定时事务
- /// @param name 事务名称
- /// @param after 事务延后时间 单位:秒
- /// @param interval 事务执行间隔 单位:秒
- /// @param action 事务体
- + (instancetype)timeTransaction:(NSString *)name
- after:(NSInteger)after
- interval:(NSInteger)interval
- action:(void(^)(void))action;
- @end
- #define kQNTransactionManager [QNTransactionManager shared]
- @interface QNTransactionManager : NSObject
- /// 单例构造方法
- + (instancetype)shared;
- /// 根据name查找事务
- /// @param name 事务名称
- - (NSArray <QNTransaction *> *)transactionsForName:(NSString *)name;
- /// 是否存在某个名称的事务
- /// @param name 事务名称
- - (BOOL)existTransactionsForName:(NSString *)name;
- /// 添加一个事务
- /// @param transaction 事务
- - (void)addTransaction:(QNTransaction *)transaction;
- /// 移除一个事务
- /// @param transaction 事务
- - (void)removeTransaction:(QNTransaction *)transaction;
- /// 在下一次循环执行事务, 该事务如果未被添加到事务列表,会自动添加
- /// @param transaction 事务
- - (void)performTransaction:(QNTransaction *)transaction;
- /// 销毁资源 清空事务链表 销毁常驻线程
- - (void)destroyResource;
- @end
- NS_ASSUME_NONNULL_END
|