LookinStaticAsyncUpdateTask.m 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. #ifdef SHOULD_COMPILE_LOOKIN_SERVER
  2. //
  3. // LookinStaticAsyncUpdateTask.m
  4. // Lookin
  5. //
  6. // Created by Li Kai on 2019/6/21.
  7. // https://lookin.work
  8. //
  9. #import "LookinStaticAsyncUpdateTask.h"
  10. @implementation LookinStaticAsyncUpdateTask
  11. - (void)encodeWithCoder:(NSCoder *)aCoder {
  12. [aCoder encodeObject:@(self.oid) forKey:@"oid"];
  13. [aCoder encodeInteger:self.taskType forKey:@"taskType"];
  14. [aCoder encodeObject:self.clientReadableVersion forKey:@"clientReadableVersion"];
  15. [aCoder encodeInteger:self.attrRequest forKey:@"attrRequest"];
  16. [aCoder encodeBool:self.needBasisVisualInfo forKey:@"needBasisVisualInfo"];
  17. [aCoder encodeBool:self.needSubitems forKey:@"needSubitems"];
  18. }
  19. - (instancetype)initWithCoder:(NSCoder *)aDecoder {
  20. if (self = [super init]) {
  21. self.oid = [[aDecoder decodeObjectForKey:@"oid"] unsignedLongValue];
  22. self.taskType = [aDecoder decodeIntegerForKey:@"taskType"];
  23. self.clientReadableVersion = [aDecoder decodeObjectForKey:@"clientReadableVersion"];
  24. if ([aDecoder containsValueForKey:@"attrRequest"]) {
  25. NSInteger value = [aDecoder decodeIntegerForKey:@"attrRequest"];
  26. if (value >= LookinDetailUpdateTaskAttrRequest_Automatic && value <= LookinDetailUpdateTaskAttrRequest_NotNeed) {
  27. self.attrRequest = value;
  28. } else {
  29. self.attrRequest = LookinDetailUpdateTaskAttrRequest_Automatic;
  30. }
  31. } else {
  32. self.attrRequest = LookinDetailUpdateTaskAttrRequest_Automatic;
  33. }
  34. if ([aDecoder containsValueForKey:@"needBasisVisualInfo"]) {
  35. self.needBasisVisualInfo = [aDecoder decodeBoolForKey:@"needBasisVisualInfo"];
  36. } else {
  37. self.needBasisVisualInfo = NO;
  38. }
  39. if ([aDecoder containsValueForKey:@"needSubitems"]) {
  40. self.needSubitems = [aDecoder decodeBoolForKey:@"needSubitems"];
  41. } else {
  42. self.needSubitems = NO;
  43. }
  44. }
  45. return self;
  46. }
  47. + (BOOL)supportsSecureCoding {
  48. return YES;
  49. }
  50. - (NSUInteger)hash {
  51. return self.oid ^ self.taskType ^ self.attrRequest ^ self.needBasisVisualInfo ^ self.needSubitems;
  52. }
  53. - (BOOL)isEqual:(id)object {
  54. if (self == object) {
  55. return YES;
  56. }
  57. if (![object isKindOfClass:[LookinStaticAsyncUpdateTask class]]) {
  58. return NO;
  59. }
  60. LookinStaticAsyncUpdateTask *targetTask = object;
  61. if (self.oid == targetTask.oid
  62. && self.taskType == targetTask.taskType
  63. && self.attrRequest == targetTask.attrRequest
  64. && self.needBasisVisualInfo == targetTask.needBasisVisualInfo
  65. && self.needSubitems == targetTask.needSubitems) {
  66. return YES;
  67. }
  68. return NO;
  69. }
  70. @end
  71. @implementation LookinStaticAsyncUpdateTasksPackage
  72. - (void)encodeWithCoder:(NSCoder *)aCoder {
  73. [aCoder encodeObject:self.tasks forKey:@"tasks"];
  74. }
  75. - (instancetype)initWithCoder:(NSCoder *)aDecoder {
  76. if (self = [super init]) {
  77. self.tasks = [aDecoder decodeObjectForKey:@"tasks"];
  78. }
  79. return self;
  80. }
  81. + (BOOL)supportsSecureCoding {
  82. return YES;
  83. }
  84. @end
  85. #endif /* SHOULD_COMPILE_LOOKIN_SERVER */