diff --git a/MTNetworkUsageManager.h b/MTNetworkUsageManager.h index 8fef54e0f9..a768085655 100644 --- a/MTNetworkUsageManager.h +++ b/MTNetworkUsageManager.h @@ -27,6 +27,9 @@ typedef struct { - (void)addIncomingBytes:(NSUInteger)incomingBytes interface:(MTNetworkUsageManagerInterface)interface; - (void)addOutgoingBytes:(NSUInteger)outgoingBytes interface:(MTNetworkUsageManagerInterface)interface; +- (void)resetIncomingBytes:(MTNetworkUsageManagerInterface)interface; +- (void)resetOutgoingBytes:(MTNetworkUsageManagerInterface)interface; + - (MTSignal *)currentStats; @end diff --git a/MTNetworkUsageManager.m b/MTNetworkUsageManager.m index 7c8294a4e7..de9e4b7cc3 100644 --- a/MTNetworkUsageManager.m +++ b/MTNetworkUsageManager.m @@ -1,12 +1,25 @@ #import "MTNetworkUsageManager.h" -#import "MTNetworkUsageCalculationInfo.h" -#import "MTTimer.h" -#import "MTQueue.h" -#import "MTSignal.h" #include #import +#if defined(MtProtoKitDynamicFramework) +# import +# import +# import +# import +#elif defined(MtProtoKitMacFramework) +# import +# import +# import +# import +#else +# import +# import +# import +# import +#endif + @implementation MTNetworkUsageManagerStats - (instancetype)initWithWWAN:(MTNetworkUsageManagerInterfaceStats)wwan other:(MTNetworkUsageManagerInterfaceStats)other { @@ -95,6 +108,24 @@ static int interfaceOffset(MTNetworkUsageManagerInterface interface) { }]; } +- (void)resetIncomingBytes:(MTNetworkUsageManagerInterface)interface { + [_queue dispatchOnQueue:^{ + if (_map) { + int64_t *ptr = (int64_t *)(_map + 0 * 16 + interfaceOffset(interface)); + *ptr = 0; + } + }]; +} + +- (void)resetOutgoingBytes:(MTNetworkUsageManagerInterface)interface { + [_queue dispatchOnQueue:^{ + if (_map) { + int64_t *ptr = (int64_t *)(_map + 1 * 16 + interfaceOffset(interface)); + *ptr = 0; + } + }]; +} + - (MTSignal *)currentStats { return [[MTSignal alloc] initWithGenerator:^id(MTSubscriber *subscriber) { [_queue dispatchOnQueue:^{