ACMManager.h 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #import <Foundation/Foundation.h>
  2. #import "ACMLogger.h"
  3. #import "ACMMonitor.h"
  4. #import "ACMProtocol.h"
  5. NS_ASSUME_NONNULL_BEGIN
  6. @interface ACMManager : NSObject
  7. /// 日志操作对象
  8. @property (nonatomic, strong, readonly) ACMLogger *logger;
  9. /// 埋点操作对象
  10. @property (nonatomic, strong, readonly) ACMMonitor *monitor;
  11. - (instancetype)init NS_UNAVAILABLE;
  12. /**
  13. * 初始化
  14. * @param databaseName 数据库名,不指定则默认为 “ACMDatabase”
  15. * @param monitorTableName 埋点表名,必须要指定,用来区分不同产品数据
  16. * @param loggerTablename 日志表名,必须要指定,用来区分不同产品数据
  17. * @param limitKeyPrefix 限流信息存储到本地key的前缀,用来区分不同产品的限流缓存
  18. */
  19. - (instancetype)initWithDatabaseName:(NSString * _Nullable)databaseName
  20. monitorTableName:(NSString *)monitorTableName
  21. loggerTableName:(NSString *)loggerTablename
  22. limitKeyPrefix:(NSString *)limitKeyPrefix;
  23. /**
  24. * 初始化
  25. * @param databaseName 数据库名,不指定则默认为 “ACMDatabase”
  26. * @param monitorTableName 埋点表名,必须要指定,用来区分不同产品数据
  27. * @param loggerTablename 日志表名,必须要指定,用来区分不同产品数据
  28. * @param limitKeyPrefix 限流信息存储到本地key的前缀,用来区分不同产品的限流缓存
  29. * @param uploadCount 每次上传条数
  30. * @param retryRightNow 上传失败是否立马重试,默认立马重试
  31. * @param uploadOnce 是否只执行一轮上传,默认NO
  32. */
  33. - (instancetype)initWithDatabaseName:(NSString * _Nullable)databaseName
  34. monitorTableName:(NSString *)monitorTableName
  35. loggerTableName:(NSString *)loggerTablename
  36. limitKeyPrefix:(NSString *)limitKeyPrefix
  37. uploadCount:(NSInteger)uploadCount
  38. retryRightNow:(BOOL)retryRightNow
  39. uploadOnce:(BOOL)uploadOnce;
  40. /**
  41. * 获取组件当前版本号
  42. */
  43. - (NSString *)getVersion;
  44. /**
  45. * 设置日志埋点上传代理对象
  46. * 注:这里是强引用
  47. * @param uploadDelegate 代理对象,需要实现 ACMProtocol 协议
  48. */
  49. - (void)setUploadDelegate:(id<ACMProtocol> _Nullable)uploadDelegate;
  50. /**
  51. * 更新限流相关
  52. * @param isLimit 是否限流
  53. * @param limitTimeHour 限流区间大小
  54. * @param limitCount 区间内限流次数
  55. */
  56. - (void)updateLimitConfig:(BOOL)isLimit
  57. limitTimeHour:(NSInteger)limitTimeHour
  58. limitCount:(NSInteger)limitCount;
  59. @end
  60. NS_ASSUME_NONNULL_END