TCLiveListModel.h 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. //
  2. // TCLiveListModel.h
  3. // TCLVBIMDemo
  4. //
  5. // Created by annidyfeng on 16/8/3.
  6. // Copyright © 2016年 tencent. All rights reserved.
  7. //
  8. #define SCREEN_WIDTH [UIScreen mainScreen].bounds.size.width
  9. #define SCREEN_HEIGHT [UIScreen mainScreen].bounds.size.height
  10. #import <Foundation/Foundation.h>
  11. typedef NS_ENUM(NSInteger,ReviewStatus){
  12. ReviewStatus_NotReivew,
  13. ReviewStatus_Normal,
  14. ReviewStatus_Porn,
  15. };
  16. @interface TCLiveUserInfo : NSObject
  17. @property NSString *nickname;
  18. @property NSString *headpic;
  19. @property NSString *frontcover;
  20. @property UIImage *frontcoverImage;
  21. @property NSString *location;
  22. @end
  23. @interface TCLiveInfo : NSObject
  24. @property NSString *userid;
  25. @property NSString *groupid;
  26. @property NSString *title;
  27. @property NSString *playurl;
  28. @property NSString *hls_play_url;
  29. @property NSString *fileid;
  30. @property TCLiveUserInfo *userinfo;
  31. @property ReviewStatus reviewStatus;
  32. @property int timestamp;
  33. @end
  34. extern NSString *const kTCLiveListNewDataAvailable;
  35. extern NSString *const kTCLiveListSvrError;
  36. extern NSString *const kTCLiveListUpdated;
  37. typedef NS_ENUM(NSInteger,GetType)
  38. {
  39. GetType_Up,
  40. GetType_Down,
  41. };
  42. /**
  43. * 列表管理的数据层代码,主要负责列表数据的拉取、缓存和更新。目前只支持全量拉取,暂不支持增量拉取。
  44. * 列表拉取的协议设计成分页模式,调用列表拉取接口后,逻辑层循环从后台拉取列表,直至拉取完成,
  45. * 为了提升拉取体验,在拉取到第一页数据后,就立即通知界面刷新展示
  46. */
  47. @interface TCLiveListMgr : NSObject
  48. + (instancetype)sharedMgr;
  49. - (void)setUserId:(NSString*)userId expires:(NSNumber*)expires token:(NSString*)token;
  50. /**
  51. * 后台请求列表数据
  52. */
  53. - (void)queryVideoList:(GetType)getType;
  54. /**
  55. * 清除所有列表数据,停止当前的请求动作
  56. */
  57. - (void)cleanAllVods;
  58. /**
  59. * 读取列表
  60. *
  61. * @param range 列表返回
  62. * @param finish 是否已经读到末尾
  63. *
  64. * @return 返回读取到的数据
  65. * 如果返回数据为空,finish = NO,表示还有数据未读完,可以等待下次通知
  66. * kTCLiveListNewDataAvailable 到达后继续调用此接口
  67. */
  68. - (NSArray *)readVods:(NSRange)range finish:(BOOL *)finish;
  69. /**
  70. * 读取指定id的数据
  71. */
  72. - (TCLiveInfo*)readVod:(NSString*)userId fileId:(NSString*)fileId;
  73. /**
  74. * 从本地文件加载列表数据
  75. */
  76. - (void)loadVodsFromArchive;
  77. @end