SECC2MPNetworkEvent.m   [plain text]

// This file was automatically generated by protocompiler
// DO NOT EDIT!
// Compiled from C2Metric.proto

#import "SECC2MPNetworkEvent.h"
#import <ProtocolBuffer/PBConstants.h>
#import <ProtocolBuffer/PBHashUtil.h>
#import <ProtocolBuffer/PBDataReader.h>

#import "SECC2MPError.h"

#if !__has_feature(objc_arc)
# 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.
#endif

@implementation SECC2MPNetworkEvent

@synthesize triggers = _triggers;
- (void)setTriggers:(uint64_t)v
{
_has.triggers = YES;
_triggers = v;
}
- (void)setHasTriggers:(BOOL)f
{
_has.triggers = f;
}
- (BOOL)hasTriggers
{
return _has.triggers;
}
@synthesize reportFrequency = _reportFrequency;
- (void)setReportFrequency:(uint64_t)v
{
_has.reportFrequency = YES;
_reportFrequency = v;
}
- (void)setHasReportFrequency:(BOOL)f
{
_has.reportFrequency = f;
}
- (BOOL)hasReportFrequency
{
return _has.reportFrequency;
}
@synthesize reportFrequencyBase = _reportFrequencyBase;
- (void)setReportFrequencyBase:(uint64_t)v
{
_has.reportFrequencyBase = YES;
_reportFrequencyBase = v;
}
- (void)setHasReportFrequencyBase:(BOOL)f
{
_has.reportFrequencyBase = f;
}
- (BOOL)hasReportFrequencyBase
{
return _has.reportFrequencyBase;
}
- (BOOL)hasNetworkTaskDescription
{
return _networkTaskDescription != nil;
}
@synthesize networkTaskDescription = _networkTaskDescription;
- (BOOL)hasNetworkHostname
{
return _networkHostname != nil;
}
@synthesize networkHostname = _networkHostname;
- (BOOL)hasNetworkRemoteAddresssAndPort
{
return _networkRemoteAddresssAndPort != nil;
}
@synthesize networkRemoteAddresssAndPort = _networkRemoteAddresssAndPort;
- (BOOL)hasNetworkConnectionUuid
{
return _networkConnectionUuid != nil;
}
@synthesize networkConnectionUuid = _networkConnectionUuid;
@synthesize networkConnectionReused = _networkConnectionReused;
- (void)setNetworkConnectionReused:(BOOL)v
{
_has.networkConnectionReused = YES;
_networkConnectionReused = v;
}
- (void)setHasNetworkConnectionReused:(BOOL)f
{
_has.networkConnectionReused = f;
}
- (BOOL)hasNetworkConnectionReused
{
return _has.networkConnectionReused;
}
- (BOOL)hasNetworkInterfaceIdentifier
{
return _networkInterfaceIdentifier != nil;
}
@synthesize networkInterfaceIdentifier = _networkInterfaceIdentifier;
- (BOOL)hasNetworkProtocolName
{
return _networkProtocolName != nil;
}
@synthesize networkProtocolName = _networkProtocolName;
@synthesize networkRequestHeaderSize = _networkRequestHeaderSize;
- (void)setNetworkRequestHeaderSize:(uint32_t)v
{
_has.networkRequestHeaderSize = YES;
_networkRequestHeaderSize = v;
}
- (void)setHasNetworkRequestHeaderSize:(BOOL)f
{
_has.networkRequestHeaderSize = f;
}
- (BOOL)hasNetworkRequestHeaderSize
{
return _has.networkRequestHeaderSize;
}
@synthesize networkRequestBodyBytesSent = _networkRequestBodyBytesSent;
- (void)setNetworkRequestBodyBytesSent:(uint64_t)v
{
_has.networkRequestBodyBytesSent = YES;
_networkRequestBodyBytesSent = v;
}
- (void)setHasNetworkRequestBodyBytesSent:(BOOL)f
{
_has.networkRequestBodyBytesSent = f;
}
- (BOOL)hasNetworkRequestBodyBytesSent
{
return _has.networkRequestBodyBytesSent;
}
@synthesize networkResponseHeaderSize = _networkResponseHeaderSize;
- (void)setNetworkResponseHeaderSize:(uint32_t)v
{
_has.networkResponseHeaderSize = YES;
_networkResponseHeaderSize = v;
}
- (void)setHasNetworkResponseHeaderSize:(BOOL)f
{
_has.networkResponseHeaderSize = f;
}
- (BOOL)hasNetworkResponseHeaderSize
{
return _has.networkResponseHeaderSize;
}
@synthesize networkResponseBodyBytesReceived = _networkResponseBodyBytesReceived;
- (void)setNetworkResponseBodyBytesReceived:(uint64_t)v
{
_has.networkResponseBodyBytesReceived = YES;
_networkResponseBodyBytesReceived = v;
}
- (void)setHasNetworkResponseBodyBytesReceived:(BOOL)f
{
_has.networkResponseBodyBytesReceived = f;
}
- (BOOL)hasNetworkResponseBodyBytesReceived
{
return _has.networkResponseBodyBytesReceived;
}
@synthesize networkPreviousAttemptCount = _networkPreviousAttemptCount;
- (void)setNetworkPreviousAttemptCount:(uint32_t)v
{
_has.networkPreviousAttemptCount = YES;
_networkPreviousAttemptCount = v;
}
- (void)setHasNetworkPreviousAttemptCount:(BOOL)f
{
_has.networkPreviousAttemptCount = f;
}
- (BOOL)hasNetworkPreviousAttemptCount
{
return _has.networkPreviousAttemptCount;
}
- (BOOL)hasNetworkFatalError
{
return _networkFatalError != nil;
}
@synthesize networkFatalError = _networkFatalError;
@synthesize networkStatusCode = _networkStatusCode;
- (void)setNetworkStatusCode:(uint64_t)v
{
_has.networkStatusCode = YES;
_networkStatusCode = v;
}
- (void)setHasNetworkStatusCode:(BOOL)f
{
_has.networkStatusCode = f;
}
- (BOOL)hasNetworkStatusCode
{
return _has.networkStatusCode;
}
- (BOOL)hasNetworkRequestUri
{
return _networkRequestUri != nil;
}
@synthesize networkRequestUri = _networkRequestUri;
@synthesize timestampC2Init = _timestampC2Init;
- (void)setTimestampC2Init:(uint64_t)v
{
_has.timestampC2Init = YES;
_timestampC2Init = v;
}
- (void)setHasTimestampC2Init:(BOOL)f
{
_has.timestampC2Init = f;
}
- (BOOL)hasTimestampC2Init
{
return _has.timestampC2Init;
}
@synthesize timestampC2Start = _timestampC2Start;
- (void)setTimestampC2Start:(uint64_t)v
{
_has.timestampC2Start = YES;
_timestampC2Start = v;
}
- (void)setHasTimestampC2Start:(BOOL)f
{
_has.timestampC2Start = f;
}
- (BOOL)hasTimestampC2Start
{
return _has.timestampC2Start;
}
@synthesize timestampC2Now = _timestampC2Now;
- (void)setTimestampC2Now:(uint64_t)v
{
_has.timestampC2Now = YES;
_timestampC2Now = v;
}
- (void)setHasTimestampC2Now:(BOOL)f
{
_has.timestampC2Now = f;
}
- (BOOL)hasTimestampC2Now
{
return _has.timestampC2Now;
}
@synthesize timestampDnsStart = _timestampDnsStart;
- (void)setTimestampDnsStart:(uint64_t)v
{
_has.timestampDnsStart = YES;
_timestampDnsStart = v;
}
- (void)setHasTimestampDnsStart:(BOOL)f
{
_has.timestampDnsStart = f;
}
- (BOOL)hasTimestampDnsStart
{
return _has.timestampDnsStart;
}
@synthesize timestampDnsEnd = _timestampDnsEnd;
- (void)setTimestampDnsEnd:(uint64_t)v
{
_has.timestampDnsEnd = YES;
_timestampDnsEnd = v;
}
- (void)setHasTimestampDnsEnd:(BOOL)f
{
_has.timestampDnsEnd = f;
}
- (BOOL)hasTimestampDnsEnd
{
return _has.timestampDnsEnd;
}
@synthesize timestampTcpStart = _timestampTcpStart;
- (void)setTimestampTcpStart:(uint64_t)v
{
_has.timestampTcpStart = YES;
_timestampTcpStart = v;
}
- (void)setHasTimestampTcpStart:(BOOL)f
{
_has.timestampTcpStart = f;
}
- (BOOL)hasTimestampTcpStart
{
return _has.timestampTcpStart;
}
@synthesize timestampTcpEnd = _timestampTcpEnd;
- (void)setTimestampTcpEnd:(uint64_t)v
{
_has.timestampTcpEnd = YES;
_timestampTcpEnd = v;
}
- (void)setHasTimestampTcpEnd:(BOOL)f
{
_has.timestampTcpEnd = f;
}
- (BOOL)hasTimestampTcpEnd
{
return _has.timestampTcpEnd;
}
@synthesize timestampSslStart = _timestampSslStart;
- (void)setTimestampSslStart:(uint64_t)v
{
_has.timestampSslStart = YES;
_timestampSslStart = v;
}
- (void)setHasTimestampSslStart:(BOOL)f
{
_has.timestampSslStart = f;
}
- (BOOL)hasTimestampSslStart
{
return _has.timestampSslStart;
}
@synthesize timestampRequestStart = _timestampRequestStart;
- (void)setTimestampRequestStart:(uint64_t)v
{
_has.timestampRequestStart = YES;
_timestampRequestStart = v;
}
- (void)setHasTimestampRequestStart:(BOOL)f
{
_has.timestampRequestStart = f;
}
- (BOOL)hasTimestampRequestStart
{
return _has.timestampRequestStart;
}
@synthesize timestampRequestEnd = _timestampRequestEnd;
- (void)setTimestampRequestEnd:(uint64_t)v
{
_has.timestampRequestEnd = YES;
_timestampRequestEnd = v;
}
- (void)setHasTimestampRequestEnd:(BOOL)f
{
_has.timestampRequestEnd = f;
}
- (BOOL)hasTimestampRequestEnd
{
return _has.timestampRequestEnd;
}
@synthesize timestampResponseStart = _timestampResponseStart;
- (void)setTimestampResponseStart:(uint64_t)v
{
_has.timestampResponseStart = YES;
_timestampResponseStart = v;
}
- (void)setHasTimestampResponseStart:(BOOL)f
{
_has.timestampResponseStart = f;
}
- (BOOL)hasTimestampResponseStart
{
return _has.timestampResponseStart;
}
@synthesize timestampResponseEnd = _timestampResponseEnd;
- (void)setTimestampResponseEnd:(uint64_t)v
{
_has.timestampResponseEnd = YES;
_timestampResponseEnd = v;
}
- (void)setHasTimestampResponseEnd:(BOOL)f
{
_has.timestampResponseEnd = f;
}
- (BOOL)hasTimestampResponseEnd
{
return _has.timestampResponseEnd;
}
- (BOOL)hasOptionsQualityOfService
{
return _optionsQualityOfService != nil;
}
@synthesize optionsQualityOfService = _optionsQualityOfService;
@synthesize optionsOutOfProcess = _optionsOutOfProcess;
- (void)setOptionsOutOfProcess:(BOOL)v
{
_has.optionsOutOfProcess = YES;
_optionsOutOfProcess = v;
}
- (void)setHasOptionsOutOfProcess:(BOOL)f
{
_has.optionsOutOfProcess = f;
}
- (BOOL)hasOptionsOutOfProcess
{
return _has.optionsOutOfProcess;
}
@synthesize optionsOutOfProcessForceDiscretionary = _optionsOutOfProcessForceDiscretionary;
- (void)setOptionsOutOfProcessForceDiscretionary:(BOOL)v
{
_has.optionsOutOfProcessForceDiscretionary = YES;
_optionsOutOfProcessForceDiscretionary = v;
}
- (void)setHasOptionsOutOfProcessForceDiscretionary:(BOOL)f
{
_has.optionsOutOfProcessForceDiscretionary = f;
}
- (BOOL)hasOptionsOutOfProcessForceDiscretionary
{
return _has.optionsOutOfProcessForceDiscretionary;
}
@synthesize optionsAllowExpensiveAccess = _optionsAllowExpensiveAccess;
- (void)setOptionsAllowExpensiveAccess:(BOOL)v
{
_has.optionsAllowExpensiveAccess = YES;
_optionsAllowExpensiveAccess = v;
}
- (void)setHasOptionsAllowExpensiveAccess:(BOOL)f
{
_has.optionsAllowExpensiveAccess = f;
}
- (BOOL)hasOptionsAllowExpensiveAccess
{
return _has.optionsAllowExpensiveAccess;
}
@synthesize optionsAllowPowerNapScheduling = _optionsAllowPowerNapScheduling;
- (void)setOptionsAllowPowerNapScheduling:(BOOL)v
{
_has.optionsAllowPowerNapScheduling = YES;
_optionsAllowPowerNapScheduling = v;
}
- (void)setHasOptionsAllowPowerNapScheduling:(BOOL)f
{
_has.optionsAllowPowerNapScheduling = f;
}
- (BOOL)hasOptionsAllowPowerNapScheduling
{
return _has.optionsAllowPowerNapScheduling;
}
@synthesize optionsTimeoutIntervalForRequest = _optionsTimeoutIntervalForRequest;
- (void)setOptionsTimeoutIntervalForRequest:(uint32_t)v
{
_has.optionsTimeoutIntervalForRequest = YES;
_optionsTimeoutIntervalForRequest = v;
}
- (void)setHasOptionsTimeoutIntervalForRequest:(BOOL)f
{
_has.optionsTimeoutIntervalForRequest = f;
}
- (BOOL)hasOptionsTimeoutIntervalForRequest
{
return _has.optionsTimeoutIntervalForRequest;
}
@synthesize optionsTimeoutIntervalForResource = _optionsTimeoutIntervalForResource;
- (void)setOptionsTimeoutIntervalForResource:(uint32_t)v
{
_has.optionsTimeoutIntervalForResource = YES;
_optionsTimeoutIntervalForResource = v;
}
- (void)setHasOptionsTimeoutIntervalForResource:(BOOL)f
{
_has.optionsTimeoutIntervalForResource = f;
}
- (BOOL)hasOptionsTimeoutIntervalForResource
{
return _has.optionsTimeoutIntervalForResource;
}
- (BOOL)hasOptionsSourceApplicationBundleIdentifier
{
return _optionsSourceApplicationBundleIdentifier != nil;
}
@synthesize optionsSourceApplicationBundleIdentifier = _optionsSourceApplicationBundleIdentifier;
- (BOOL)hasOptionsSourceApplicationSecondaryIdentifier
{
return _optionsSourceApplicationSecondaryIdentifier != nil;
}
@synthesize optionsSourceApplicationSecondaryIdentifier = _optionsSourceApplicationSecondaryIdentifier;
@synthesize optionsAppleIdContext = _optionsAppleIdContext;
- (void)setOptionsAppleIdContext:(BOOL)v
{
_has.optionsAppleIdContext = YES;
_optionsAppleIdContext = v;
}
- (void)setHasOptionsAppleIdContext:(BOOL)f
{
_has.optionsAppleIdContext = f;
}
- (BOOL)hasOptionsAppleIdContext
{
return _has.optionsAppleIdContext;
}
@synthesize optionsTlsPinningRequired = _optionsTlsPinningRequired;
- (void)setOptionsTlsPinningRequired:(BOOL)v
{
_has.optionsTlsPinningRequired = YES;
_optionsTlsPinningRequired = v;
}
- (void)setHasOptionsTlsPinningRequired:(BOOL)f
{
_has.optionsTlsPinningRequired = f;
}
- (BOOL)hasOptionsTlsPinningRequired
{
return _has.optionsTlsPinningRequired;
}

- (NSString *)description
{
return [NSString stringWithFormat:@"%@ %@", [super description], [self dictionaryRepresentation]];
}

- (NSDictionary *)dictionaryRepresentation
{
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
if (self->_has.triggers)
{
[dict setObject:[NSNumber numberWithUnsignedLongLong:self->_triggers] forKey:@"triggers"];
}
if (self->_has.reportFrequency)
{
[dict setObject:[NSNumber numberWithUnsignedLongLong:self->_reportFrequency] forKey:@"report_frequency"];
}
if (self->_has.reportFrequencyBase)
{
[dict setObject:[NSNumber numberWithUnsignedLongLong:self->_reportFrequencyBase] forKey:@"report_frequency_base"];
}
if (self->_networkTaskDescription)
{
[dict setObject:self->_networkTaskDescription forKey:@"network_task_description"];
}
if (self->_networkHostname)
{
[dict setObject:self->_networkHostname forKey:@"network_hostname"];
}
if (self->_networkRemoteAddresssAndPort)
{
[dict setObject:self->_networkRemoteAddresssAndPort forKey:@"network_remote_addresss_and_port"];
}
if (self->_networkConnectionUuid)
{
[dict setObject:self->_networkConnectionUuid forKey:@"network_connection_uuid"];
}
if (self->_has.networkConnectionReused)
{
[dict setObject:[NSNumber numberWithBool:self->_networkConnectionReused] forKey:@"network_connection_reused"];
}
if (self->_networkInterfaceIdentifier)
{
[dict setObject:self->_networkInterfaceIdentifier forKey:@"network_interface_identifier"];
}
if (self->_networkProtocolName)
{
[dict setObject:self->_networkProtocolName forKey:@"network_protocol_name"];
}
if (self->_has.networkRequestHeaderSize)
{
[dict setObject:[NSNumber numberWithUnsignedInt:self->_networkRequestHeaderSize] forKey:@"network_request_header_size"];
}
if (self->_has.networkRequestBodyBytesSent)
{
[dict setObject:[NSNumber numberWithUnsignedLongLong:self->_networkRequestBodyBytesSent] forKey:@"network_request_body_bytes_sent"];
}
if (self->_has.networkResponseHeaderSize)
{
[dict setObject:[NSNumber numberWithUnsignedInt:self->_networkResponseHeaderSize] forKey:@"network_response_header_size"];
}
if (self->_has.networkResponseBodyBytesReceived)
{
[dict setObject:[NSNumber numberWithUnsignedLongLong:self->_networkResponseBodyBytesReceived] forKey:@"network_response_body_bytes_received"];
}
if (self->_has.networkPreviousAttemptCount)
{
[dict setObject:[NSNumber numberWithUnsignedInt:self->_networkPreviousAttemptCount] forKey:@"network_previous_attempt_count"];
}
if (self->_networkFatalError)
{
[dict setObject:[_networkFatalError dictionaryRepresentation] forKey:@"network_fatal_error"];
}
if (self->_has.networkStatusCode)
{
[dict setObject:[NSNumber numberWithUnsignedLongLong:self->_networkStatusCode] forKey:@"network_status_code"];
}
if (self->_networkRequestUri)
{
[dict setObject:self->_networkRequestUri forKey:@"network_request_uri"];
}
if (self->_has.timestampC2Init)
{
[dict setObject:[NSNumber numberWithUnsignedLongLong:self->_timestampC2Init] forKey:@"timestamp_c2_init"];
}
if (self->_has.timestampC2Start)
{
[dict setObject:[NSNumber numberWithUnsignedLongLong:self->_timestampC2Start] forKey:@"timestamp_c2_start"];
}
if (self->_has.timestampC2Now)
{
[dict setObject:[NSNumber numberWithUnsignedLongLong:self->_timestampC2Now] forKey:@"timestamp_c2_now"];
}
if (self->_has.timestampDnsStart)
{
[dict setObject:[NSNumber numberWithUnsignedLongLong:self->_timestampDnsStart] forKey:@"timestamp_dns_start"];
}
if (self->_has.timestampDnsEnd)
{
[dict setObject:[NSNumber numberWithUnsignedLongLong:self->_timestampDnsEnd] forKey:@"timestamp_dns_end"];
}
if (self->_has.timestampTcpStart)
{
[dict setObject:[NSNumber numberWithUnsignedLongLong:self->_timestampTcpStart] forKey:@"timestamp_tcp_start"];
}
if (self->_has.timestampTcpEnd)
{
[dict setObject:[NSNumber numberWithUnsignedLongLong:self->_timestampTcpEnd] forKey:@"timestamp_tcp_end"];
}
if (self->_has.timestampSslStart)
{
[dict setObject:[NSNumber numberWithUnsignedLongLong:self->_timestampSslStart] forKey:@"timestamp_ssl_start"];
}
if (self->_has.timestampRequestStart)
{
[dict setObject:[NSNumber numberWithUnsignedLongLong:self->_timestampRequestStart] forKey:@"timestamp_request_start"];
}
if (self->_has.timestampRequestEnd)
{
[dict setObject:[NSNumber numberWithUnsignedLongLong:self->_timestampRequestEnd] forKey:@"timestamp_request_end"];
}
if (self->_has.timestampResponseStart)
{
[dict setObject:[NSNumber numberWithUnsignedLongLong:self->_timestampResponseStart] forKey:@"timestamp_response_start"];
}
if (self->_has.timestampResponseEnd)
{
[dict setObject:[NSNumber numberWithUnsignedLongLong:self->_timestampResponseEnd] forKey:@"timestamp_response_end"];
}
if (self->_optionsQualityOfService)
{
[dict setObject:self->_optionsQualityOfService forKey:@"options_quality_of_service"];
}
if (self->_has.optionsOutOfProcess)
{
[dict setObject:[NSNumber numberWithBool:self->_optionsOutOfProcess] forKey:@"options_out_of_process"];
}
if (self->_has.optionsOutOfProcessForceDiscretionary)
{
[dict setObject:[NSNumber numberWithBool:self->_optionsOutOfProcessForceDiscretionary] forKey:@"options_out_of_process_force_discretionary"];
}
if (self->_has.optionsAllowExpensiveAccess)
{
[dict setObject:[NSNumber numberWithBool:self->_optionsAllowExpensiveAccess] forKey:@"options_allow_expensive_access"];
}
if (self->_has.optionsAllowPowerNapScheduling)
{
[dict setObject:[NSNumber numberWithBool:self->_optionsAllowPowerNapScheduling] forKey:@"options_allow_power_nap_scheduling"];
}
if (self->_has.optionsTimeoutIntervalForRequest)
{
[dict setObject:[NSNumber numberWithUnsignedInt:self->_optionsTimeoutIntervalForRequest] forKey:@"options_timeout_interval_for_request"];
}
if (self->_has.optionsTimeoutIntervalForResource)
{
[dict setObject:[NSNumber numberWithUnsignedInt:self->_optionsTimeoutIntervalForResource] forKey:@"options_timeout_interval_for_resource"];
}
if (self->_optionsSourceApplicationBundleIdentifier)
{
[dict setObject:self->_optionsSourceApplicationBundleIdentifier forKey:@"options_source_application_bundle_identifier"];
}
if (self->_optionsSourceApplicationSecondaryIdentifier)
{
[dict setObject:self->_optionsSourceApplicationSecondaryIdentifier forKey:@"options_source_application_secondary_identifier"];
}
if (self->_has.optionsAppleIdContext)
{
[dict setObject:[NSNumber numberWithBool:self->_optionsAppleIdContext] forKey:@"options_apple_id_context"];
}
if (self->_has.optionsTlsPinningRequired)
{
[dict setObject:[NSNumber numberWithBool:self->_optionsTlsPinningRequired] forKey:@"options_tls_pinning_required"];
}
return dict;
}

BOOL SECC2MPNetworkEventReadFrom(__unsafe_unretained SECC2MPNetworkEvent *self, __unsafe_unretained PBDataReader *reader) {
while (PBReaderHasMoreData(reader)) {
uint32_t tag = 0;
uint8_t aType = 0;

PBReaderReadTag32AndType(reader, &tag, &aType);

if (PBReaderHasError(reader))
break;

if (aType == TYPE_END_GROUP) {
break;
}

switch (tag) {

case 1 /* triggers */:
{
self->_has.triggers = YES;
self->_triggers = PBReaderReadUint64(reader);
}
break;
case 2 /* reportFrequency */:
{
self->_has.reportFrequency = YES;
self->_reportFrequency = PBReaderReadUint64(reader);
}
break;
case 3 /* reportFrequencyBase */:
{
self->_has.reportFrequencyBase = YES;
self->_reportFrequencyBase = PBReaderReadUint64(reader);
}
break;
case 101 /* networkTaskDescription */:
{
NSString *new_networkTaskDescription = PBReaderReadString(reader);
self->_networkTaskDescription = new_networkTaskDescription;
}
break;
case 102 /* networkHostname */:
{
NSString *new_networkHostname = PBReaderReadString(reader);
self->_networkHostname = new_networkHostname;
}
break;
case 103 /* networkRemoteAddresssAndPort */:
{
NSString *new_networkRemoteAddresssAndPort = PBReaderReadString(reader);
self->_networkRemoteAddresssAndPort = new_networkRemoteAddresssAndPort;
}
break;
case 104 /* networkConnectionUuid */:
{
NSString *new_networkConnectionUuid = PBReaderReadString(reader);
self->_networkConnectionUuid = new_networkConnectionUuid;
}
break;
case 105 /* networkConnectionReused */:
{
self->_has.networkConnectionReused = YES;
self->_networkConnectionReused = PBReaderReadBOOL(reader);
}
break;
case 106 /* networkInterfaceIdentifier */:
{
NSString *new_networkInterfaceIdentifier = PBReaderReadString(reader);
self->_networkInterfaceIdentifier = new_networkInterfaceIdentifier;
}
break;
case 107 /* networkProtocolName */:
{
NSString *new_networkProtocolName = PBReaderReadString(reader);
self->_networkProtocolName = new_networkProtocolName;
}
break;
case 108 /* networkRequestHeaderSize */:
{
self->_has.networkRequestHeaderSize = YES;
self->_networkRequestHeaderSize = PBReaderReadUint32(reader);
}
break;
case 109 /* networkRequestBodyBytesSent */:
{
self->_has.networkRequestBodyBytesSent = YES;
self->_networkRequestBodyBytesSent = PBReaderReadUint64(reader);
}
break;
case 110 /* networkResponseHeaderSize */:
{
self->_has.networkResponseHeaderSize = YES;
self->_networkResponseHeaderSize = PBReaderReadUint32(reader);
}
break;
case 111 /* networkResponseBodyBytesReceived */:
{
self->_has.networkResponseBodyBytesReceived = YES;
self->_networkResponseBodyBytesReceived = PBReaderReadUint64(reader);
}
break;
case 112 /* networkPreviousAttemptCount */:
{
self->_has.networkPreviousAttemptCount = YES;
self->_networkPreviousAttemptCount = PBReaderReadUint32(reader);
}
break;
case 113 /* networkFatalError */:
{
SECC2MPError *new_networkFatalError = [[SECC2MPError alloc] init];
self->_networkFatalError = new_networkFatalError;
PBDataReaderMark mark_networkFatalError;
BOOL markError = !PBReaderPlaceMark(reader, &mark_networkFatalError);
if (markError)
{
return NO;
}
BOOL inError = !SECC2MPErrorReadFrom(new_networkFatalError, reader);
if (inError)
{
return NO;
}
PBReaderRecallMark(reader, &mark_networkFatalError);
}
break;
case 114 /* networkStatusCode */:
{
self->_has.networkStatusCode = YES;
self->_networkStatusCode = PBReaderReadUint64(reader);
}
break;
case 115 /* networkRequestUri */:
{
NSString *new_networkRequestUri = PBReaderReadString(reader);
self->_networkRequestUri = new_networkRequestUri;
}
break;
case 201 /* timestampC2Init */:
{
self->_has.timestampC2Init = YES;
self->_timestampC2Init = PBReaderReadUint64(reader);
}
break;
case 202 /* timestampC2Start */:
{
self->_has.timestampC2Start = YES;
self->_timestampC2Start = PBReaderReadUint64(reader);
}
break;
case 203 /* timestampC2Now */:
{
self->_has.timestampC2Now = YES;
self->_timestampC2Now = PBReaderReadUint64(reader);
}
break;
case 204 /* timestampDnsStart */:
{
self->_has.timestampDnsStart = YES;
self->_timestampDnsStart = PBReaderReadUint64(reader);
}
break;
case 205 /* timestampDnsEnd */:
{
self->_has.timestampDnsEnd = YES;
self->_timestampDnsEnd = PBReaderReadUint64(reader);
}
break;
case 206 /* timestampTcpStart */:
{
self->_has.timestampTcpStart = YES;
self->_timestampTcpStart = PBReaderReadUint64(reader);
}
break;
case 207 /* timestampTcpEnd */:
{
self->_has.timestampTcpEnd = YES;
self->_timestampTcpEnd = PBReaderReadUint64(reader);
}
break;
case 208 /* timestampSslStart */:
{
self->_has.timestampSslStart = YES;
self->_timestampSslStart = PBReaderReadUint64(reader);
}
break;
case 209 /* timestampRequestStart */:
{
self->_has.timestampRequestStart = YES;
self->_timestampRequestStart = PBReaderReadUint64(reader);
}
break;
case 210 /* timestampRequestEnd */:
{
self->_has.timestampRequestEnd = YES;
self->_timestampRequestEnd = PBReaderReadUint64(reader);
}
break;
case 211 /* timestampResponseStart */:
{
self->_has.timestampResponseStart = YES;
self->_timestampResponseStart = PBReaderReadUint64(reader);
}
break;
case 212 /* timestampResponseEnd */:
{
self->_has.timestampResponseEnd = YES;
self->_timestampResponseEnd = PBReaderReadUint64(reader);
}
break;
case 301 /* optionsQualityOfService */:
{
NSString *new_optionsQualityOfService = PBReaderReadString(reader);
self->_optionsQualityOfService = new_optionsQualityOfService;
}
break;
case 302 /* optionsOutOfProcess */:
{
self->_has.optionsOutOfProcess = YES;
self->_optionsOutOfProcess = PBReaderReadBOOL(reader);
}
break;
case 303 /* optionsOutOfProcessForceDiscretionary */:
{
self->_has.optionsOutOfProcessForceDiscretionary = YES;
self->_optionsOutOfProcessForceDiscretionary = PBReaderReadBOOL(reader);
}
break;
case 304 /* optionsAllowExpensiveAccess */:
{
self->_has.optionsAllowExpensiveAccess = YES;
self->_optionsAllowExpensiveAccess = PBReaderReadBOOL(reader);
}
break;
case 305 /* optionsAllowPowerNapScheduling */:
{
self->_has.optionsAllowPowerNapScheduling = YES;
self->_optionsAllowPowerNapScheduling = PBReaderReadBOOL(reader);
}
break;
case 306 /* optionsTimeoutIntervalForRequest */:
{
self->_has.optionsTimeoutIntervalForRequest = YES;
self->_optionsTimeoutIntervalForRequest = PBReaderReadUint32(reader);
}
break;
case 307 /* optionsTimeoutIntervalForResource */:
{
self->_has.optionsTimeoutIntervalForResource = YES;
self->_optionsTimeoutIntervalForResource = PBReaderReadUint32(reader);
}
break;
case 308 /* optionsSourceApplicationBundleIdentifier */:
{
NSString *new_optionsSourceApplicationBundleIdentifier = PBReaderReadString(reader);
self->_optionsSourceApplicationBundleIdentifier = new_optionsSourceApplicationBundleIdentifier;
}
break;
case 309 /* optionsSourceApplicationSecondaryIdentifier */:
{
NSString *new_optionsSourceApplicationSecondaryIdentifier = PBReaderReadString(reader);
self->_optionsSourceApplicationSecondaryIdentifier = new_optionsSourceApplicationSecondaryIdentifier;
}
break;
case 310 /* optionsAppleIdContext */:
{
self->_has.optionsAppleIdContext = YES;
self->_optionsAppleIdContext = PBReaderReadBOOL(reader);
}
break;
case 311 /* optionsTlsPinningRequired */:
{
self->_has.optionsTlsPinningRequired = YES;
self->_optionsTlsPinningRequired = PBReaderReadBOOL(reader);
}
break;
default:
if (!PBReaderSkipValueWithTag(reader, tag, aType))
return NO;
break;
}
}
return !PBReaderHasError(reader);
}

- (BOOL)readFrom:(PBDataReader *)reader
{
return SECC2MPNetworkEventReadFrom(self, reader);
}
- (void)writeTo:(PBDataWriter *)writer
{
/* triggers */
{
if (self->_has.triggers)
{
PBDataWriterWriteUint64Field(writer, self->_triggers, 1);
}
}
/* reportFrequency */
{
if (self->_has.reportFrequency)
{
PBDataWriterWriteUint64Field(writer, self->_reportFrequency, 2);
}
}
/* reportFrequencyBase */
{
if (self->_has.reportFrequencyBase)
{
PBDataWriterWriteUint64Field(writer, self->_reportFrequencyBase, 3);
}
}
/* networkTaskDescription */
{
if (self->_networkTaskDescription)
{
PBDataWriterWriteStringField(writer, self->_networkTaskDescription, 101);
}
}
/* networkHostname */
{
if (self->_networkHostname)
{
PBDataWriterWriteStringField(writer, self->_networkHostname, 102);
}
}
/* networkRemoteAddresssAndPort */
{
if (self->_networkRemoteAddresssAndPort)
{
PBDataWriterWriteStringField(writer, self->_networkRemoteAddresssAndPort, 103);
}
}
/* networkConnectionUuid */
{
if (self->_networkConnectionUuid)
{
PBDataWriterWriteStringField(writer, self->_networkConnectionUuid, 104);
}
}
/* networkConnectionReused */
{
if (self->_has.networkConnectionReused)
{
PBDataWriterWriteBOOLField(writer, self->_networkConnectionReused, 105);
}
}
/* networkInterfaceIdentifier */
{
if (self->_networkInterfaceIdentifier)
{
PBDataWriterWriteStringField(writer, self->_networkInterfaceIdentifier, 106);
}
}
/* networkProtocolName */
{
if (self->_networkProtocolName)
{
PBDataWriterWriteStringField(writer, self->_networkProtocolName, 107);
}
}
/* networkRequestHeaderSize */
{
if (self->_has.networkRequestHeaderSize)
{
PBDataWriterWriteUint32Field(writer, self->_networkRequestHeaderSize, 108);
}
}
/* networkRequestBodyBytesSent */
{
if (self->_has.networkRequestBodyBytesSent)
{
PBDataWriterWriteUint64Field(writer, self->_networkRequestBodyBytesSent, 109);
}
}
/* networkResponseHeaderSize */
{
if (self->_has.networkResponseHeaderSize)
{
PBDataWriterWriteUint32Field(writer, self->_networkResponseHeaderSize, 110);
}
}
/* networkResponseBodyBytesReceived */
{
if (self->_has.networkResponseBodyBytesReceived)
{
PBDataWriterWriteUint64Field(writer, self->_networkResponseBodyBytesReceived, 111);
}
}
/* networkPreviousAttemptCount */
{
if (self->_has.networkPreviousAttemptCount)
{
PBDataWriterWriteUint32Field(writer, self->_networkPreviousAttemptCount, 112);
}
}
/* networkFatalError */
{
if (self->_networkFatalError != nil)
{
PBDataWriterWriteSubmessage(writer, self->_networkFatalError, 113);
}
}
/* networkStatusCode */
{
if (self->_has.networkStatusCode)
{
PBDataWriterWriteUint64Field(writer, self->_networkStatusCode, 114);
}
}
/* networkRequestUri */
{
if (self->_networkRequestUri)
{
PBDataWriterWriteStringField(writer, self->_networkRequestUri, 115);
}
}
/* timestampC2Init */
{
if (self->_has.timestampC2Init)
{
PBDataWriterWriteUint64Field(writer, self->_timestampC2Init, 201);
}
}
/* timestampC2Start */
{
if (self->_has.timestampC2Start)
{
PBDataWriterWriteUint64Field(writer, self->_timestampC2Start, 202);
}
}
/* timestampC2Now */
{
if (self->_has.timestampC2Now)
{
PBDataWriterWriteUint64Field(writer, self->_timestampC2Now, 203);
}
}
/* timestampDnsStart */
{
if (self->_has.timestampDnsStart)
{
PBDataWriterWriteUint64Field(writer, self->_timestampDnsStart, 204);
}
}
/* timestampDnsEnd */
{
if (self->_has.timestampDnsEnd)
{
PBDataWriterWriteUint64Field(writer, self->_timestampDnsEnd, 205);
}
}
/* timestampTcpStart */
{
if (self->_has.timestampTcpStart)
{
PBDataWriterWriteUint64Field(writer, self->_timestampTcpStart, 206);
}
}
/* timestampTcpEnd */
{
if (self->_has.timestampTcpEnd)
{
PBDataWriterWriteUint64Field(writer, self->_timestampTcpEnd, 207);
}
}
/* timestampSslStart */
{
if (self->_has.timestampSslStart)
{
PBDataWriterWriteUint64Field(writer, self->_timestampSslStart, 208);
}
}
/* timestampRequestStart */
{
if (self->_has.timestampRequestStart)
{
PBDataWriterWriteUint64Field(writer, self->_timestampRequestStart, 209);
}
}
/* timestampRequestEnd */
{
if (self->_has.timestampRequestEnd)
{
PBDataWriterWriteUint64Field(writer, self->_timestampRequestEnd, 210);
}
}
/* timestampResponseStart */
{
if (self->_has.timestampResponseStart)
{
PBDataWriterWriteUint64Field(writer, self->_timestampResponseStart, 211);
}
}
/* timestampResponseEnd */
{
if (self->_has.timestampResponseEnd)
{
PBDataWriterWriteUint64Field(writer, self->_timestampResponseEnd, 212);
}
}
/* optionsQualityOfService */
{
if (self->_optionsQualityOfService)
{
PBDataWriterWriteStringField(writer, self->_optionsQualityOfService, 301);
}
}
/* optionsOutOfProcess */
{
if (self->_has.optionsOutOfProcess)
{
PBDataWriterWriteBOOLField(writer, self->_optionsOutOfProcess, 302);
}
}
/* optionsOutOfProcessForceDiscretionary */
{
if (self->_has.optionsOutOfProcessForceDiscretionary)
{
PBDataWriterWriteBOOLField(writer, self->_optionsOutOfProcessForceDiscretionary, 303);
}
}
/* optionsAllowExpensiveAccess */
{
if (self->_has.optionsAllowExpensiveAccess)
{
PBDataWriterWriteBOOLField(writer, self->_optionsAllowExpensiveAccess, 304);
}
}
/* optionsAllowPowerNapScheduling */
{
if (self->_has.optionsAllowPowerNapScheduling)
{
PBDataWriterWriteBOOLField(writer, self->_optionsAllowPowerNapScheduling, 305);
}
}
/* optionsTimeoutIntervalForRequest */
{
if (self->_has.optionsTimeoutIntervalForRequest)
{
PBDataWriterWriteUint32Field(writer, self->_optionsTimeoutIntervalForRequest, 306);
}
}
/* optionsTimeoutIntervalForResource */
{
if (self->_has.optionsTimeoutIntervalForResource)
{
PBDataWriterWriteUint32Field(writer, self->_optionsTimeoutIntervalForResource, 307);
}
}
/* optionsSourceApplicationBundleIdentifier */
{
if (self->_optionsSourceApplicationBundleIdentifier)
{
PBDataWriterWriteStringField(writer, self->_optionsSourceApplicationBundleIdentifier, 308);
}
}
/* optionsSourceApplicationSecondaryIdentifier */
{
if (self->_optionsSourceApplicationSecondaryIdentifier)
{
PBDataWriterWriteStringField(writer, self->_optionsSourceApplicationSecondaryIdentifier, 309);
}
}
/* optionsAppleIdContext */
{
if (self->_has.optionsAppleIdContext)
{
PBDataWriterWriteBOOLField(writer, self->_optionsAppleIdContext, 310);
}
}
/* optionsTlsPinningRequired */
{
if (self->_has.optionsTlsPinningRequired)
{
PBDataWriterWriteBOOLField(writer, self->_optionsTlsPinningRequired, 311);
}
}
}

- (void)copyTo:(SECC2MPNetworkEvent *)other
{
if (self->_has.triggers)
{
other->_triggers = _triggers;
other->_has.triggers = YES;
}
if (self->_has.reportFrequency)
{
other->_reportFrequency = _reportFrequency;
other->_has.reportFrequency = YES;
}
if (self->_has.reportFrequencyBase)
{
other->_reportFrequencyBase = _reportFrequencyBase;
other->_has.reportFrequencyBase = YES;
}
if (_networkTaskDescription)
{
other.networkTaskDescription = _networkTaskDescription;
}
if (_networkHostname)
{
other.networkHostname = _networkHostname;
}
if (_networkRemoteAddresssAndPort)
{
other.networkRemoteAddresssAndPort = _networkRemoteAddresssAndPort;
}
if (_networkConnectionUuid)
{
other.networkConnectionUuid = _networkConnectionUuid;
}
if (self->_has.networkConnectionReused)
{
other->_networkConnectionReused = _networkConnectionReused;
other->_has.networkConnectionReused = YES;
}
if (_networkInterfaceIdentifier)
{
other.networkInterfaceIdentifier = _networkInterfaceIdentifier;
}
if (_networkProtocolName)
{
other.networkProtocolName = _networkProtocolName;
}
if (self->_has.networkRequestHeaderSize)
{
other->_networkRequestHeaderSize = _networkRequestHeaderSize;
other->_has.networkRequestHeaderSize = YES;
}
if (self->_has.networkRequestBodyBytesSent)
{
other->_networkRequestBodyBytesSent = _networkRequestBodyBytesSent;
other->_has.networkRequestBodyBytesSent = YES;
}
if (self->_has.networkResponseHeaderSize)
{
other->_networkResponseHeaderSize = _networkResponseHeaderSize;
other->_has.networkResponseHeaderSize = YES;
}
if (self->_has.networkResponseBodyBytesReceived)
{
other->_networkResponseBodyBytesReceived = _networkResponseBodyBytesReceived;
other->_has.networkResponseBodyBytesReceived = YES;
}
if (self->_has.networkPreviousAttemptCount)
{
other->_networkPreviousAttemptCount = _networkPreviousAttemptCount;
other->_has.networkPreviousAttemptCount = YES;
}
if (_networkFatalError)
{
other.networkFatalError = _networkFatalError;
}
if (self->_has.networkStatusCode)
{
other->_networkStatusCode = _networkStatusCode;
other->_has.networkStatusCode = YES;
}
if (_networkRequestUri)
{
other.networkRequestUri = _networkRequestUri;
}
if (self->_has.timestampC2Init)
{
other->_timestampC2Init = _timestampC2Init;
other->_has.timestampC2Init = YES;
}
if (self->_has.timestampC2Start)
{
other->_timestampC2Start = _timestampC2Start;
other->_has.timestampC2Start = YES;
}
if (self->_has.timestampC2Now)
{
other->_timestampC2Now = _timestampC2Now;
other->_has.timestampC2Now = YES;
}
if (self->_has.timestampDnsStart)
{
other->_timestampDnsStart = _timestampDnsStart;
other->_has.timestampDnsStart = YES;
}
if (self->_has.timestampDnsEnd)
{
other->_timestampDnsEnd = _timestampDnsEnd;
other->_has.timestampDnsEnd = YES;
}
if (self->_has.timestampTcpStart)
{
other->_timestampTcpStart = _timestampTcpStart;
other->_has.timestampTcpStart = YES;
}
if (self->_has.timestampTcpEnd)
{
other->_timestampTcpEnd = _timestampTcpEnd;
other->_has.timestampTcpEnd = YES;
}
if (self->_has.timestampSslStart)
{
other->_timestampSslStart = _timestampSslStart;
other->_has.timestampSslStart = YES;
}
if (self->_has.timestampRequestStart)
{
other->_timestampRequestStart = _timestampRequestStart;
other->_has.timestampRequestStart = YES;
}
if (self->_has.timestampRequestEnd)
{
other->_timestampRequestEnd = _timestampRequestEnd;
other->_has.timestampRequestEnd = YES;
}
if (self->_has.timestampResponseStart)
{
other->_timestampResponseStart = _timestampResponseStart;
other->_has.timestampResponseStart = YES;
}
if (self->_has.timestampResponseEnd)
{
other->_timestampResponseEnd = _timestampResponseEnd;
other->_has.timestampResponseEnd = YES;
}
if (_optionsQualityOfService)
{
other.optionsQualityOfService = _optionsQualityOfService;
}
if (self->_has.optionsOutOfProcess)
{
other->_optionsOutOfProcess = _optionsOutOfProcess;
other->_has.optionsOutOfProcess = YES;
}
if (self->_has.optionsOutOfProcessForceDiscretionary)
{
other->_optionsOutOfProcessForceDiscretionary = _optionsOutOfProcessForceDiscretionary;
other->_has.optionsOutOfProcessForceDiscretionary = YES;
}
if (self->_has.optionsAllowExpensiveAccess)
{
other->_optionsAllowExpensiveAccess = _optionsAllowExpensiveAccess;
other->_has.optionsAllowExpensiveAccess = YES;
}
if (self->_has.optionsAllowPowerNapScheduling)
{
other->_optionsAllowPowerNapScheduling = _optionsAllowPowerNapScheduling;
other->_has.optionsAllowPowerNapScheduling = YES;
}
if (self->_has.optionsTimeoutIntervalForRequest)
{
other->_optionsTimeoutIntervalForRequest = _optionsTimeoutIntervalForRequest;
other->_has.optionsTimeoutIntervalForRequest = YES;
}
if (self->_has.optionsTimeoutIntervalForResource)
{
other->_optionsTimeoutIntervalForResource = _optionsTimeoutIntervalForResource;
other->_has.optionsTimeoutIntervalForResource = YES;
}
if (_optionsSourceApplicationBundleIdentifier)
{
other.optionsSourceApplicationBundleIdentifier = _optionsSourceApplicationBundleIdentifier;
}
if (_optionsSourceApplicationSecondaryIdentifier)
{
other.optionsSourceApplicationSecondaryIdentifier = _optionsSourceApplicationSecondaryIdentifier;
}
if (self->_has.optionsAppleIdContext)
{
other->_optionsAppleIdContext = _optionsAppleIdContext;
other->_has.optionsAppleIdContext = YES;
}
if (self->_has.optionsTlsPinningRequired)
{
other->_optionsTlsPinningRequired = _optionsTlsPinningRequired;
other->_has.optionsTlsPinningRequired = YES;
}
}

- (id)copyWithZone:(NSZone *)zone
{
SECC2MPNetworkEvent *copy = [[[self class] allocWithZone:zone] init];
if (self->_has.triggers)
{
copy->_triggers = _triggers;
copy->_has.triggers = YES;
}
if (self->_has.reportFrequency)
{
copy->_reportFrequency = _reportFrequency;
copy->_has.reportFrequency = YES;
}
if (self->_has.reportFrequencyBase)
{
copy->_reportFrequencyBase = _reportFrequencyBase;
copy->_has.reportFrequencyBase = YES;
}
copy->_networkTaskDescription = [_networkTaskDescription copyWithZone:zone];
copy->_networkHostname = [_networkHostname copyWithZone:zone];
copy->_networkRemoteAddresssAndPort = [_networkRemoteAddresssAndPort copyWithZone:zone];
copy->_networkConnectionUuid = [_networkConnectionUuid copyWithZone:zone];
if (self->_has.networkConnectionReused)
{
copy->_networkConnectionReused = _networkConnectionReused;
copy->_has.networkConnectionReused = YES;
}
copy->_networkInterfaceIdentifier = [_networkInterfaceIdentifier copyWithZone:zone];
copy->_networkProtocolName = [_networkProtocolName copyWithZone:zone];
if (self->_has.networkRequestHeaderSize)
{
copy->_networkRequestHeaderSize = _networkRequestHeaderSize;
copy->_has.networkRequestHeaderSize = YES;
}
if (self->_has.networkRequestBodyBytesSent)
{
copy->_networkRequestBodyBytesSent = _networkRequestBodyBytesSent;
copy->_has.networkRequestBodyBytesSent = YES;
}
if (self->_has.networkResponseHeaderSize)
{
copy->_networkResponseHeaderSize = _networkResponseHeaderSize;
copy->_has.networkResponseHeaderSize = YES;
}
if (self->_has.networkResponseBodyBytesReceived)
{
copy->_networkResponseBodyBytesReceived = _networkResponseBodyBytesReceived;
copy->_has.networkResponseBodyBytesReceived = YES;
}
if (self->_has.networkPreviousAttemptCount)
{
copy->_networkPreviousAttemptCount = _networkPreviousAttemptCount;
copy->_has.networkPreviousAttemptCount = YES;
}
copy->_networkFatalError = [_networkFatalError copyWithZone:zone];
if (self->_has.networkStatusCode)
{
copy->_networkStatusCode = _networkStatusCode;
copy->_has.networkStatusCode = YES;
}
copy->_networkRequestUri = [_networkRequestUri copyWithZone:zone];
if (self->_has.timestampC2Init)
{
copy->_timestampC2Init = _timestampC2Init;
copy->_has.timestampC2Init = YES;
}
if (self->_has.timestampC2Start)
{
copy->_timestampC2Start = _timestampC2Start;
copy->_has.timestampC2Start = YES;
}
if (self->_has.timestampC2Now)
{
copy->_timestampC2Now = _timestampC2Now;
copy->_has.timestampC2Now = YES;
}
if (self->_has.timestampDnsStart)
{
copy->_timestampDnsStart = _timestampDnsStart;
copy->_has.timestampDnsStart = YES;
}
if (self->_has.timestampDnsEnd)
{
copy->_timestampDnsEnd = _timestampDnsEnd;
copy->_has.timestampDnsEnd = YES;
}
if (self->_has.timestampTcpStart)
{
copy->_timestampTcpStart = _timestampTcpStart;
copy->_has.timestampTcpStart = YES;
}
if (self->_has.timestampTcpEnd)
{
copy->_timestampTcpEnd = _timestampTcpEnd;
copy->_has.timestampTcpEnd = YES;
}
if (self->_has.timestampSslStart)
{
copy->_timestampSslStart = _timestampSslStart;
copy->_has.timestampSslStart = YES;
}
if (self->_has.timestampRequestStart)
{
copy->_timestampRequestStart = _timestampRequestStart;
copy->_has.timestampRequestStart = YES;
}
if (self->_has.timestampRequestEnd)
{
copy->_timestampRequestEnd = _timestampRequestEnd;
copy->_has.timestampRequestEnd = YES;
}
if (self->_has.timestampResponseStart)
{
copy->_timestampResponseStart = _timestampResponseStart;
copy->_has.timestampResponseStart = YES;
}
if (self->_has.timestampResponseEnd)
{
copy->_timestampResponseEnd = _timestampResponseEnd;
copy->_has.timestampResponseEnd = YES;
}
copy->_optionsQualityOfService = [_optionsQualityOfService copyWithZone:zone];
if (self->_has.optionsOutOfProcess)
{
copy->_optionsOutOfProcess = _optionsOutOfProcess;
copy->_has.optionsOutOfProcess = YES;
}
if (self->_has.optionsOutOfProcessForceDiscretionary)
{
copy->_optionsOutOfProcessForceDiscretionary = _optionsOutOfProcessForceDiscretionary;
copy->_has.optionsOutOfProcessForceDiscretionary = YES;
}
if (self->_has.optionsAllowExpensiveAccess)
{
copy->_optionsAllowExpensiveAccess = _optionsAllowExpensiveAccess;
copy->_has.optionsAllowExpensiveAccess = YES;
}
if (self->_has.optionsAllowPowerNapScheduling)
{
copy->_optionsAllowPowerNapScheduling = _optionsAllowPowerNapScheduling;
copy->_has.optionsAllowPowerNapScheduling = YES;
}
if (self->_has.optionsTimeoutIntervalForRequest)
{
copy->_optionsTimeoutIntervalForRequest = _optionsTimeoutIntervalForRequest;
copy->_has.optionsTimeoutIntervalForRequest = YES;
}
if (self->_has.optionsTimeoutIntervalForResource)
{
copy->_optionsTimeoutIntervalForResource = _optionsTimeoutIntervalForResource;
copy->_has.optionsTimeoutIntervalForResource = YES;
}
copy->_optionsSourceApplicationBundleIdentifier = [_optionsSourceApplicationBundleIdentifier copyWithZone:zone];
copy->_optionsSourceApplicationSecondaryIdentifier = [_optionsSourceApplicationSecondaryIdentifier copyWithZone:zone];
if (self->_has.optionsAppleIdContext)
{
copy->_optionsAppleIdContext = _optionsAppleIdContext;
copy->_has.optionsAppleIdContext = YES;
}
if (self->_has.optionsTlsPinningRequired)
{
copy->_optionsTlsPinningRequired = _optionsTlsPinningRequired;
copy->_has.optionsTlsPinningRequired = YES;
}
return copy;
}

- (BOOL)isEqual:(id)object
{
SECC2MPNetworkEvent *other = (SECC2MPNetworkEvent *)object;
return [other isMemberOfClass:[self class]]
&&
((self->_has.triggers && other->_has.triggers && self->_triggers == other->_triggers) || (!self->_has.triggers && !other->_has.triggers))
&&
((self->_has.reportFrequency && other->_has.reportFrequency && self->_reportFrequency == other->_reportFrequency) || (!self->_has.reportFrequency && !other->_has.reportFrequency))
&&
((self->_has.reportFrequencyBase && other->_has.reportFrequencyBase && self->_reportFrequencyBase == other->_reportFrequencyBase) || (!self->_has.reportFrequencyBase && !other->_has.reportFrequencyBase))
&&
((!self->_networkTaskDescription && !other->_networkTaskDescription) || [self->_networkTaskDescription isEqual:other->_networkTaskDescription])
&&
((!self->_networkHostname && !other->_networkHostname) || [self->_networkHostname isEqual:other->_networkHostname])
&&
((!self->_networkRemoteAddresssAndPort && !other->_networkRemoteAddresssAndPort) || [self->_networkRemoteAddresssAndPort isEqual:other->_networkRemoteAddresssAndPort])
&&
((!self->_networkConnectionUuid && !other->_networkConnectionUuid) || [self->_networkConnectionUuid isEqual:other->_networkConnectionUuid])
&&
((self->_has.networkConnectionReused && other->_has.networkConnectionReused && ((self->_networkConnectionReused && other->_networkConnectionReused) || (!self->_networkConnectionReused && !other->_networkConnectionReused))) || (!self->_has.networkConnectionReused && !other->_has.networkConnectionReused))
&&
((!self->_networkInterfaceIdentifier && !other->_networkInterfaceIdentifier) || [self->_networkInterfaceIdentifier isEqual:other->_networkInterfaceIdentifier])
&&
((!self->_networkProtocolName && !other->_networkProtocolName) || [self->_networkProtocolName isEqual:other->_networkProtocolName])
&&
((self->_has.networkRequestHeaderSize && other->_has.networkRequestHeaderSize && self->_networkRequestHeaderSize == other->_networkRequestHeaderSize) || (!self->_has.networkRequestHeaderSize && !other->_has.networkRequestHeaderSize))
&&
((self->_has.networkRequestBodyBytesSent && other->_has.networkRequestBodyBytesSent && self->_networkRequestBodyBytesSent == other->_networkRequestBodyBytesSent) || (!self->_has.networkRequestBodyBytesSent && !other->_has.networkRequestBodyBytesSent))
&&
((self->_has.networkResponseHeaderSize && other->_has.networkResponseHeaderSize && self->_networkResponseHeaderSize == other->_networkResponseHeaderSize) || (!self->_has.networkResponseHeaderSize && !other->_has.networkResponseHeaderSize))
&&
((self->_has.networkResponseBodyBytesReceived && other->_has.networkResponseBodyBytesReceived && self->_networkResponseBodyBytesReceived == other->_networkResponseBodyBytesReceived) || (!self->_has.networkResponseBodyBytesReceived && !other->_has.networkResponseBodyBytesReceived))
&&
((self->_has.networkPreviousAttemptCount && other->_has.networkPreviousAttemptCount && self->_networkPreviousAttemptCount == other->_networkPreviousAttemptCount) || (!self->_has.networkPreviousAttemptCount && !other->_has.networkPreviousAttemptCount))
&&
((!self->_networkFatalError && !other->_networkFatalError) || [self->_networkFatalError isEqual:other->_networkFatalError])
&&
((self->_has.networkStatusCode && other->_has.networkStatusCode && self->_networkStatusCode == other->_networkStatusCode) || (!self->_has.networkStatusCode && !other->_has.networkStatusCode))
&&
((!self->_networkRequestUri && !other->_networkRequestUri) || [self->_networkRequestUri isEqual:other->_networkRequestUri])
&&
((self->_has.timestampC2Init && other->_has.timestampC2Init && self->_timestampC2Init == other->_timestampC2Init) || (!self->_has.timestampC2Init && !other->_has.timestampC2Init))
&&
((self->_has.timestampC2Start && other->_has.timestampC2Start && self->_timestampC2Start == other->_timestampC2Start) || (!self->_has.timestampC2Start && !other->_has.timestampC2Start))
&&
((self->_has.timestampC2Now && other->_has.timestampC2Now && self->_timestampC2Now == other->_timestampC2Now) || (!self->_has.timestampC2Now && !other->_has.timestampC2Now))
&&
((self->_has.timestampDnsStart && other->_has.timestampDnsStart && self->_timestampDnsStart == other->_timestampDnsStart) || (!self->_has.timestampDnsStart && !other->_has.timestampDnsStart))
&&
((self->_has.timestampDnsEnd && other->_has.timestampDnsEnd && self->_timestampDnsEnd == other->_timestampDnsEnd) || (!self->_has.timestampDnsEnd && !other->_has.timestampDnsEnd))
&&
((self->_has.timestampTcpStart && other->_has.timestampTcpStart && self->_timestampTcpStart == other->_timestampTcpStart) || (!self->_has.timestampTcpStart && !other->_has.timestampTcpStart))
&&
((self->_has.timestampTcpEnd && other->_has.timestampTcpEnd && self->_timestampTcpEnd == other->_timestampTcpEnd) || (!self->_has.timestampTcpEnd && !other->_has.timestampTcpEnd))
&&
((self->_has.timestampSslStart && other->_has.timestampSslStart && self->_timestampSslStart == other->_timestampSslStart) || (!self->_has.timestampSslStart && !other->_has.timestampSslStart))
&&
((self->_has.timestampRequestStart && other->_has.timestampRequestStart && self->_timestampRequestStart == other->_timestampRequestStart) || (!self->_has.timestampRequestStart && !other->_has.timestampRequestStart))
&&
((self->_has.timestampRequestEnd && other->_has.timestampRequestEnd && self->_timestampRequestEnd == other->_timestampRequestEnd) || (!self->_has.timestampRequestEnd && !other->_has.timestampRequestEnd))
&&
((self->_has.timestampResponseStart && other->_has.timestampResponseStart && self->_timestampResponseStart == other->_timestampResponseStart) || (!self->_has.timestampResponseStart && !other->_has.timestampResponseStart))
&&
((self->_has.timestampResponseEnd && other->_has.timestampResponseEnd && self->_timestampResponseEnd == other->_timestampResponseEnd) || (!self->_has.timestampResponseEnd && !other->_has.timestampResponseEnd))
&&
((!self->_optionsQualityOfService && !other->_optionsQualityOfService) || [self->_optionsQualityOfService isEqual:other->_optionsQualityOfService])
&&
((self->_has.optionsOutOfProcess && other->_has.optionsOutOfProcess && ((self->_optionsOutOfProcess && other->_optionsOutOfProcess) || (!self->_optionsOutOfProcess && !other->_optionsOutOfProcess))) || (!self->_has.optionsOutOfProcess && !other->_has.optionsOutOfProcess))
&&
((self->_has.optionsOutOfProcessForceDiscretionary && other->_has.optionsOutOfProcessForceDiscretionary && ((self->_optionsOutOfProcessForceDiscretionary && other->_optionsOutOfProcessForceDiscretionary) || (!self->_optionsOutOfProcessForceDiscretionary && !other->_optionsOutOfProcessForceDiscretionary))) || (!self->_has.optionsOutOfProcessForceDiscretionary && !other->_has.optionsOutOfProcessForceDiscretionary))
&&
((self->_has.optionsAllowExpensiveAccess && other->_has.optionsAllowExpensiveAccess && ((self->_optionsAllowExpensiveAccess && other->_optionsAllowExpensiveAccess) || (!self->_optionsAllowExpensiveAccess && !other->_optionsAllowExpensiveAccess))) || (!self->_has.optionsAllowExpensiveAccess && !other->_has.optionsAllowExpensiveAccess))
&&
((self->_has.optionsAllowPowerNapScheduling && other->_has.optionsAllowPowerNapScheduling && ((self->_optionsAllowPowerNapScheduling && other->_optionsAllowPowerNapScheduling) || (!self->_optionsAllowPowerNapScheduling && !other->_optionsAllowPowerNapScheduling))) || (!self->_has.optionsAllowPowerNapScheduling && !other->_has.optionsAllowPowerNapScheduling))
&&
((self->_has.optionsTimeoutIntervalForRequest && other->_has.optionsTimeoutIntervalForRequest && self->_optionsTimeoutIntervalForRequest == other->_optionsTimeoutIntervalForRequest) || (!self->_has.optionsTimeoutIntervalForRequest && !other->_has.optionsTimeoutIntervalForRequest))
&&
((self->_has.optionsTimeoutIntervalForResource && other->_has.optionsTimeoutIntervalForResource && self->_optionsTimeoutIntervalForResource == other->_optionsTimeoutIntervalForResource) || (!self->_has.optionsTimeoutIntervalForResource && !other->_has.optionsTimeoutIntervalForResource))
&&
((!self->_optionsSourceApplicationBundleIdentifier && !other->_optionsSourceApplicationBundleIdentifier) || [self->_optionsSourceApplicationBundleIdentifier isEqual:other->_optionsSourceApplicationBundleIdentifier])
&&
((!self->_optionsSourceApplicationSecondaryIdentifier && !other->_optionsSourceApplicationSecondaryIdentifier) || [self->_optionsSourceApplicationSecondaryIdentifier isEqual:other->_optionsSourceApplicationSecondaryIdentifier])
&&
((self->_has.optionsAppleIdContext && other->_has.optionsAppleIdContext && ((self->_optionsAppleIdContext && other->_optionsAppleIdContext) || (!self->_optionsAppleIdContext && !other->_optionsAppleIdContext))) || (!self->_has.optionsAppleIdContext && !other->_has.optionsAppleIdContext))
&&
((self->_has.optionsTlsPinningRequired && other->_has.optionsTlsPinningRequired && ((self->_optionsTlsPinningRequired && other->_optionsTlsPinningRequired) || (!self->_optionsTlsPinningRequired && !other->_optionsTlsPinningRequired))) || (!self->_has.optionsTlsPinningRequired && !other->_has.optionsTlsPinningRequired))
;
}

- (NSUInteger)hash
{
return 0
^
(self->_has.triggers ? PBHashInt((NSUInteger)self->_triggers) : 0)
^
(self->_has.reportFrequency ? PBHashInt((NSUInteger)self->_reportFrequency) : 0)
^
(self->_has.reportFrequencyBase ? PBHashInt((NSUInteger)self->_reportFrequencyBase) : 0)
^
[self->_networkTaskDescription hash]
^
[self->_networkHostname hash]
^
[self->_networkRemoteAddresssAndPort hash]
^
[self->_networkConnectionUuid hash]
^
(self->_has.networkConnectionReused ? PBHashInt((NSUInteger)self->_networkConnectionReused) : 0)
^
[self->_networkInterfaceIdentifier hash]
^
[self->_networkProtocolName hash]
^
(self->_has.networkRequestHeaderSize ? PBHashInt((NSUInteger)self->_networkRequestHeaderSize) : 0)
^
(self->_has.networkRequestBodyBytesSent ? PBHashInt((NSUInteger)self->_networkRequestBodyBytesSent) : 0)
^
(self->_has.networkResponseHeaderSize ? PBHashInt((NSUInteger)self->_networkResponseHeaderSize) : 0)
^
(self->_has.networkResponseBodyBytesReceived ? PBHashInt((NSUInteger)self->_networkResponseBodyBytesReceived) : 0)
^
(self->_has.networkPreviousAttemptCount ? PBHashInt((NSUInteger)self->_networkPreviousAttemptCount) : 0)
^
[self->_networkFatalError hash]
^
(self->_has.networkStatusCode ? PBHashInt((NSUInteger)self->_networkStatusCode) : 0)
^
[self->_networkRequestUri hash]
^
(self->_has.timestampC2Init ? PBHashInt((NSUInteger)self->_timestampC2Init) : 0)
^
(self->_has.timestampC2Start ? PBHashInt((NSUInteger)self->_timestampC2Start) : 0)
^
(self->_has.timestampC2Now ? PBHashInt((NSUInteger)self->_timestampC2Now) : 0)
^
(self->_has.timestampDnsStart ? PBHashInt((NSUInteger)self->_timestampDnsStart) : 0)
^
(self->_has.timestampDnsEnd ? PBHashInt((NSUInteger)self->_timestampDnsEnd) : 0)
^
(self->_has.timestampTcpStart ? PBHashInt((NSUInteger)self->_timestampTcpStart) : 0)
^
(self->_has.timestampTcpEnd ? PBHashInt((NSUInteger)self->_timestampTcpEnd) : 0)
^
(self->_has.timestampSslStart ? PBHashInt((NSUInteger)self->_timestampSslStart) : 0)
^
(self->_has.timestampRequestStart ? PBHashInt((NSUInteger)self->_timestampRequestStart) : 0)
^
(self->_has.timestampRequestEnd ? PBHashInt((NSUInteger)self->_timestampRequestEnd) : 0)
^
(self->_has.timestampResponseStart ? PBHashInt((NSUInteger)self->_timestampResponseStart) : 0)
^
(self->_has.timestampResponseEnd ? PBHashInt((NSUInteger)self->_timestampResponseEnd) : 0)
^
[self->_optionsQualityOfService hash]
^
(self->_has.optionsOutOfProcess ? PBHashInt((NSUInteger)self->_optionsOutOfProcess) : 0)
^
(self->_has.optionsOutOfProcessForceDiscretionary ? PBHashInt((NSUInteger)self->_optionsOutOfProcessForceDiscretionary) : 0)
^
(self->_has.optionsAllowExpensiveAccess ? PBHashInt((NSUInteger)self->_optionsAllowExpensiveAccess) : 0)
^
(self->_has.optionsAllowPowerNapScheduling ? PBHashInt((NSUInteger)self->_optionsAllowPowerNapScheduling) : 0)
^
(self->_has.optionsTimeoutIntervalForRequest ? PBHashInt((NSUInteger)self->_optionsTimeoutIntervalForRequest) : 0)
^
(self->_has.optionsTimeoutIntervalForResource ? PBHashInt((NSUInteger)self->_optionsTimeoutIntervalForResource) : 0)
^
[self->_optionsSourceApplicationBundleIdentifier hash]
^
[self->_optionsSourceApplicationSecondaryIdentifier hash]
^
(self->_has.optionsAppleIdContext ? PBHashInt((NSUInteger)self->_optionsAppleIdContext) : 0)
^
(self->_has.optionsTlsPinningRequired ? PBHashInt((NSUInteger)self->_optionsTlsPinningRequired) : 0)
;
}

- (void)mergeFrom:(SECC2MPNetworkEvent *)other
{
if (other->_has.triggers)
{
self->_triggers = other->_triggers;
self->_has.triggers = YES;
}
if (other->_has.reportFrequency)
{
self->_reportFrequency = other->_reportFrequency;
self->_has.reportFrequency = YES;
}
if (other->_has.reportFrequencyBase)
{
self->_reportFrequencyBase = other->_reportFrequencyBase;
self->_has.reportFrequencyBase = YES;
}
if (other->_networkTaskDescription)
{
[self setNetworkTaskDescription:other->_networkTaskDescription];
}
if (other->_networkHostname)
{
[self setNetworkHostname:other->_networkHostname];
}
if (other->_networkRemoteAddresssAndPort)
{
[self setNetworkRemoteAddresssAndPort:other->_networkRemoteAddresssAndPort];
}
if (other->_networkConnectionUuid)
{
[self setNetworkConnectionUuid:other->_networkConnectionUuid];
}
if (other->_has.networkConnectionReused)
{
self->_networkConnectionReused = other->_networkConnectionReused;
self->_has.networkConnectionReused = YES;
}
if (other->_networkInterfaceIdentifier)
{
[self setNetworkInterfaceIdentifier:other->_networkInterfaceIdentifier];
}
if (other->_networkProtocolName)
{
[self setNetworkProtocolName:other->_networkProtocolName];
}
if (other->_has.networkRequestHeaderSize)
{
self->_networkRequestHeaderSize = other->_networkRequestHeaderSize;
self->_has.networkRequestHeaderSize = YES;
}
if (other->_has.networkRequestBodyBytesSent)
{
self->_networkRequestBodyBytesSent = other->_networkRequestBodyBytesSent;
self->_has.networkRequestBodyBytesSent = YES;
}
if (other->_has.networkResponseHeaderSize)
{
self->_networkResponseHeaderSize = other->_networkResponseHeaderSize;
self->_has.networkResponseHeaderSize = YES;
}
if (other->_has.networkResponseBodyBytesReceived)
{
self->_networkResponseBodyBytesReceived = other->_networkResponseBodyBytesReceived;
self->_has.networkResponseBodyBytesReceived = YES;
}
if (other->_has.networkPreviousAttemptCount)
{
self->_networkPreviousAttemptCount = other->_networkPreviousAttemptCount;
self->_has.networkPreviousAttemptCount = YES;
}
if (self->_networkFatalError && other->_networkFatalError)
{
[self->_networkFatalError mergeFrom:other->_networkFatalError];
}
else if (!self->_networkFatalError && other->_networkFatalError)
{
[self setNetworkFatalError:other->_networkFatalError];
}
if (other->_has.networkStatusCode)
{
self->_networkStatusCode = other->_networkStatusCode;
self->_has.networkStatusCode = YES;
}
if (other->_networkRequestUri)
{
[self setNetworkRequestUri:other->_networkRequestUri];
}
if (other->_has.timestampC2Init)
{
self->_timestampC2Init = other->_timestampC2Init;
self->_has.timestampC2Init = YES;
}
if (other->_has.timestampC2Start)
{
self->_timestampC2Start = other->_timestampC2Start;
self->_has.timestampC2Start = YES;
}
if (other->_has.timestampC2Now)
{
self->_timestampC2Now = other->_timestampC2Now;
self->_has.timestampC2Now = YES;
}
if (other->_has.timestampDnsStart)
{
self->_timestampDnsStart = other->_timestampDnsStart;
self->_has.timestampDnsStart = YES;
}
if (other->_has.timestampDnsEnd)
{
self->_timestampDnsEnd = other->_timestampDnsEnd;
self->_has.timestampDnsEnd = YES;
}
if (other->_has.timestampTcpStart)
{
self->_timestampTcpStart = other->_timestampTcpStart;
self->_has.timestampTcpStart = YES;
}
if (other->_has.timestampTcpEnd)
{
self->_timestampTcpEnd = other->_timestampTcpEnd;
self->_has.timestampTcpEnd = YES;
}
if (other->_has.timestampSslStart)
{
self->_timestampSslStart = other->_timestampSslStart;
self->_has.timestampSslStart = YES;
}
if (other->_has.timestampRequestStart)
{
self->_timestampRequestStart = other->_timestampRequestStart;
self->_has.timestampRequestStart = YES;
}
if (other->_has.timestampRequestEnd)
{
self->_timestampRequestEnd = other->_timestampRequestEnd;
self->_has.timestampRequestEnd = YES;
}
if (other->_has.timestampResponseStart)
{
self->_timestampResponseStart = other->_timestampResponseStart;
self->_has.timestampResponseStart = YES;
}
if (other->_has.timestampResponseEnd)
{
self->_timestampResponseEnd = other->_timestampResponseEnd;
self->_has.timestampResponseEnd = YES;
}
if (other->_optionsQualityOfService)
{
[self setOptionsQualityOfService:other->_optionsQualityOfService];
}
if (other->_has.optionsOutOfProcess)
{
self->_optionsOutOfProcess = other->_optionsOutOfProcess;
self->_has.optionsOutOfProcess = YES;
}
if (other->_has.optionsOutOfProcessForceDiscretionary)
{
self->_optionsOutOfProcessForceDiscretionary = other->_optionsOutOfProcessForceDiscretionary;
self->_has.optionsOutOfProcessForceDiscretionary = YES;
}
if (other->_has.optionsAllowExpensiveAccess)
{
self->_optionsAllowExpensiveAccess = other->_optionsAllowExpensiveAccess;
self->_has.optionsAllowExpensiveAccess = YES;
}
if (other->_has.optionsAllowPowerNapScheduling)
{
self->_optionsAllowPowerNapScheduling = other->_optionsAllowPowerNapScheduling;
self->_has.optionsAllowPowerNapScheduling = YES;
}
if (other->_has.optionsTimeoutIntervalForRequest)
{
self->_optionsTimeoutIntervalForRequest = other->_optionsTimeoutIntervalForRequest;
self->_has.optionsTimeoutIntervalForRequest = YES;
}
if (other->_has.optionsTimeoutIntervalForResource)
{
self->_optionsTimeoutIntervalForResource = other->_optionsTimeoutIntervalForResource;
self->_has.optionsTimeoutIntervalForResource = YES;
}
if (other->_optionsSourceApplicationBundleIdentifier)
{
[self setOptionsSourceApplicationBundleIdentifier:other->_optionsSourceApplicationBundleIdentifier];
}
if (other->_optionsSourceApplicationSecondaryIdentifier)
{
[self setOptionsSourceApplicationSecondaryIdentifier:other->_optionsSourceApplicationSecondaryIdentifier];
}
if (other->_has.optionsAppleIdContext)
{
self->_optionsAppleIdContext = other->_optionsAppleIdContext;
self->_has.optionsAppleIdContext = YES;
}
if (other->_has.optionsTlsPinningRequired)
{
self->_optionsTlsPinningRequired = other->_optionsTlsPinningRequired;
self->_has.optionsTlsPinningRequired = YES;
}
}

@end