Add NSCopying, NSSecureCoding Support to Informational Classes (#17)

* Add NSCopying, NSSecureCoding Support to Informational Classes

* Remove Redundant Copies

* Revert out-of-context typo corrections

* Revert out-of-context changes
This commit is contained in:
Jonathan Downing
2017-09-16 17:42:57 +03:00
committed by Sergey Abramchuk
parent 8e387bfb98
commit 270d5b8cac
10 changed files with 299 additions and 49 deletions
+48 -9
View File
@@ -10,19 +10,58 @@
using namespace openvpn;
@interface OpenVPNTransportStats ()
@property (readwrite, nonatomic) NSInteger bytesIn;
@property (readwrite, nonatomic) NSInteger bytesOut;
@property (readwrite, nonatomic) NSInteger packetsIn;
@property (readwrite, nonatomic) NSInteger packetsOut;
@property (readwrite, nonatomic) NSInteger lastPacketReceived;
@end
@implementation OpenVPNTransportStats
- (instancetype)initWithTransportStats:(ClientAPI::TransportStats)stats
{
self = [super init];
if (self) {
_bytesIn = stats.bytesIn;
_bytesOut = stats.bytesOut;
_packetsIn = stats.packetsIn;
_packetsOut = stats.packetsOut;
_lastPacketReceived = stats.lastPacketReceived;
- (instancetype)initWithTransportStats:(ClientAPI::TransportStats)stats {
if ((self = [self init])) {
self.bytesIn = stats.bytesIn;
self.bytesOut = stats.bytesOut;
self.packetsIn = stats.packetsIn;
self.packetsOut = stats.packetsOut;
self.lastPacketReceived = stats.lastPacketReceived;
}
return self;
}
- (id)copyWithZone:(NSZone *)zone {
OpenVPNTransportStats *statistics = [[OpenVPNTransportStats allocWithZone:zone] init];
statistics.bytesIn = self.bytesIn;
statistics.bytesOut = self.bytesOut;
statistics.packetsIn = self.packetsIn;
statistics.packetsOut = self.packetsOut;
statistics.lastPacketReceived = self.lastPacketReceived;
return statistics;
}
- (void)encodeWithCoder:(NSCoder *)aCoder {
[aCoder encodeInteger:self.bytesIn forKey:NSStringFromSelector(@selector(bytesIn))];
[aCoder encodeInteger:self.bytesOut forKey:NSStringFromSelector(@selector(bytesOut))];
[aCoder encodeInteger:self.packetsIn forKey:NSStringFromSelector(@selector(packetsIn))];
[aCoder encodeInteger:self.packetsOut forKey:NSStringFromSelector(@selector(packetsOut))];
[aCoder encodeInteger:self.lastPacketReceived forKey:NSStringFromSelector(@selector(lastPacketReceived))];
}
- (instancetype)initWithCoder:(NSCoder *)aDecoder {
if ((self = [super init])) {
self.bytesIn = [aDecoder decodeIntegerForKey:NSStringFromSelector(@selector(bytesIn))];
self.bytesOut = [aDecoder decodeIntegerForKey:NSStringFromSelector(@selector(bytesOut))];
self.packetsIn = [aDecoder decodeIntegerForKey:NSStringFromSelector(@selector(packetsIn))];
self.packetsOut = [aDecoder decodeIntegerForKey:NSStringFromSelector(@selector(packetsOut))];
self.lastPacketReceived = [aDecoder decodeIntegerForKey:NSStringFromSelector(@selector(lastPacketReceived))];
}
return self;
}
+ (BOOL)supportsSecureCoding {
return YES;
}
@end