MOBFLogService.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. //
  2. // MOBFLogService.h
  3. // MOBFoundation
  4. //
  5. // Created by 冯鸿杰 on 17/2/16.
  6. // Copyright © 2017年 MOB. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. @class MOBFLogService;
  10. /**
  11. 日志服务协议
  12. */
  13. @protocol MOBFLogServiceDelegate <NSObject>
  14. /**
  15. 是否需要发送日志
  16. @param logService 日志服务
  17. @param logs 已有日志信息集合
  18. @return YES 表示需要发送日志,NO 表示不需要发送日志
  19. */
  20. - (BOOL)logService:(MOBFLogService *)logService
  21. needsSendLogs:(NSArray *)logs;
  22. /**
  23. 发送日志
  24. @param logService 日志服务
  25. @param logs 需要发送的日志信息集合
  26. @param result 发送完成回调,成功时传入YES,否则传入NO
  27. */
  28. - (void)logService:(MOBFLogService *)logService
  29. didSendLogs:(NSArray *)logs
  30. result:(void (^)(BOOL succeed, NSArray *sentLogs))result;
  31. @end
  32. /**
  33. 日志服务
  34. */
  35. @interface MOBFLogService : NSObject
  36. /**
  37. 委托对象
  38. */
  39. @property (nonatomic, weak) id<MOBFLogServiceDelegate> delegate;
  40. /**
  41. 失败最大重试次数
  42. */
  43. @property (nonatomic) NSInteger failRetryMaxCount;
  44. /**
  45. 初始化
  46. @param name 日志服务名称
  47. @return 日志服务对象
  48. */
  49. - (instancetype)initWithName:(NSString *)name;
  50. /**
  51. 初始化
  52. @param name 日志服务名称
  53. @param secretKey 密钥(AES)
  54. @return 日志服务对象
  55. */
  56. - (instancetype)initWithName:(NSString *)name
  57. secretKey:(NSString *)secretKey;
  58. /**
  59. 写入数据
  60. @param data 日志数据
  61. */
  62. - (void)writeData:(id<NSCoding>)data;
  63. /**
  64. 同步写入数据
  65. @param data 日志数据
  66. */
  67. - (void)syncWriteData:(id<NSCoding>)data;
  68. /**
  69. 需要发送日志,服务会对当前日志进行检测,如果发现存在日志会跟委托进行确认是否需要发送,然后再进行后续操作
  70. */
  71. - (void)needsSendLog;
  72. /**
  73. 需要发送日志,服务会对当前日志进行检测,如果发现存在日志会跟委托进行确认是否需要发送,然后再进行后续操作
  74. @param time 延时检测时间
  75. */
  76. - (void)needsSendLogAfterTime:(NSTimeInterval)time;
  77. @end