SecDbBackupBag.m
  1  // This file was automatically generated by protocompiler
  2  // DO NOT EDIT!
  3  // Compiled from SecDbBackupRecoverySet.proto
  4  
  5  #import "SecDbBackupBag.h"
  6  #import <ProtocolBuffer/PBConstants.h>
  7  #import <ProtocolBuffer/PBHashUtil.h>
  8  #import <ProtocolBuffer/PBDataReader.h>
  9  
 10  #import "SecDbBackupBagIdentity.h"
 11  
 12  #if !__has_feature(objc_arc)
 13  # error This generated file depends on ARC but it is not enabled; turn on ARC, or use 'objc_use_arc' option to generate non-ARC code.
 14  #endif
 15  
 16  @implementation SecDbBackupBag
 17  
 18  - (BOOL)hasBagIdentity
 19  {
 20      return _bagIdentity != nil;
 21  }
 22  @synthesize bagIdentity = _bagIdentity;
 23  - (BOOL)hasKeybag
 24  {
 25      return _keybag != nil;
 26  }
 27  @synthesize keybag = _keybag;
 28  
 29  - (NSString *)description
 30  {
 31      return [NSString stringWithFormat:@"%@ %@", [super description], [self dictionaryRepresentation]];
 32  }
 33  
 34  - (NSDictionary *)dictionaryRepresentation
 35  {
 36      NSMutableDictionary *dict = [NSMutableDictionary dictionary];
 37      if (self->_bagIdentity)
 38      {
 39          [dict setObject:[_bagIdentity dictionaryRepresentation] forKey:@"bagIdentity"];
 40      }
 41      if (self->_keybag)
 42      {
 43          [dict setObject:self->_keybag forKey:@"keybag"];
 44      }
 45      return dict;
 46  }
 47  
 48  BOOL SecDbBackupBagReadFrom(__unsafe_unretained SecDbBackupBag *self, __unsafe_unretained PBDataReader *reader) {
 49      while (PBReaderHasMoreData(reader)) {
 50          uint32_t tag = 0;
 51          uint8_t aType = 0;
 52  
 53          PBReaderReadTag32AndType(reader, &tag, &aType);
 54  
 55          if (PBReaderHasError(reader))
 56              break;
 57  
 58          if (aType == TYPE_END_GROUP) {
 59              break;
 60          }
 61  
 62          switch (tag) {
 63  
 64              case 1 /* bagIdentity */:
 65              {
 66                  SecDbBackupBagIdentity *new_bagIdentity = [[SecDbBackupBagIdentity alloc] init];
 67                  self->_bagIdentity = new_bagIdentity;
 68                  PBDataReaderMark mark_bagIdentity;
 69                  BOOL markError = !PBReaderPlaceMark(reader, &mark_bagIdentity);
 70                  if (markError)
 71                  {
 72                      return NO;
 73                  }
 74                  BOOL inError = !SecDbBackupBagIdentityReadFrom(new_bagIdentity, reader);
 75                  if (inError)
 76                  {
 77                      return NO;
 78                  }
 79                  PBReaderRecallMark(reader, &mark_bagIdentity);
 80              }
 81              break;
 82              case 2 /* keybag */:
 83              {
 84                  NSData *new_keybag = PBReaderReadData(reader);
 85                  self->_keybag = new_keybag;
 86              }
 87              break;
 88              default:
 89                  if (!PBReaderSkipValueWithTag(reader, tag, aType))
 90                      return NO;
 91                  break;
 92          }
 93      }
 94      return !PBReaderHasError(reader);
 95  }
 96  
 97  - (BOOL)readFrom:(PBDataReader *)reader
 98  {
 99      return SecDbBackupBagReadFrom(self, reader);
100  }
101  - (void)writeTo:(PBDataWriter *)writer
102  {
103      /* bagIdentity */
104      {
105          if (self->_bagIdentity != nil)
106          {
107              PBDataWriterWriteSubmessage(writer, self->_bagIdentity, 1);
108          }
109      }
110      /* keybag */
111      {
112          if (self->_keybag)
113          {
114              PBDataWriterWriteDataField(writer, self->_keybag, 2);
115          }
116      }
117  }
118  
119  - (void)copyTo:(SecDbBackupBag *)other
120  {
121      if (_bagIdentity)
122      {
123          other.bagIdentity = _bagIdentity;
124      }
125      if (_keybag)
126      {
127          other.keybag = _keybag;
128      }
129  }
130  
131  - (id)copyWithZone:(NSZone *)zone
132  {
133      SecDbBackupBag *copy = [[[self class] allocWithZone:zone] init];
134      copy->_bagIdentity = [_bagIdentity copyWithZone:zone];
135      copy->_keybag = [_keybag copyWithZone:zone];
136      return copy;
137  }
138  
139  - (BOOL)isEqual:(id)object
140  {
141      SecDbBackupBag *other = (SecDbBackupBag *)object;
142      return [other isMemberOfClass:[self class]]
143      &&
144      ((!self->_bagIdentity && !other->_bagIdentity) || [self->_bagIdentity isEqual:other->_bagIdentity])
145      &&
146      ((!self->_keybag && !other->_keybag) || [self->_keybag isEqual:other->_keybag])
147      ;
148  }
149  
150  - (NSUInteger)hash
151  {
152      return 0
153      ^
154      [self->_bagIdentity hash]
155      ^
156      [self->_keybag hash]
157      ;
158  }
159  
160  - (void)mergeFrom:(SecDbBackupBag *)other
161  {
162      if (self->_bagIdentity && other->_bagIdentity)
163      {
164          [self->_bagIdentity mergeFrom:other->_bagIdentity];
165      }
166      else if (!self->_bagIdentity && other->_bagIdentity)
167      {
168          [self setBagIdentity:other->_bagIdentity];
169      }
170      if (other->_keybag)
171      {
172          [self setKeybag:other->_keybag];
173      }
174  }
175  
176  @end
177