Peter 76e5a7fab6 Add 'submodules/HockeySDK-iOS/' from commit 'c7d0c7026303253e2ac576c02655691e5d314fe2'
git-subtree-dir: submodules/HockeySDK-iOS
git-subtree-mainline: 085acd26c4432939403765234266e3c1be0f3dd9
git-subtree-split: c7d0c7026303253e2ac576c02655691e5d314fe2
2019-06-11 18:53:14 +01:00

121 lines
3.8 KiB
Objective-C

#import "BITEnvelope.h"
#import "BITData.h"
#import "BITHockeyLogger.h"
/// Data contract class for type Envelope.
@implementation BITEnvelope
/// Initializes a new instance of the class.
- (instancetype)init {
if((self = [super init])) {
_version = @1;
_sampleRate = @100.0;
_tags = [NSDictionary dictionary];
}
return self;
}
///
/// Adds all members of this class to a dictionary
/// @returns dictionary to which the members of this class will be added.
///
- (NSDictionary *)serializeToDictionary {
NSMutableDictionary *dict = [super serializeToDictionary].mutableCopy;
if(self.version != nil) {
[dict setObject:self.version forKey:@"ver"];
}
if(self.name != nil) {
[dict setObject:self.name forKey:@"name"];
}
if(self.time != nil) {
[dict setObject:self.time forKey:@"time"];
}
if(self.sampleRate != nil) {
[dict setObject:self.sampleRate forKey:@"sampleRate"];
}
if(self.seq != nil) {
[dict setObject:self.seq forKey:@"seq"];
}
if(self.iKey != nil) {
[dict setObject:self.iKey forKey:@"iKey"];
}
if(self.flags != nil) {
[dict setObject:self.flags forKey:@"flags"];
}
if(self.deviceId != nil) {
[dict setObject:self.deviceId forKey:@"deviceId"];
}
if(self.os != nil) {
[dict setObject:self.os forKey:@"os"];
}
if(self.osVer != nil) {
[dict setObject:self.osVer forKey:@"osVer"];
}
if(self.appId != nil) {
[dict setObject:self.appId forKey:@"appId"];
}
if(self.appVer != nil) {
[dict setObject:self.appVer forKey:@"appVer"];
}
if(self.userId != nil) {
[dict setObject:self.userId forKey:@"userId"];
}
if(self.tags != nil) {
[dict setObject:self.tags forKey:@"tags"];
}
NSDictionary *dataDict = [self.data serializeToDictionary];
if ([NSJSONSerialization isValidJSONObject:dataDict]) {
[dict setObject:dataDict forKey:@"data"];
} else {
BITHockeyLogError(@"[HockeySDK] Some of the telemetry data was not NSJSONSerialization compatible and could not be serialized!");
}
return dict;
}
#pragma mark - NSCoding
- (instancetype)initWithCoder:(NSCoder *)coder {
self = [super init];
if(self) {
_version = [coder decodeObjectForKey:@"self.version"];
_name = [coder decodeObjectForKey:@"self.name"];
_time = [coder decodeObjectForKey:@"self.time"];
_sampleRate = [coder decodeObjectForKey:@"self.sampleRate"];
_seq = [coder decodeObjectForKey:@"self.seq"];
_iKey = [coder decodeObjectForKey:@"self.iKey"];
_flags = [coder decodeObjectForKey:@"self.flags"];
_deviceId = [coder decodeObjectForKey:@"self.deviceId"];
_os = [coder decodeObjectForKey:@"self.os"];
_osVer = [coder decodeObjectForKey:@"self.osVer"];
_appId = [coder decodeObjectForKey:@"self.appId"];
_appVer = [coder decodeObjectForKey:@"self.appVer"];
_userId = [coder decodeObjectForKey:@"self.userId"];
_tags = [coder decodeObjectForKey:@"self.tags"];
_data = [coder decodeObjectForKey:@"self.data"];
}
return self;
}
- (void)encodeWithCoder:(NSCoder *)coder {
[coder encodeObject:self.version forKey:@"self.version"];
[coder encodeObject:self.name forKey:@"self.name"];
[coder encodeObject:self.time forKey:@"self.time"];
[coder encodeObject:self.sampleRate forKey:@"self.sampleRate"];
[coder encodeObject:self.seq forKey:@"self.seq"];
[coder encodeObject:self.iKey forKey:@"self.iKey"];
[coder encodeObject:self.flags forKey:@"self.flags"];
[coder encodeObject:self.deviceId forKey:@"self.deviceId"];
[coder encodeObject:self.os forKey:@"self.os"];
[coder encodeObject:self.osVer forKey:@"self.osVer"];
[coder encodeObject:self.appId forKey:@"self.appId"];
[coder encodeObject:self.appVer forKey:@"self.appVer"];
[coder encodeObject:self.userId forKey:@"self.userId"];
[coder encodeObject:self.tags forKey:@"self.tags"];
[coder encodeObject:self.data forKey:@"self.data"];
}
@end