mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00

git-subtree-dir: submodules/HockeySDK-iOS git-subtree-mainline: 085acd26c4432939403765234266e3c1be0f3dd9 git-subtree-split: c7d0c7026303253e2ac576c02655691e5d314fe2
121 lines
3.8 KiB
Objective-C
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
|