From 46d7270fdce4cdaa22f7bb58c9ddd82db0661057 Mon Sep 17 00:00:00 2001 From: Guogang Li Date: Mon, 2 Jun 2025 18:10:00 -0700 Subject: [PATCH] Replace GTMLogger with GNCLogger PiperOrigin-RevId: 766419599 --- internal/platform/implementation/apple/BUILD | 6 +- .../apple/Mediums/BLEv2/GNCBLEGATTServer.m | 6 +- .../apple/Mediums/BLEv2/GNCBLEL2CAPClient.m | 6 +- .../Mediums/BLEv2/GNCBLEL2CAPConnection.m | 16 +- .../apple/Mediums/BLEv2/GNCBLEL2CAPServer.m | 14 +- .../apple/Mediums/BLEv2/GNCBLEL2CAPStream.m | 40 ++--- .../apple/Mediums/BLEv2/GNCBLEMedium.m | 6 +- .../apple/Mediums/BLEv2/NSData+GNCBase85.mm | 2 +- .../implementation/apple/Mediums/BUILD | 2 +- .../apple/Mediums/Ble/GNCMBleConnection.m | 10 +- .../apple/Mediums/Ble/GNCMBleUtils.mm | 14 +- .../apple/Mediums/Ble/Sockets/BUILD | 6 +- .../Source/Central/GNSCentralManager.h | 4 +- .../Source/Central/GNSCentralManager.m | 51 +++--- .../Source/Central/GNSCentralPeerManager.m | 159 ++++++++++-------- .../Source/Peripheral/GNSPeripheralManager.m | 54 +++--- .../Peripheral/GNSPeripheralServiceManager.m | 118 +++++++------ .../Ble/Sockets/Source/Shared/GNSSocket.h | 8 +- .../Ble/Sockets/Source/Shared/GNSSocket.m | 63 ++++--- .../Sockets/Source/Shared/GNSWeavePacket.h | 8 +- .../GNSPeripheralServiceManagerTest.m | 4 +- .../implementation/apple/Mediums/GNCLeaks.m | 4 +- .../apple/Mediums/Hotspot/GNCHotspotMedium.m | 47 +++--- .../apple/Mediums/Hotspot/GNCHotspotSocket.m | 2 +- .../apple/Mediums/WiFiCommon/GNCNWFramework.m | 24 +-- .../WiFiCommon/GNCNWFrameworkServerSocket.m | 14 +- .../Mediums/WiFiCommon/GNCNWFrameworkSocket.m | 2 +- .../Mediums/WiFiCommon/GNCNWParameters.m | 12 +- .../platform/implementation/apple/awdl.mm | 8 +- .../implementation/apple/ble_gatt_client.mm | 8 +- .../implementation/apple/ble_gatt_server.mm | 10 +- .../apple/ble_l2cap_server_socket.mm | 2 +- .../implementation/apple/ble_l2cap_socket.mm | 8 +- .../implementation/apple/ble_medium.mm | 38 ++--- .../implementation/apple/device_info.mm | 14 +- .../implementation/apple/network_utils.mm | 22 +-- .../platform/implementation/apple/timer.mm | 6 +- .../implementation/apple/wifi_hotspot.mm | 36 ++-- .../platform/implementation/apple/wifi_lan.mm | 8 +- 39 files changed, 444 insertions(+), 418 deletions(-) diff --git a/internal/platform/implementation/apple/BUILD b/internal/platform/implementation/apple/BUILD index db511888..ed8e912f 100644 --- a/internal/platform/implementation/apple/BUILD +++ b/internal/platform/implementation/apple/BUILD @@ -74,7 +74,7 @@ objc_library( "//internal/platform/implementation:types", "//internal/platform/implementation/apple/Mediums", "//internal/platform/implementation/shared:file", - "//third_party/objective_c/google_toolbox_for_mac:GTM_Logger", + "//internal/platform/implementation/apple/Log:GNCLogger", ] + select({ "@platforms//os:platform_ios": [ "//third_party/apple_frameworks:UIKit", @@ -120,12 +120,12 @@ objc_library( "//internal/platform:uuid", "//internal/platform/implementation:comm", "//internal/platform/implementation/apple/Flags", + "//internal/platform/implementation/apple/Log:GNCLogger", "//internal/platform/implementation/apple/Mediums", "//internal/platform/implementation/apple/Mediums/Ble/Sockets:Central", "//internal/platform/implementation/apple/Mediums/Ble/Sockets:Peripheral", "//third_party/apple_frameworks:CoreBluetooth", "//third_party/apple_frameworks:Foundation", - "//third_party/objective_c/google_toolbox_for_mac:GTM_Logger", "@com_google_absl//absl/container:flat_hash_map", "@com_google_absl//absl/functional:any_invocable", "@com_google_absl//absl/strings", @@ -158,8 +158,8 @@ objc_library( "//internal/platform:base", "//internal/platform:cancellation_flag", "//internal/platform/implementation:comm", + "//internal/platform/implementation/apple/Log:GNCLogger", "//internal/platform/implementation/apple/Mediums", - "//third_party/objective_c/google_toolbox_for_mac:GTM_Logger", "@com_google_absl//absl/functional:any_invocable", ], ) diff --git a/internal/platform/implementation/apple/Mediums/BLEv2/GNCBLEGATTServer.m b/internal/platform/implementation/apple/Mediums/BLEv2/GNCBLEGATTServer.m index efc80d4d..bdcb2403 100644 --- a/internal/platform/implementation/apple/Mediums/BLEv2/GNCBLEGATTServer.m +++ b/internal/platform/implementation/apple/Mediums/BLEv2/GNCBLEGATTServer.m @@ -18,12 +18,12 @@ #import #import "internal/platform/implementation/apple/Flags/GNCFeatureFlags.h" +#import "internal/platform/implementation/apple/Log/GNCLogger.h" #import "internal/platform/implementation/apple/Mediums/BLEv2/GNCBLEError.h" #import "internal/platform/implementation/apple/Mediums/BLEv2/GNCBLEGATTCharacteristic.h" #import "internal/platform/implementation/apple/Mediums/BLEv2/GNCPeripheralManager.h" #import "internal/platform/implementation/apple/Mediums/BLEv2/NSData+GNCBase85.h" #import "internal/platform/implementation/apple/Mediums/BLEv2/NSData+GNCWebSafeBase64.h" -#import "GoogleToolboxForMac/GTMLogger.h" NS_ASSUME_NONNULL_BEGIN @@ -316,7 +316,7 @@ static char *const kGNCBLEGATTServerQueueLabel = "com.nearby.GNCBLEGATTServer"; error:(nullable NSError *)error { dispatch_assert_queue(_queue); if (error) { - GTMLoggerError(@"Failed to start advertising: %@", error); + GNCLoggerError(@"Failed to start advertising: %@", error); } } @@ -325,7 +325,7 @@ static char *const kGNCBLEGATTServerQueueLabel = "com.nearby.GNCBLEGATTServer"; error:(nullable NSError *)error { dispatch_assert_queue(_queue); if (error) { - GTMLoggerError(@"Failed to add service %@: %@", service, error); + GNCLoggerError(@"Failed to add service %@: %@", service, error); } } diff --git a/internal/platform/implementation/apple/Mediums/BLEv2/GNCBLEL2CAPClient.m b/internal/platform/implementation/apple/Mediums/BLEv2/GNCBLEL2CAPClient.m index 3ec26863..1b247a20 100644 --- a/internal/platform/implementation/apple/Mediums/BLEv2/GNCBLEL2CAPClient.m +++ b/internal/platform/implementation/apple/Mediums/BLEv2/GNCBLEL2CAPClient.m @@ -17,10 +17,10 @@ #import #import +#import "internal/platform/implementation/apple/Log/GNCLogger.h" #import "internal/platform/implementation/apple/Mediums/BLEv2/GNCBLEError.h" #import "internal/platform/implementation/apple/Mediums/BLEv2/GNCBLEL2CAPStream.h" #import "internal/platform/implementation/apple/Mediums/BLEv2/GNCPeripheral.h" -#import "GoogleToolboxForMac/GTMLogger.h" static char *const kGNCBLEL2CAPClientQueueLabel = "com.google.nearby.GNCBLEL2CAPClient"; @@ -59,7 +59,7 @@ static char *const kGNCBLEL2CAPClientQueueLabel = "com.google.nearby.GNCBLEL2CAP - (void)openL2CAPChannelWithPSM:(uint16_t)PSM peripheral:(id)peripheral completionHandler:(GNCOpenL2CAPStreamCompletionHandler)completionHandler { - GTMLoggerInfo(@"[NEARBY] openL2CAPChannelWithPSM = %d", PSM); + GNCLoggerInfo(@"[NEARBY] openL2CAPChannelWithPSM = %d", PSM); _peripheral = peripheral; _peripheral.peripheralDelegate = self; _completionHandler = [completionHandler copy]; @@ -81,7 +81,7 @@ static char *const kGNCBLEL2CAPClientQueueLabel = "com.google.nearby.GNCBLEL2CAP didOpenL2CAPChannel:(CBL2CAPChannel *)channel error:(NSError *)error { dispatch_assert_queue(_queue); - GTMLoggerDebug( + GNCLoggerDebug( @"[NEARBY] didOpenL2CAPChannel, channel: %@, inputStream: %@, outputStream: %@, error: %@", channel, channel.inputStream, channel.outputStream, error); // TODO: b/399815436 - channel.inputStream is null when doing testing. Refactor tests in the diff --git a/internal/platform/implementation/apple/Mediums/BLEv2/GNCBLEL2CAPConnection.m b/internal/platform/implementation/apple/Mediums/BLEv2/GNCBLEL2CAPConnection.m index ef02844b..85954cef 100644 --- a/internal/platform/implementation/apple/Mediums/BLEv2/GNCBLEL2CAPConnection.m +++ b/internal/platform/implementation/apple/Mediums/BLEv2/GNCBLEL2CAPConnection.m @@ -16,11 +16,11 @@ #import +#import "internal/platform/implementation/apple/Log/GNCLogger.h" #import "internal/platform/implementation/apple/Mediums/BLEv2/GNCBLEL2CAPStream.h" #import "internal/platform/implementation/apple/Mediums/Ble/GNCMBleUtils.h" #import "internal/platform/implementation/apple/Mediums/GNCLeaks.h" #import "internal/platform/implementation/apple/Mediums/GNCMConnection.h" -#import "GoogleToolboxForMac/GTMLogger.h" enum { kL2CAPPacketLength = 4 }; static const CGFloat kRequestDataConnectionDelayInSeconds = 0.0; @@ -101,7 +101,7 @@ static NSData *PrefixLengthData(NSData *data) { // Prefix the service ID hash. packet = PrefixLengthData(PrefixDataWithServiceIDHash(_serviceIDHash, data)); if (_verboseLoggingEnabled) { - GTMLoggerDebug(@"[NEARBY] GNCBLEL2CAPConnection data to be sent: %@", [packet description]); + GNCLoggerDebug(@"[NEARBY] GNCBLEL2CAPConnection data to be sent: %@", [packet description]); } [_stream sendData:packet completionBlock:^(BOOL result) { @@ -113,7 +113,7 @@ static NSData *PrefixLengthData(NSData *data) { } - (void)requestDataConnectionWithCompletion:(void (^)(BOOL))completion { - GTMLoggerInfo(@"[NEARBY] Sending l2cap packet request data connection"); + GNCLoggerInfo(@"[NEARBY] Sending l2cap packet request data connection"); // TODO b/399815436 - A bug is causing channel has written to the socket but the remote does not // receive it. Add a delay to make sure the data is written to the socket. Remove the delay once // the bug is fixed. @@ -141,7 +141,7 @@ static NSData *PrefixLengthData(NSData *data) { - (void)stream:(GNCBLEL2CAPStream *)stream didReceiveData:(NSData *)data { if (_verboseLoggingEnabled) { - GTMLoggerDebug(@"[NEARBY] BLEL2CAPConnection didReceiveData, data: %@, length: %lu", + GNCLoggerDebug(@"[NEARBY] BLEL2CAPConnection didReceiveData, data: %@, length: %lu", [data debugDescription], data.length); } if (!data.length) { @@ -214,7 +214,7 @@ static NSData *PrefixLengthData(NSData *data) { // Extract the service ID prefix from each data packet and validate it. NSUInteger prefixLength = _serviceIDHash.length; if (![[realData subdataWithRange:NSMakeRange(0, prefixLength)] isEqual:_serviceIDHash]) { - GTMLoggerError(@"[NEARBY]: Received wrong data packet and discarded"); + GNCLoggerError(@"[NEARBY]: Received wrong data packet and discarded"); return bytesProcessed; } @@ -234,7 +234,7 @@ static NSData *PrefixLengthData(NSData *data) { // Store the expected data length if it is not set yet. if (!_expectedDataLength) { if (data.length < kL2CAPPacketLength) { - GTMLoggerError(@"[NEARBY] Data length mismatch. Expected: > %d, Actual: %lu", + GNCLoggerError(@"[NEARBY] Data length mismatch. Expected: > %d, Actual: %lu", kL2CAPPacketLength, data.length); return nil; } @@ -314,9 +314,9 @@ static NSData *PrefixLengthData(NSData *data) { NSData *serviceIDHash = GNCMParseBLEFramesIntroductionPacket(data); if ([serviceIDHash isEqual:_serviceIDHash]) { _handledReceivedBLEIntroPacket = YES; - GTMLoggerInfo(@"[NEARBY]: Received BLE intro packet and handled."); + GNCLoggerInfo(@"[NEARBY]: Received BLE intro packet and handled."); } else { - GTMLoggerInfo(@"[NEARBY]: Received wrong BLE intro packet and discarded."); + GNCLoggerInfo(@"[NEARBY]: Received wrong BLE intro packet and discarded."); } } diff --git a/internal/platform/implementation/apple/Mediums/BLEv2/GNCBLEL2CAPServer.m b/internal/platform/implementation/apple/Mediums/BLEv2/GNCBLEL2CAPServer.m index a97d720d..ae814890 100644 --- a/internal/platform/implementation/apple/Mediums/BLEv2/GNCBLEL2CAPServer.m +++ b/internal/platform/implementation/apple/Mediums/BLEv2/GNCBLEL2CAPServer.m @@ -17,10 +17,10 @@ #import #import +#import "internal/platform/implementation/apple/Log/GNCLogger.h" #import "internal/platform/implementation/apple/Mediums/BLEv2/GNCBLEError.h" #import "internal/platform/implementation/apple/Mediums/BLEv2/GNCBLEL2CAPStream.h" #import "internal/platform/implementation/apple/Mediums/BLEv2/GNCPeripheralManager.h" -#import "GoogleToolboxForMac/GTMLogger.h" NS_ASSUME_NONNULL_BEGIN @@ -91,7 +91,7 @@ static char *const kGNCBLEL2CAPServerQueueLabel = "com.google.nearby.GNCBLEL2CAP // insufficient authentication errors due to initialization order. [_peripheralManager publishL2CAPChannelWithEncryption:NO]; } else { - GTMLoggerInfo(@"[NEARBY] Peripheral must be on to start, waiting."); + GNCLoggerInfo(@"[NEARBY] Peripheral must be on to start, waiting."); _alreadyStartedWhenPeripheralPoweredOff = YES; } } @@ -124,9 +124,9 @@ static char *const kGNCBLEL2CAPServerQueueLabel = "com.google.nearby.GNCBLEL2CAP didPublishL2CAPChannel:(CBL2CAPPSM)PSM error:(nullable NSError *)error { dispatch_assert_queue(_queue); - GTMLoggerDebug(@"[NEARBY] didPublishL2CAPChannel with PSM: %@", @(PSM)); + GNCLoggerDebug(@"[NEARBY] didPublishL2CAPChannel with PSM: %@", @(PSM)); if (error) { - GTMLoggerError(@"[NEARBY] Failed to publish L2CAP channel: %@", error); + GNCLoggerError(@"[NEARBY] Failed to publish L2CAP channel: %@", error); if (_psmPublishedCompletionHandler) { _psmPublishedCompletionHandler(0, error); } @@ -142,9 +142,9 @@ static char *const kGNCBLEL2CAPServerQueueLabel = "com.google.nearby.GNCBLEL2CAP didUnpublishL2CAPChannel:(CBL2CAPPSM)PSM error:(NSError *)error { dispatch_assert_queue(_queue); - GTMLoggerDebug(@"[NEARBY] didUnpublishL2CAPChannel on PSM %@", @(PSM)); + GNCLoggerDebug(@"[NEARBY] didUnpublishL2CAPChannel on PSM %@", @(PSM)); if (error) { - GTMLoggerError(@"[NEARBY] Failed to unpublish L2CAP channel: %@", error); + GNCLoggerError(@"[NEARBY] Failed to unpublish L2CAP channel: %@", error); } [_l2CAPStream tearDown]; _l2CAPStream = nil; @@ -155,7 +155,7 @@ static char *const kGNCBLEL2CAPServerQueueLabel = "com.google.nearby.GNCBLEL2CAP didOpenL2CAPChannel:(nullable CBL2CAPChannel *)channel error:(nullable NSError *)error { dispatch_assert_queue(_queue); - GTMLoggerDebug( + GNCLoggerDebug( @"[NEARBY] didOpenL2CAPChannel, channel: %@, inputStream: %@, outputStream: %@, error: %@", channel, channel.inputStream, channel.outputStream, error); // TODO: edwinwu - channel.inputStream is null when doing testing. Refactor tests in the future. diff --git a/internal/platform/implementation/apple/Mediums/BLEv2/GNCBLEL2CAPStream.m b/internal/platform/implementation/apple/Mediums/BLEv2/GNCBLEL2CAPStream.m index 35191cb1..018a50d0 100644 --- a/internal/platform/implementation/apple/Mediums/BLEv2/GNCBLEL2CAPStream.m +++ b/internal/platform/implementation/apple/Mediums/BLEv2/GNCBLEL2CAPStream.m @@ -14,7 +14,7 @@ #import "internal/platform/implementation/apple/Mediums/BLEv2/GNCBLEL2CAPStream.h" -#import "GoogleToolboxForMac/GTMLogger.h" +#import "internal/platform/implementation/apple/Log/GNCLogger.h" enum { READ_BUFFER_SIZE = 409600 }; @@ -101,13 +101,13 @@ enum { READ_BUFFER_SIZE = 409600 }; - (void)tearDown { dispatch_async(_streamQueue, ^{ - GTMLoggerDebug(@"[NEARBY] Closing inputStream %@ by tearDown", self.inputStream); + GNCLoggerDebug(@"[NEARBY] Closing inputStream %@ by tearDown", self.inputStream); [self.inputStream close]; self.inputStream.delegate = nil; self.inputStream = nil; @synchronized(self->_writeBufferArray) { - GTMLoggerDebug(@"[NEARBY] Closing outputStream %@ by tearDown", self.outputStream); + GNCLoggerDebug(@"[NEARBY] Closing outputStream %@ by tearDown", self.outputStream); [self.outputStream close]; self.outputStream.delegate = nil; self.outputStream = nil; @@ -126,7 +126,7 @@ enum { READ_BUFFER_SIZE = 409600 }; NSStream *inputStream = _inputStream; NSStream *outputStream = _outputStream; dispatch_async(_streamQueue, ^{ - GTMLoggerDebug(@"[NEARBY] Closing streams inputStream %@ outputStream %@ by deallocation", + GNCLoggerDebug(@"[NEARBY] Closing streams inputStream %@ outputStream %@ by deallocation", inputStream, outputStream); [inputStream close]; inputStream.delegate = nil; @@ -138,7 +138,7 @@ enum { READ_BUFFER_SIZE = 409600 }; - (void)sendData:(NSData *)data completionBlock:(void (^)(BOOL))completionBlock { if (!data || data.length == 0) { - GTMLoggerError(@"[NEARBY] Sending data cannot be nil or empty"); + GNCLoggerError(@"[NEARBY] Sending data cannot be nil or empty"); } GNCBLEL2CAPStreamWriteOperation *write = @@ -157,7 +157,7 @@ enum { READ_BUFFER_SIZE = 409600 }; - (void)stream:(NSStream *)stream handleEvent:(NSStreamEvent)eventCode { if (_verboseLoggingEnabled) { - GTMLoggerDebug(@"[NEARBY] Stream event %@ for stream %@", + GNCLoggerDebug(@"[NEARBY] Stream event %@ for stream %@", [[self class] stringFromStreamEventCode:eventCode], stream); } if ([stream isEqual:self.inputStream]) { @@ -173,7 +173,7 @@ enum { READ_BUFFER_SIZE = 409600 }; case NSStreamEventHasSpaceAvailable: case NSStreamEventNone: default: - GTMLoggerInfo(@"[NEARBY] Received event %@ for stream %@", + GNCLoggerInfo(@"[NEARBY] Received event %@ for stream %@", [[self class] stringFromStreamEventCode:eventCode], stream); break; } @@ -198,7 +198,7 @@ enum { READ_BUFFER_SIZE = 409600 }; case NSStreamEventEndEncountered: case NSStreamEventNone: default: - GTMLoggerInfo(@"[NEARBY] Received event %@ for stream %@", + GNCLoggerInfo(@"[NEARBY] Received event %@ for stream %@", [[self class] stringFromStreamEventCode:eventCode], stream); break; } @@ -235,21 +235,21 @@ enum { READ_BUFFER_SIZE = 409600 }; self.outputStream = outputStream; if (inputStream.delegate) { - GTMLoggerError(@"[NEARBY] Should not have a delegate."); + GNCLoggerError(@"[NEARBY] Should not have a delegate."); return; } if (outputStream.delegate) { - GTMLoggerError(@"[NEARBY] Should not have a delegate."); + GNCLoggerError(@"[NEARBY] Should not have a delegate."); return; } inputStream.delegate = self; outputStream.delegate = self; - GTMLoggerDebug(@"[NEARBY] streams inputStream %@ outputStream %@", inputStream, outputStream); + GNCLoggerDebug(@"[NEARBY] streams inputStream %@ outputStream %@", inputStream, outputStream); if (!_streamQueue) { - GTMLoggerError(@"[NEARBY] Stream queue must be initialized."); + GNCLoggerError(@"[NEARBY] Stream queue must be initialized."); return; } @@ -266,7 +266,7 @@ enum { READ_BUFFER_SIZE = 409600 }; /// Must be called after synchronizing on |_writeBufferArray|. - (void)sendWriteBufferData { if (!_writeBufferArray.count) { - GTMLoggerError(@"[NEARBY] sendWriteBufferData should not be called with empty buffer"); + GNCLoggerError(@"[NEARBY] sendWriteBufferData should not be called with empty buffer"); return; } @@ -275,18 +275,18 @@ enum { READ_BUFFER_SIZE = 409600 }; [self.outputStream write:(const uint8_t *)_writeBufferArray.firstObject.remainingData.bytes maxLength:totalBytesToWrite]; if (result < 0) { - GTMLoggerError(@"[NEARBY] Stream write error %@", self.outputStream.streamError); + GNCLoggerError(@"[NEARBY] Stream write error %@", self.outputStream.streamError); return; } if (result < 0) { - GTMLoggerError(@"[NEARBY] Write result should not be negative."); + GNCLoggerError(@"[NEARBY] Write result should not be negative."); return; } NSUInteger totalBytesWritten = (NSUInteger)result; if (_verboseLoggingEnabled) { - GTMLoggerInfo(@"[NEARBY] Wrote %@/%@ bytes to stream", @(totalBytesWritten), + GNCLoggerInfo(@"[NEARBY] Wrote %@/%@ bytes to stream", @(totalBytesWritten), @(totalBytesToWrite)); } @@ -297,7 +297,7 @@ enum { READ_BUFFER_SIZE = 409600 }; } else { [_writeBufferArray.firstObject consumeBytes:totalBytesWritten]; if (_writeBufferArray.firstObject.remainingData.length == 0) { - GTMLoggerError(@"[NEARBY] Remaining data cannot be empty."); + GNCLoggerError(@"[NEARBY] Remaining data cannot be empty."); return; } } @@ -314,16 +314,16 @@ enum { READ_BUFFER_SIZE = 409600 }; [data appendBytes:readBuffer length:(NSUInteger)bytesRead]; if (_verboseLoggingEnabled) { - GTMLoggerDebug(@"[NEARBY] Stream data from device of length %@", @(data.length)); + GNCLoggerDebug(@"[NEARBY] Stream data from device of length %@", @(data.length)); } dispatch_async(_receivedDataQueue, ^{ [_delegate stream:self didReceiveData:data]; }); } else if (bytesRead < 0) { - GTMLoggerError(@"[NEARBY] Stream read error: %@", self.inputStream.streamError); + GNCLoggerError(@"[NEARBY] Stream read error: %@", self.inputStream.streamError); } else if (bytesRead == 0) { - GTMLoggerDebug(@"[NEARBY] End of stream reached. Disconnecting"); + GNCLoggerDebug(@"[NEARBY] End of stream reached. Disconnecting"); // This indicates the L2CAP socket is closed. Notifying the owner so that it can tear down this // stream and update its own state. [_delegate stream:self didDisconnectWithError:nil]; diff --git a/internal/platform/implementation/apple/Mediums/BLEv2/GNCBLEMedium.m b/internal/platform/implementation/apple/Mediums/BLEv2/GNCBLEMedium.m index 6d5e711a..c3e6b9de 100644 --- a/internal/platform/implementation/apple/Mediums/BLEv2/GNCBLEMedium.m +++ b/internal/platform/implementation/apple/Mediums/BLEv2/GNCBLEMedium.m @@ -18,6 +18,7 @@ #import #import "internal/platform/implementation/apple/Flags/GNCFeatureFlags.h" +#import "internal/platform/implementation/apple/Log/GNCLogger.h" #import "internal/platform/implementation/apple/Mediums/BLEv2/GNCBLEError.h" #import "internal/platform/implementation/apple/Mediums/BLEv2/GNCBLEGATTClient.h" #import "internal/platform/implementation/apple/Mediums/BLEv2/GNCBLEGATTServer.h" @@ -27,7 +28,6 @@ #import "internal/platform/implementation/apple/Mediums/BLEv2/GNCPeripheral.h" #import "internal/platform/implementation/apple/Mediums/BLEv2/NSData+GNCBase85.h" #import "internal/platform/implementation/apple/Mediums/BLEv2/NSData+GNCWebSafeBase64.h" -#import "GoogleToolboxForMac/GTMLogger.h" NS_ASSUME_NONNULL_BEGIN @@ -228,7 +228,7 @@ static GNCBLEL2CAPServer *_Nonnull CreateL2CapServer( dispatch_async(_queue, ^{ __strong __typeof__(self) strongSelf = weakSelf; if (!strongSelf) { - GTMLoggerDebug(@"GNCBLEMedium instance no longer exists when connect to gatt server."); + GNCLoggerDebug(@"GNCBLEMedium instance no longer exists when connect to gatt server."); return; } strongSelf->_gattDisconnectionHandlers[remotePeripheral.identifier] = disconnectionHandler; @@ -273,7 +273,7 @@ static GNCBLEL2CAPServer *_Nonnull CreateL2CapServer( dispatch_async(_queue, ^{ __strong __typeof__(self) strongSelf = weakSelf; if (!strongSelf) { - GTMLoggerDebug(@"GNCBLEMedium instance no longer exists when open L2CAP channel."); + GNCLoggerDebug(@"GNCBLEMedium instance no longer exists when open L2CAP channel."); return; } if (!strongSelf->_l2capClient) { diff --git a/internal/platform/implementation/apple/Mediums/BLEv2/NSData+GNCBase85.mm b/internal/platform/implementation/apple/Mediums/BLEv2/NSData+GNCBase85.mm index 70e5366f..92e83c53 100644 --- a/internal/platform/implementation/apple/Mediums/BLEv2/NSData+GNCBase85.mm +++ b/internal/platform/implementation/apple/Mediums/BLEv2/NSData+GNCBase85.mm @@ -21,7 +21,7 @@ #include "internal/encoding/base85.h" -#import "GoogleToolboxForMac/GTMLogger.h" +#import "internal/platform/implementation/apple/Log/GNCLogger.h" @implementation NSData (GNCBase85) diff --git a/internal/platform/implementation/apple/Mediums/BUILD b/internal/platform/implementation/apple/Mediums/BUILD index 862012ac..793d75d6 100644 --- a/internal/platform/implementation/apple/Mediums/BUILD +++ b/internal/platform/implementation/apple/Mediums/BUILD @@ -82,6 +82,7 @@ objc_library( "//internal/encoding:base85", "//internal/platform/implementation/apple:Shared", "//internal/platform/implementation/apple/Flags", + "//internal/platform/implementation/apple/Log:GNCLogger", "//internal/platform/implementation/apple/Mediums/Ble/Sockets:Shared", "//proto/mediums:ble_frames_cc_proto", "//third_party/apple_frameworks:CoreBluetooth", @@ -92,6 +93,5 @@ objc_library( "//third_party/apple_frameworks:ObjectiveC", "//third_party/apple_frameworks:Security", "//third_party/apple_frameworks:SystemConfiguration", - "//third_party/objective_c/google_toolbox_for_mac:GTM_Logger", ], ) diff --git a/internal/platform/implementation/apple/Mediums/Ble/GNCMBleConnection.m b/internal/platform/implementation/apple/Mediums/Ble/GNCMBleConnection.m index 1ac7f9f4..66dc9a40 100644 --- a/internal/platform/implementation/apple/Mediums/Ble/GNCMBleConnection.m +++ b/internal/platform/implementation/apple/Mediums/Ble/GNCMBleConnection.m @@ -14,11 +14,11 @@ #import "internal/platform/implementation/apple/Mediums/Ble/GNCMBleConnection.h" +#import "internal/platform/implementation/apple/Log/GNCLogger.h" #import "internal/platform/implementation/apple/Mediums/Ble/GNCMBleUtils.h" #import "internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Shared/GNSSocket.h" #import "internal/platform/implementation/apple/Mediums/GNCLeaks.h" #import "internal/platform/implementation/apple/Mediums/GNCMConnection.h" -#import "GoogleToolboxForMac/GTMLogger.h" NS_ASSUME_NONNULL_BEGIN @@ -86,7 +86,7 @@ NS_ASSUME_NONNULL_BEGIN #pragma mark GNSSocketDelegate - (void)socketDidConnect:(GNSSocket *)socket { - GTMLoggerError(@"Unexpected -socketDidConnect: call; should've already happened"); + GNCLoggerError(@"Unexpected -socketDidConnect: call; should've already happened"); } - (void)socket:(GNSSocket *)socket didDisconnectWithError:(NSError *)error { @@ -113,21 +113,21 @@ NS_ASSUME_NONNULL_BEGIN _serviceIDHash = serviceIDHash; _receivedIntroPacket = YES; } else { - GTMLoggerInfo(@"[NEARBY] Input stream: Received wrong intro packet and discarded"); + GNCLoggerInfo(@"[NEARBY] Input stream: Received wrong intro packet and discarded"); } } else { NSData *introData = GNCMGenerateBLEFramesIntroductionPacket(_serviceIDHash); if ([data isEqual:introData]) { _receivedIntroPacket = YES; } else { - GTMLoggerInfo(@"[NEARBY] Input stream: Received wrong intro packet and discarded"); + GNCLoggerInfo(@"[NEARBY] Input stream: Received wrong intro packet and discarded"); } } return; } if (![[data subdataWithRange:NSMakeRange(0, prefixLength)] isEqual:_serviceIDHash]) { - GTMLoggerInfo(@"[NEARBY] Input stream: Received wrong data packet and discarded"); + GNCLoggerInfo(@"[NEARBY] Input stream: Received wrong data packet and discarded"); return; } packet = [NSMutableData diff --git a/internal/platform/implementation/apple/Mediums/Ble/GNCMBleUtils.mm b/internal/platform/implementation/apple/Mediums/Ble/GNCMBleUtils.mm index c69c1e66..66051fc5 100644 --- a/internal/platform/implementation/apple/Mediums/Ble/GNCMBleUtils.mm +++ b/internal/platform/implementation/apple/Mediums/Ble/GNCMBleUtils.mm @@ -19,9 +19,9 @@ #include #import "internal/platform/implementation/apple/GNCUtils.h" +#import "internal/platform/implementation/apple/Log/GNCLogger.h" #import "internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Shared/GNSSocket.h" #include "proto/mediums/ble_frames.pb.h" -#import "GoogleToolboxForMac/GTMLogger.h" NS_ASSUME_NONNULL_BEGIN @@ -116,7 +116,7 @@ NSData *GNCMGenerateBLEFramesDisconnectionPacket(NSData *serviceIDHash) { // TODO: b/399815436 - Add unit tests for this function. GNCMBLEL2CAPPacket *_Nullable GNCMParseBLEL2CAPPacket(NSData *data) { if (data.length < 1) { - GTMLoggerError(@"[NEARBY] Invalid packet length: %@", @(data.length)); + GNCLoggerError(@"[NEARBY] Invalid packet length: %@", @(data.length)); return nil; } @@ -125,7 +125,7 @@ GNCMBLEL2CAPPacket *_Nullable GNCMParseBLEL2CAPPacket(NSData *data) { NSUInteger receivedDataLength = [data length]; GNCMBLEL2CAPCommand command = (GNCMBLEL2CAPCommand)bytes[0]; if (!IsSupportedCommand(command)) { - GTMLoggerError(@"[NEARBY] Invalid command: %lu", command); + GNCLoggerError(@"[NEARBY] Invalid command: %lu", command); return nil; } @@ -137,7 +137,7 @@ GNCMBLEL2CAPPacket *_Nullable GNCMParseBLEL2CAPPacket(NSData *data) { // Validate data length if (dataLength != (int)(receivedDataLength - 3)) { - GTMLoggerError(@"[NEARBY] Data length mismatch. Expected: %d, Actual: %lu", dataLength, + GNCLoggerError(@"[NEARBY] Data length mismatch. Expected: %d, Actual: %lu", dataLength, receivedDataLength - 3); return nil; } @@ -153,7 +153,7 @@ GNCMBLEL2CAPPacket *_Nullable GNCMParseBLEL2CAPPacket(NSData *data) { // TODO: b/399815436 - Add unit tests for this function. NSData *_Nullable GNCMGenerateBLEL2CAPPacket(GNCMBLEL2CAPCommand command, NSData *_Nullable data) { if (!IsSupportedCommand(command)) { - GTMLoggerError(@"[NEARBY] Invalid command to generate packet: %lu", command); + GNCLoggerError(@"[NEARBY] Invalid command to generate packet: %lu", command); return nil; } @@ -161,7 +161,7 @@ NSData *_Nullable GNCMGenerateBLEL2CAPPacket(GNCMBLEL2CAPCommand command, NSData packet.push_back((uint8_t)command); if (data != nil) { if (data.length > 65535) { - GTMLoggerError(@"[NEARBY] Data length is too large: %lu", data.length); + GNCLoggerError(@"[NEARBY] Data length is too large: %lu", data.length); return nil; } // Prepare length bytes @@ -205,7 +205,7 @@ NSData *_Nullable GNCMGenerateBLEL2CAPPacket(GNCMBLEL2CAPCommand command, NSData } - (void)socket:(GNSSocket *)socket didReceiveData:(NSData *)data { - GTMLoggerError(@"Unexpected -didReceiveData: call"); + GNCLoggerError(@"Unexpected -didReceiveData: call"); } @end diff --git a/internal/platform/implementation/apple/Mediums/Ble/Sockets/BUILD b/internal/platform/implementation/apple/Mediums/Ble/Sockets/BUILD index 9f8f1339..22aed87b 100644 --- a/internal/platform/implementation/apple/Mediums/Ble/Sockets/BUILD +++ b/internal/platform/implementation/apple/Mediums/Ble/Sockets/BUILD @@ -34,9 +34,9 @@ objc_library( ], deps = [ ":Shared", + "//internal/platform/implementation/apple/Log:GNCLogger", "//third_party/apple_frameworks:CoreBluetooth", "//third_party/apple_frameworks:Foundation", - "//third_party/objective_c/google_toolbox_for_mac:GTM_Logger", ], ) @@ -55,11 +55,11 @@ objc_library( ], deps = [ ":Shared", + "//internal/platform/implementation/apple/Log:GNCLogger", "//third_party/apple_frameworks:CoreBluetooth", "//third_party/apple_frameworks:CoreFoundation", "//third_party/apple_frameworks:Foundation", "//third_party/apple_frameworks:QuartzCore", - "//third_party/objective_c/google_toolbox_for_mac:GTM_Logger", ] + select({ "@platforms//os:platform_ios": [ "//third_party/apple_frameworks:UIKit", @@ -79,11 +79,11 @@ objc_library( "Source/GNSShared.h", ], deps = [ + "//internal/platform/implementation/apple/Log:GNCLogger", "//third_party/apple_frameworks:CoreBluetooth", "//third_party/apple_frameworks:CoreFoundation", "//third_party/apple_frameworks:Foundation", "//third_party/apple_frameworks:QuartzCore", - "//third_party/objective_c/google_toolbox_for_mac:GTM_Logger", ], ) diff --git a/internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Central/GNSCentralManager.h b/internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Central/GNSCentralManager.h index fbd267a3..0bf52c2e 100644 --- a/internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Central/GNSCentralManager.h +++ b/internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Central/GNSCentralManager.h @@ -21,7 +21,7 @@ NS_ASSUME_NONNULL_BEGIN @class GNSCentralManager; @class GNSCentralPeerManager; -@protocol GNSCentralManagerDelegate +@protocol GNSCentralManagerDelegate /** * Called while scanning when a new peer is found. @@ -70,7 +70,7 @@ NS_ASSUME_NONNULL_BEGIN * [centralPeer socketWithPairingCharacteristic:shouldAddPairingCharacteristics * completion:^(GNSSocket *mySocket, NSError *error) { * if (error) { - * GTMLoggerInfo(@"Error to get the socket %@", error); + * GNCLoggerInfo(@"Error to get the socket %@", error); * return; * } * mySocket.delegate = mySocketDelegate; diff --git a/internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Central/GNSCentralManager.m b/internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Central/GNSCentralManager.m index 52dd9d2d..8006eeec 100644 --- a/internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Central/GNSCentralManager.m +++ b/internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Central/GNSCentralManager.m @@ -15,9 +15,9 @@ #import "internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Central/GNSCentralManager.h" #import "internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Central/GNSCentralManager+Private.h" +#import "internal/platform/implementation/apple/Log/GNCLogger.h" #import "internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Central/GNSCentralPeerManager+Private.h" #import "internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Central/GNSCentralPeerManager.h" -#import "GoogleToolboxForMac/GTMLogger.h" NS_ASSUME_NONNULL_BEGIN @@ -71,10 +71,10 @@ static NSString *CentralManagerStateString(CBCentralManagerState state) { if (self) { _socketServiceUUID = socketServiceUUID; _queue = queue; - _cbCentralManager = [[self class] - centralManagerWithDelegate:self - queue:queue - options:@{CBCentralManagerOptionShowPowerAlertKey : @NO}]; + _cbCentralManager = + [[self class] centralManagerWithDelegate:self + queue:queue + options:@{CBCentralManagerOptionShowPowerAlertKey : @NO}]; _centralPeerManagers = [NSMapTable strongToWeakObjectsMapTable]; } return self; @@ -134,7 +134,7 @@ static NSString *CentralManagerStateString(CBCentralManagerState state) { - (void)retrievePeripheralWithIdentifier:(NSUUID *)identifier advertisementData:(nonnull NSDictionary *)advertisementData { NSArray *peripherals = - [_cbCentralManager retrievePeripheralsWithIdentifiers:@[identifier]]; + [_cbCentralManager retrievePeripheralsWithIdentifiers:@[ identifier ]]; if (peripherals.count > 0) { [self centralManager:_cbCentralManager didDiscoverPeripheral:peripherals[0] @@ -152,8 +152,8 @@ static NSString *CentralManagerStateString(CBCentralManagerState state) { NSAssert(identifier, @"Should have an identifier, self: %@", self); GNSCentralPeerManager *peerManager = [_centralPeerManagers objectForKey:identifier]; if (peerManager) { - GTMLoggerAssert(@"Previous GNSCentralPeerManager still alive, self: %@, peer manager: %@", self, - peerManager); + GNCLoggerFatal(@"Previous GNSCentralPeerManager still alive, self: %@, peer manager: %@", self, + peerManager); return nil; } NSArray *peripherals = @@ -165,7 +165,7 @@ static NSString *CentralManagerStateString(CBCentralManagerState state) { return peerManager; } } - GTMLoggerError(@"CBPeripheral not found, self: %@, identifier %@, peripherals %@", self, + GNCLoggerError(@"CBPeripheral not found, self: %@, identifier %@, peripherals %@", self, identifier, peripherals); return nil; } @@ -200,7 +200,7 @@ static NSString *CentralManagerStateString(CBCentralManagerState state) { // The drawback is the same CBPeripheral is discovered several times per second. NSDictionary *options = @{CBCentralManagerScanOptionAllowDuplicatesKey : @YES}; if (_advertisedName) { - GTMLoggerInfo(@"Start scanning for all peripherals. Filter peripherals with advertised " + GNCLoggerInfo(@"Start scanning for all peripherals. Filter peripherals with advertised " "service UUID %@ or advertised name %@.", [_socketServiceUUID UUIDString], _advertisedName); [_cbCentralManager scanForPeripheralsWithServices:nil options:options]; @@ -211,7 +211,7 @@ static NSString *CentralManagerStateString(CBCentralManagerState state) { // Not logging this case to avoid spamming the logs. [_cbCentralManager scanForPeripheralsWithServices:_advertisedServiceUUIDs options:options]; } else { - GTMLoggerInfo(@"Start scanning for all peripherals."); + GNCLoggerInfo(@"Start scanning for all peripherals."); [_cbCentralManager scanForPeripheralsWithServices:nil options:options]; } } @@ -235,20 +235,20 @@ static NSString *CentralManagerStateString(CBCentralManagerState state) { - (void)connectPeripheralForPeer:(GNSCentralPeerManager *)peer options:(nullable NSDictionary *)options { - GTMLoggerInfo(@"Connect peer %@ options %@", peer, options); + GNCLoggerInfo(@"Connect peer %@ options %@", peer, options); [_cbCentralManager connectPeripheral:peer.cbPeripheral options:options]; } - (void)cancelPeripheralConnectionForPeer:(GNSCentralPeerManager *)peer { - GTMLoggerInfo(@"Cancel peer connection %@", peer); + GNCLoggerInfo(@"Cancel peer connection %@", peer); [_cbCentralManager cancelPeripheralConnection:peer.cbPeripheral]; } - (void)centralPeerManagerDidDisconnect:(GNSCentralPeerManager *)peer { - GTMLoggerInfo(@"Central manager removing central peer manager, central manager: %@, peer %@", + GNCLoggerInfo(@"Central manager removing central peer manager, central manager: %@, peer %@", self, peer); if (peer.cbPeripheral.state != CBPeripheralStateDisconnected) { - GTMLoggerInfo(@"Unexpected peripheral state %@", peer.cbPeripheral); + GNCLoggerInfo(@"Unexpected peripheral state %@", peer.cbPeripheral); } } @@ -257,21 +257,22 @@ static NSString *CentralManagerStateString(CBCentralManagerState state) { } - (GNSCentralPeerManager *)createCentralPeerManagerWithPeripheral:(CBPeripheral *)peripheral { - return [[GNSCentralPeerManager alloc] - initWithPeripheral:peripheral centralManager:self queue:_queue]; + return [[GNSCentralPeerManager alloc] initWithPeripheral:peripheral + centralManager:self + queue:_queue]; } - (GNSCentralPeerManager *)centralPeerForPeripheral:(CBPeripheral *)peripheral { NSParameterAssert(peripheral); GNSCentralPeerManager *peerManager = [_centralPeerManagers objectForKey:peripheral.identifier]; if (!peerManager) { - GTMLoggerDebug(@"No peer manager found for peripheral %@", peripheral); + GNCLoggerDebug(@"No peer manager found for peripheral %@", peripheral); return nil; } if (peerManager.cbPeripheral != peripheral) { // There is a peer manager with a different peripheral object than |peripheral|, but with the // same identifier. Something really wrong happened in CoreBluetooth here. - GTMLoggerError(@"Peer Manager %@ has a different peripheral than %@ [CentralManager = %@]", + GNCLoggerError(@"Peer Manager %@ has a different peripheral than %@ [CentralManager = %@]", peerManager, peripheral, self); return nil; } @@ -282,7 +283,7 @@ static NSString *CentralManagerStateString(CBCentralManagerState state) { - (void)centralManagerDidUpdateState:(CBCentralManager *)central { NSAssert(central == _cbCentralManager, @"Wrong peripheral manager."); - GTMLoggerInfo(@"CoreBluetooth state: %@", + GNCLoggerInfo(@"CoreBluetooth state: %@", CentralManagerStateString([self cbCentralManagerState])); switch (central.state) { case CBCentralManagerStatePoweredOn: { @@ -319,7 +320,7 @@ static NSString *CentralManagerStateString(CBCentralManagerState state) { NSUUID *identifier = peripheral.identifier; GNSCentralPeerManager *peerManager = [_centralPeerManagers objectForKey:identifier]; if (!peerManager) { - GTMLoggerInfo(@"Discovered peer peripheral %@", peripheral); + GNCLoggerInfo(@"Discovered peer peripheral %@", peripheral); peerManager = [self createCentralPeerManagerWithPeripheral:peripheral]; [_centralPeerManagers setObject:peerManager forKey:identifier]; [_delegate centralManager:self @@ -331,10 +332,10 @@ static NSString *CentralManagerStateString(CBCentralManagerState state) { - (void)centralManager:(CBCentralManager *)central didConnectPeripheral:(CBPeripheral *)peripheral { NSAssert(central == _cbCentralManager, @"Unexpected central manager"); - GTMLoggerInfo(@"Connected to %@", peripheral); + GNCLoggerInfo(@"Connected to %@", peripheral); GNSCentralPeerManager *peerManager = [self centralPeerForPeripheral:peripheral]; if (!peerManager) { - GTMLoggerError( + GNCLoggerError( @"No peer manager found for connected peripheral %@. Cancel peripheral connection", peripheral); [_cbCentralManager cancelPeripheralConnection:peripheral]; @@ -347,7 +348,7 @@ static NSString *CentralManagerStateString(CBCentralManagerState state) { didFailToConnectPeripheral:(CBPeripheral *)peripheral error:(nullable NSError *)error { NSAssert(central == _cbCentralManager, @"Unexpected central manager"); - GTMLoggerInfo(@"Fail to connect to %@, error %@", peripheral, error); + GNCLoggerInfo(@"Fail to connect to %@, error %@", peripheral, error); [self peripheralDisconnected:peripheral withError:error]; } @@ -355,7 +356,7 @@ static NSString *CentralManagerStateString(CBCentralManagerState state) { didDisconnectPeripheral:(CBPeripheral *)peripheral error:(nullable NSError *)error { NSAssert(central == _cbCentralManager, @"Unexpected central manager"); - GTMLoggerInfo(@"Did disconnect %@, error %@", peripheral, error); + GNCLoggerInfo(@"Did disconnect %@, error %@", peripheral, error); [self peripheralDisconnected:peripheral withError:error]; } diff --git a/internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Central/GNSCentralPeerManager.m b/internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Central/GNSCentralPeerManager.m index 896a844c..2e20af51 100644 --- a/internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Central/GNSCentralPeerManager.m +++ b/internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Central/GNSCentralPeerManager.m @@ -15,14 +15,14 @@ #import "internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Central/GNSCentralPeerManager.h" #import "internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Central/GNSCentralPeerManager+Private.h" +#import "internal/platform/implementation/apple/Log/GNCLogger.h" #import "internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Central/GNSCentralManager+Private.h" #import "internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Central/GNSCentralManager.h" -#import "internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Shared/GNSSocket.h" #import "internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Shared/GNSSocket+Private.h" -#import "internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Shared/GNSUtils.h" +#import "internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Shared/GNSSocket.h" #import "internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Shared/GNSUtils+Private.h" +#import "internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Shared/GNSUtils.h" #import "internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Shared/GNSWeavePacket.h" -#import "GoogleToolboxForMac/GTMLogger.h" static const NSTimeInterval kMaxConnectionConfirmWaitTimeInSeconds = 2; static const NSTimeInterval kPeripheralFailedToConnectTimeout = 10.0; @@ -85,7 +85,7 @@ static NSString *PeripheralStateString(CBPeripheralState state) { return [NSString stringWithFormat:@"CBPeripheralState Unknown (%ld)", (long)state]; } -@interface GNSCentralPeerManager () +@interface GNSCentralPeerManager () @property(nonatomic) GNSCentralPeerManagerState state; @property(nonatomic) GNSCentralManager *centralManager; @property(nonatomic) dispatch_queue_t queue; @@ -139,7 +139,7 @@ static NSString *PeripheralStateString(CBPeripheralState state) { _queue = queue; _socketMaximumUpdateValueLength = gGNSCentralPeerManagerMaximumUpdateValue; _state = GNSCentralPeerManagerStateNotConnected; - GTMLoggerInfo(@"Peripheral %@", _cbPeripheral); + GNCLoggerInfo(@"Peripheral %@", _cbPeripheral); } return self; } @@ -152,7 +152,7 @@ static NSString *PeripheralStateString(CBPeripheralState state) { } - (void)dealloc { - GTMLoggerDebug(@"Dealloc CentralPeerManager with _cbPeripheral %@", _cbPeripheral); + GNCLoggerDebug(@"Dealloc CentralPeerManager with _cbPeripheral %@", _cbPeripheral); _cbPeripheral.delegate = nil; if (_cbPeripheral.state != CBPeripheralStateDisconnected) { [_centralManager cancelPeripheralConnectionForPeer:self]; @@ -169,9 +169,9 @@ static NSString *PeripheralStateString(CBPeripheralState state) { - (void)socketWithPairingCharacteristic:(BOOL)shouldAddPairingCharacteristics completion:(GNSCentralSocketCompletion)completion { - GTMLoggerInfo(@"Request socket %@", self); + GNCLoggerInfo(@"Request socket %@", self); if (_state != GNSCentralPeerManagerStateNotConnected) { - GTMLoggerInfo(@"There is a pending socket request"); + GNCLoggerInfo(@"There is a pending socket request"); if (completion) { dispatch_async(_queue, ^{ completion(nil, GNSErrorWithCode(GNSErrorOperationInProgress)); @@ -186,10 +186,10 @@ static NSString *PeripheralStateString(CBPeripheralState state) { - (void)cancelPendingSocket { if (_discoveringServiceSocketCompletion == nil) { - GTMLoggerInfo(@"No pending socket, current socket: %@", _socket); + GNCLoggerInfo(@"No pending socket, current socket: %@", _socket); return; } - GTMLoggerInfo(@"Cancelling pending socket"); + GNCLoggerInfo(@"Cancelling pending socket"); NSError *cancelPendingSocketRequested = GNSErrorWithCode(GNSErrorCancelPendingSocketRequested); [self disconnectingWithError:cancelPendingSocketRequested]; } @@ -210,7 +210,9 @@ static NSString *PeripheralStateString(CBPeripheralState state) { NSAssert(completion, @"Completion cannot be nil"); if (![self isBLEConnected]) { NSAssert(!_readRSSIValueCompletions, @"Should not have pending RSSI completions."); - dispatch_async(_queue, ^{ completion(nil, GNSErrorWithCode(GNSErrorNoConnection)); }); + dispatch_async(_queue, ^{ + completion(nil, GNSErrorWithCode(GNSErrorNoConnection)); + }); return; } if (!_readRSSIValueCompletions) { @@ -231,7 +233,7 @@ static NSString *PeripheralStateString(CBPeripheralState state) { #pragma mark - Private - (void)bleConnect { - GTMLoggerInfo(@"BLE connection started."); + GNCLoggerInfo(@"BLE connection started."); _startConnectionTime = [NSDate date]; _state = GNSCentralPeerManagerStateBleConnecting; @@ -249,37 +251,39 @@ static NSString *PeripheralStateString(CBPeripheralState state) { // -didFailToConnectPeripheral should be called at this point, but sometimes neither is called. // In this case, report a timeout error. __weak __typeof__(self) weakSelf = self; - dispatch_after( - dispatch_time(DISPATCH_TIME_NOW, (int64_t)(kPeripheralFailedToConnectTimeout * NSEC_PER_SEC)), - _queue, ^{ - __typeof__(self) strongSelf = weakSelf; - if (!strongSelf) return; - if (strongSelf.state == GNSCentralPeerManagerStateBleConnecting) { - GTMLoggerInfo(@"Timed out trying to connect to peripheral: %@", strongSelf.cbPeripheral); - [strongSelf.centralManager cancelPeripheralConnectionForPeer:self]; - [strongSelf bleDisconnectedWithError:GNSErrorWithCode(GNSErrorConnectionTimedOut)]; - } - }); + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, + (int64_t)(kPeripheralFailedToConnectTimeout * NSEC_PER_SEC)), + _queue, ^{ + __typeof__(self) strongSelf = weakSelf; + if (!strongSelf) return; + if (strongSelf.state == GNSCentralPeerManagerStateBleConnecting) { + GNCLoggerInfo(@"Timed out trying to connect to peripheral: %@", + strongSelf.cbPeripheral); + [strongSelf.centralManager cancelPeripheralConnectionForPeer:self]; + [strongSelf + bleDisconnectedWithError:GNSErrorWithCode(GNSErrorConnectionTimedOut)]; + } + }); } } - (void)bleConnected { if (_cbPeripheral.state != CBPeripheralStateConnected) { - GTMLoggerInfo(@"Unexpected peripheral state: %ld", (long)_cbPeripheral.state); + GNCLoggerInfo(@"Unexpected peripheral state: %ld", (long)_cbPeripheral.state); } - GTMLoggerInfo(@"BLE connected. Elapsed time: %f", + GNCLoggerInfo(@"BLE connected. Elapsed time: %f", [[NSDate date] timeIntervalSinceDate:_startConnectionTime]); if (_state != GNSCentralPeerManagerStateBleConnecting) { - GTMLoggerInfo(@"Should not be connected with %@ when in %@ state", _cbPeripheral, + GNCLoggerInfo(@"Should not be connected with %@ when in %@ state", _cbPeripheral, StateDescription(_state)); return; } - GTMLoggerInfo(@"BLE connected, peripheral: %@", _cbPeripheral); + GNCLoggerInfo(@"BLE connected, peripheral: %@", _cbPeripheral); [self discoverService]; } - (void)bleDisconnectedWithError:(NSError *)error { - GTMLoggerInfo(@"BLE disconnected, peripheral: %@", _cbPeripheral); + GNCLoggerInfo(@"BLE disconnected, peripheral: %@", _cbPeripheral); if (_state == GNSCentralPeerManagerStateNotConnected) { return; } else { @@ -301,9 +305,9 @@ static NSString *PeripheralStateString(CBPeripheralState state) { - (void)disconnectingWithError:(NSError *)error { if (error) { - GTMLoggerInfo(@"Disconnected with error: %@, peripheral: %@", error, _cbPeripheral); + GNCLoggerInfo(@"Disconnected with error: %@, peripheral: %@", error, _cbPeripheral); } else { - GTMLoggerInfo(@"Disconnected from peripheral: %@", _cbPeripheral); + GNCLoggerInfo(@"Disconnected from peripheral: %@", _cbPeripheral); } [_connectionConfirmTimer invalidate]; _connectionConfirmTimer = nil; @@ -323,9 +327,9 @@ static NSString *PeripheralStateString(CBPeripheralState state) { } - (void)bleDisconnected { - GTMLoggerInfo(@"BLE Disconnected %@", _cbPeripheral); + GNCLoggerInfo(@"BLE Disconnected %@", _cbPeripheral); if (_cbPeripheral.state != CBPeripheralStateDisconnected) { - GTMLoggerInfo(@"Unexpected peripheral state: %ld", (long)_cbPeripheral.state); + GNCLoggerInfo(@"Unexpected peripheral state: %ld", (long)_cbPeripheral.state); } NSAssert(_cbPeripheral.delegate == self, @"Self = %@ should be the delegate of %@", self, _cbPeripheral); @@ -346,7 +350,9 @@ static NSString *PeripheralStateString(CBPeripheralState state) { } GNSCentralSocketCompletion completion = _discoveringServiceSocketCompletion; _discoveringServiceSocketCompletion = nil; - dispatch_async(_queue, ^{ completion(nil, _disconnectedError); }); + dispatch_async(_queue, ^{ + completion(nil, _disconnectedError); + }); } else if (currentSocket) { [currentSocket didDisconnectWithError:_disconnectedError]; } @@ -355,14 +361,14 @@ static NSString *PeripheralStateString(CBPeripheralState state) { - (void)discoverService { _state = GNSCentralPeerManagerStateDiscoveringService; CBUUID *serviceUUID = _centralManager.socketServiceUUID; - GTMLoggerInfo(@"Discover service %@ on peripheral: %@", serviceUUID, _cbPeripheral); + GNCLoggerInfo(@"Discover service %@ on peripheral: %@", serviceUUID, _cbPeripheral); NSArray *servicesToDiscover = @[ serviceUUID ]; [_cbPeripheral discoverServices:servicesToDiscover]; } - (void)discoverCharacteristics { if (_cbPeripheral.services.count == 0) return; - GTMLoggerInfo(@"Discover characteristics, peer manager %@", self); + GNCLoggerInfo(@"Discover characteristics, peer manager %@", self); NSMutableArray *characteristics = [NSMutableArray arrayWithObjects:[CBUUID UUIDWithString:kGNSWeaveToPeripheralCharUUIDString], [CBUUID UUIDWithString:kGNSWeaveFromPeripheralCharUUIDString], nil]; @@ -421,7 +427,9 @@ static NSString *PeripheralStateString(CBPeripheralState state) { NSArray *completions = _readRSSIValueCompletions; _readRSSIValueCompletions = nil; for (GNSReadRRSIValueCompletion completion in completions) { - dispatch_async(_queue, ^{ completion(rssiValue, error); }); + dispatch_async(_queue, ^{ + completion(rssiValue, error); + }); } } @@ -443,7 +451,7 @@ static NSString *PeripheralStateString(CBPeripheralState state) { - (void)timeOutConnectionForTimer:(NSTimer *)timer { NSAssert(_state == GNSCentralPeerManagerStateSocketCommunication, @"Timer (%@) fired on the wrong state. [self = %@]", _connectionConfirmTimer, self); - GTMLoggerInfo(@"Timing out %@ socket connection [self = %@].", _socket, self); + GNCLoggerInfo(@"Timing out %@ socket connection [self = %@].", _socket, self); _connectionConfirmTimer = nil; NSError *error = GNSErrorWithCode(GNSErrorConnectionTimedOut); [self disconnectingWithError:error]; @@ -453,21 +461,23 @@ static NSString *PeripheralStateString(CBPeripheralState state) { if (_dataWriteCompletion) { GNSErrorHandler dataWriteCompletion = _dataWriteCompletion; // tail call for reentrancy _dataWriteCompletion = nil; - dispatch_async(_queue, ^{ dataWriteCompletion(error); }); + dispatch_async(_queue, ^{ + dataWriteCompletion(error); + }); } } #pragma mark - CBPeripheralDelegate - (void)peripheral:(CBPeripheral *)peripheral didDiscoverServices:(NSError *)error { - GTMLoggerInfo(@"BLE services discovered. Elapsed time: %f", + GNCLoggerInfo(@"BLE services discovered. Elapsed time: %f", [[NSDate date] timeIntervalSinceDate:_startConnectionTime]); if (_state != GNSCentralPeerManagerStateDiscoveringService) { - GTMLoggerInfo(@"Ignoring services discovered from %@ when in %@ state", _cbPeripheral, + GNCLoggerInfo(@"Ignoring services discovered from %@ when in %@ state", _cbPeripheral, StateDescription(_state)); return; } - GTMLoggerInfo(@"Service discovered for %@, error: %@", self, error); + GNCLoggerInfo(@"Service discovered for %@, error: %@", self, error); if (error) { [self disconnectingWithError:error]; return; @@ -483,17 +493,17 @@ static NSString *PeripheralStateString(CBPeripheralState state) { - (void)peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForService:(CBService *)service error:(NSError *)error { - GTMLoggerInfo(@"BLE characteristics discovered. Elapsed time: %f", + GNCLoggerInfo(@"BLE characteristics discovered. Elapsed time: %f", [[NSDate date] timeIntervalSinceDate:_startConnectionTime]); if (_state != GNSCentralPeerManagerStateDiscoveringCharacteristic) { - GTMLoggerInfo(@"Ignoring characteristics discovered from %@ when in %@ state", _cbPeripheral, + GNCLoggerInfo(@"Ignoring characteristics discovered from %@ when in %@ state", _cbPeripheral, StateDescription(_state)); return; } - GTMLoggerInfo(@"Characteristics discovered for service: %@, error: %@", service, error); + GNCLoggerInfo(@"Characteristics discovered for service: %@, error: %@", service, error); CBService *serviceBeingChecked = _cbPeripheral.services[_indexOfServiceToCheck]; - NSAssert([service.UUID isEqual:serviceBeingChecked.UUID], @"Unknown service %@ %@", - service, serviceBeingChecked.UUID); + NSAssert([service.UUID isEqual:serviceBeingChecked.UUID], @"Unknown service %@ %@", service, + serviceBeingChecked.UUID); if (error) { [self disconnectingWithError:error]; return; @@ -531,7 +541,7 @@ static NSString *PeripheralStateString(CBPeripheralState state) { didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error { if (_state != GNSCentralPeerManagerStateSocketCommunication) { - GTMLoggerInfo(@"Ignoring data received from %@ when in %@ state", _cbPeripheral, + GNCLoggerInfo(@"Ignoring data received from %@ when in %@ state", _cbPeripheral, StateDescription(_state)); return; } @@ -539,7 +549,10 @@ static NSString *PeripheralStateString(CBPeripheralState state) { if ([characteristic.UUID isEqual:_pairingChar.UUID]) { GNSPairingCompletion completion = _pairingCompletion; _pairingCompletion = nil; - if (completion) dispatch_async(_queue, ^{ completion(error == nil, error); }); + if (completion) + dispatch_async(_queue, ^{ + completion(error == nil, error); + }); return; } NSAssert(characteristic == _incomingChar, @"Should read only from the incoming characteristic."); @@ -549,19 +562,19 @@ static NSString *PeripheralStateString(CBPeripheralState state) { // |socket.packetSize| for the rest. NSUInteger truncatedSize = MIN(_socket.packetSize, charValue.length); if (truncatedSize != charValue.length) { - GTMLoggerInfo(@"Packet with %ld bytes trucanted to %ld", (long)charValue.length, + GNCLoggerInfo(@"Packet with %ld bytes trucanted to %ld", (long)charValue.length, (long)truncatedSize); } NSData *packetData = [charValue subdataWithRange:NSMakeRange(0, truncatedSize)]; NSError *parsingError = nil; GNSWeavePacket *packet = [GNSWeavePacket parseData:packetData error:&parsingError]; if (!packet) { - GTMLoggerError(@"Error parsing Weave packet (error = %@).", parsingError); + GNCLoggerError(@"Error parsing Weave packet (error = %@).", parsingError); [self handleWeaveError:GNSErrorParsingWeavePacket socket:_socket]; return; } if (packet.packetCounter != _socket.receivePacketCounter) { - GTMLoggerError(@"Wrong packet counter, [received %d, expected %d].", packet.packetCounter, + GNCLoggerError(@"Wrong packet counter, [received %d, expected %d].", packet.packetCounter, _socket.receivePacketCounter); [self handleWeaveError:GNSErrorWrongWeavePacketCounter socket:_socket]; return; @@ -575,10 +588,10 @@ static NSString *PeripheralStateString(CBPeripheralState state) { error:(NSError *)error { // Note: Avoid using |characteristic.value| here as it seems it is always nil. if (error) { - GTMLoggerInfo(@"Characteristic write failed with error: %@", error); + GNCLoggerInfo(@"Characteristic write failed with error: %@", error); [self disconnectingWithError:error]; } else { - GTMLoggerInfo(@"Characteristic write succeeded"); + GNCLoggerInfo(@"Characteristic write succeeded"); } [self callDataWriteCompletionWithError:error]; } @@ -586,7 +599,7 @@ static NSString *PeripheralStateString(CBPeripheralState state) { // This method sends |packet| fitting a single characteristic write to |socket|. All packets sent by // this class (not the socket) must use this method. - (void)sendPacket:(GNSWeavePacket *)packet { - GTMLoggerInfo(@"Writing value to characteristic (internal)"); + GNCLoggerInfo(@"Writing value to characteristic (internal)"); NSAssert(packet.packetCounter == _socket.sendPacketCounter, @"Wrong packet counter."); [_cbPeripheral writeValue:[packet serialize] forCharacteristic:_outgoingChar @@ -597,14 +610,14 @@ static NSString *PeripheralStateString(CBPeripheralState state) { - (void)peripheral:(CBPeripheral *)peripheral didUpdateNotificationStateForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error { - GTMLoggerInfo(@"BLE characteristic notifications started. Elapsed time: %f", + GNCLoggerInfo(@"BLE characteristic notifications started. Elapsed time: %f", [[NSDate date] timeIntervalSinceDate:_startConnectionTime]); if (_state != GNSCentralPeerManagerStateSettingNotifications) { - GTMLoggerInfo(@"Ignoring notification status change for %@ when in %@ state", _cbPeripheral, + GNCLoggerInfo(@"Ignoring notification status change for %@ when in %@ state", _cbPeripheral, StateDescription(_state)); return; } - GTMLoggerInfo(@"Characteristic notification update: %@, error: %@", characteristic, error); + GNCLoggerInfo(@"Characteristic notification update: %@, error: %@", characteristic, error); if (error) { [self disconnectingWithError:error]; return; @@ -612,18 +625,21 @@ static NSString *PeripheralStateString(CBPeripheralState state) { NSAssert([characteristic.UUID isEqual:_incomingChar.UUID], @"Wrong characteristic"); NSAssert(_state == GNSCentralPeerManagerStateSettingNotifications, @"Wrong state"); _state = GNSCentralPeerManagerStateSocketCommunication; - GTMLoggerInfo(@"Socket ready %@", self); - GNSSocket *socket = - [[GNSSocket alloc] initWithOwner:self peripheralPeer:_cbPeripheral queue:_queue]; + GNCLoggerInfo(@"Socket ready %@", self); + GNSSocket *socket = [[GNSSocket alloc] initWithOwner:self + peripheralPeer:_cbPeripheral + queue:_queue]; GNSCentralSocketCompletion completion = _discoveringServiceSocketCompletion; _discoveringServiceSocketCompletion = nil; _socket = socket; - dispatch_async(_queue, ^{ completion(socket, nil); }); + dispatch_async(_queue, ^{ + completion(socket, nil); + }); if (!_socket) { [self disconnectingWithError:nil]; return; } - GTMLoggerInfo(@"Sending connection request packet."); + GNCLoggerInfo(@"Sending connection request packet."); // On iOS/OS X the central (client) doesn't have access to the negotiated BLE connection MTU. So, // according to the Weave BLE protocol specs, it should send 0. The peripheral will then choose // the appropriated value for the packet size and send it back on the connection confirm packet. @@ -643,7 +659,7 @@ static NSString *PeripheralStateString(CBPeripheralState state) { - (void)peripheral:(CBPeripheral *)peripheral didReadRSSI:(NSNumber *)RSSI error:(NSError *)error { if (error) { - GTMLoggerError(@"Error to read RSSI %@", error); + GNCLoggerError(@"Error to read RSSI %@", error); } [self callRSSICompletionWithRSSIValue:RSSI error:error]; } @@ -655,11 +671,11 @@ static NSString *PeripheralStateString(CBPeripheralState state) { } - (void)sendData:(NSData *)data socket:(GNSSocket *)socket completion:(GNSErrorHandler)completion { - GTMLoggerInfo(@"Writing value to characteristic"); + GNCLoggerInfo(@"Writing value to characteristic"); if (_dataWriteCompletion != nil) { // This shouldn't happen because writes should be serialized by the socket code. But log it // in case there's a bug that causes it to happen. - GTMLoggerInfo(@"Previous characteristic data write didn't complete"); + GNCLoggerInfo(@"Previous characteristic data write didn't complete"); } // Sometimes -didWriteValueForCharacteristic: isn't called, leaving the write operation hanging. @@ -668,7 +684,7 @@ static NSString *PeripheralStateString(CBPeripheralState state) { dispatch_block_t dataWriteTimeoutBlock = dispatch_block_create(0, ^{ __typeof__(self) strongSelf = weakSelf; if (!strongSelf || !socket.isConnected) return; - GTMLoggerInfo(@"Characteristic data write timed out"); + GNCLoggerInfo(@"Characteristic data write timed out"); [strongSelf callDataWriteCompletionWithError:GNSErrorWithCode(GNSErrorConnectionTimedOut)]; }); _dataWriteCompletion = ^(NSError *error) { @@ -678,8 +694,7 @@ static NSString *PeripheralStateString(CBPeripheralState state) { }; dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(kChracteristicWriteTimeoutInSeconds * NSEC_PER_SEC)), - _queue, - dataWriteTimeoutBlock); + _queue, dataWriteTimeoutBlock); [_cbPeripheral writeValue:data forCharacteristic:_outgoingChar @@ -695,7 +710,7 @@ static NSString *PeripheralStateString(CBPeripheralState state) { _state == GNSCentralPeerManagerStateBleDisconnecting) { return; } - GTMLoggerInfo(@"Disconnect socket %@", socket); + GNCLoggerInfo(@"Disconnect socket %@", socket); [self disconnectingWithError:nil]; } @@ -714,7 +729,7 @@ static NSString *PeripheralStateString(CBPeripheralState state) { - (void)handleConnectionRequestPacket:(GNSWeaveConnectionRequestPacket *)packet context:(id)context { - GTMLoggerError(@"Unexpected connection request packet received."); + GNCLoggerError(@"Unexpected connection request packet received."); [self handleWeaveError:GNSErrorUnexpectedWeaveControlPacket socket:_socket]; } @@ -748,13 +763,13 @@ static NSString *PeripheralStateString(CBPeripheralState state) { } - (void)handleErrorPacket:(GNSWeaveErrorPacket *)packet context:(id)context { - GTMLoggerInfo(@"Error packet received."); + GNCLoggerInfo(@"Error packet received."); [self handleWeaveError:GNSErrorWeaveErrorPacketReceived socket:_socket]; } - (void)handleDataPacket:(GNSWeaveDataPacket *)packet context:(id)context { if (packet.isFirstPacket && _socket.waitingForIncomingData) { - GTMLoggerError(@"There is already a receive operation in progress"); + GNCLoggerError(@"There is already a receive operation in progress"); [self handleWeaveError:GNSErrorWeaveDataTransferInProgress socket:_socket]; return; } diff --git a/internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Peripheral/GNSPeripheralManager.m b/internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Peripheral/GNSPeripheralManager.m index 17fb7d8f..4ba828d2 100644 --- a/internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Peripheral/GNSPeripheralManager.m +++ b/internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Peripheral/GNSPeripheralManager.m @@ -14,9 +14,9 @@ #import "internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Peripheral/GNSPeripheralManager+Private.h" +#import "internal/platform/implementation/apple/Log/GNCLogger.h" #import "internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Peripheral/GNSPeripheralServiceManager+Private.h" #import "internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Shared/GNSSocket+Private.h" -#import "GoogleToolboxForMac/GTMLogger.h" #if TARGET_OS_IPHONE #import @@ -134,7 +134,7 @@ static NSTimeInterval gKBTCrashLoopMaxTimeBetweenResetting = 15.f; - (void)start { if (_started) { - GTMLoggerInfo(@"Peripheral manager already started."); + GNCLoggerInfo(@"Peripheral manager already started."); return; } NSMutableDictionary *options = @@ -146,7 +146,7 @@ static NSTimeInterval gKBTCrashLoopMaxTimeBetweenResetting = 15.f; } #endif _cbPeripheralManager = [self cbPeripheralManagerWithDelegate:self queue:_queue options:options]; - GTMLoggerInfo(@"Peripheral manager started."); + GNCLoggerInfo(@"Peripheral manager started."); _started = YES; // From Apple documentation |-[GNSPeripheralManager peripheralManagerDidUpdateState:]| will be // called no matter the current bluetooth state. Also, if the CBPeripheralManager is being @@ -158,10 +158,10 @@ static NSTimeInterval gKBTCrashLoopMaxTimeBetweenResetting = 15.f; - (void)stop { if (!_started) { - GTMLoggerInfo(@"Peripheral manager already stopped."); + GNCLoggerInfo(@"Peripheral manager already stopped."); return; } - GTMLoggerInfo(@"Peripheral manager stopped."); + GNCLoggerInfo(@"Peripheral manager stopped."); _started = NO; [self removeAllBleServicesAndStopAdvertising]; _cbPeripheralManager.delegate = nil; @@ -190,17 +190,17 @@ static NSTimeInterval gKBTCrashLoopMaxTimeBetweenResetting = 15.f; // http://b/28875581 Adding new service when Bluetooth is powered off may be the reason for // the Bluetooth Daemon crash loop. Avoid adding any BLE services here and wait for the next // state change of the |_cbPeripheralManager|. - GTMLoggerError(@"Bluetooth Daemon crash loop detected crashing. Avoid adding BLE services."); + GNCLoggerError(@"Bluetooth Daemon crash loop detected crashing. Avoid adding BLE services."); return; } #if TARGET_OS_IPHONE if (_backgroundTaskId == UIBackgroundTaskInvalid) { - GTMLoggerInfo(@"Start background task to add BLE services and start advertising."); + GNCLoggerInfo(@"Start background task to add BLE services and start advertising."); _backgroundTaskId = [[UIApplication sharedApplication] beginBackgroundTaskWithName:@"Add BLE services and start advertising" expirationHandler:^{ - GTMLoggerError(@"Application was suspended before add BLE services and start " + GNCLoggerError(@"Application was suspended before add BLE services and start " @"advertising finished."); [[UIApplication sharedApplication] endBackgroundTask:_backgroundTaskId]; _backgroundTaskId = UIBackgroundTaskInvalid; @@ -238,15 +238,15 @@ static NSTimeInterval gKBTCrashLoopMaxTimeBetweenResetting = 15.f; CBManagerState cbState = _cbPeripheralManager.state; if ((cbState != CBManagerStatePoweredOn) && (cbState != CBManagerStatePoweredOff)) { - GTMLoggerInfo(@"Do not start advertising on state %@", CBManagerStateString(cbState)); + GNCLoggerInfo(@"Do not start advertising on state %@", CBManagerStateString(cbState)); return; } if (_advertisementInProgressData) { - GTMLoggerInfo(@"Another start advertising operation is in progress."); + GNCLoggerInfo(@"Another start advertising operation is in progress."); return; } if (!_cbPeripheralManager.isAdvertising) { - GTMLoggerInfo(@"Reset the advertiment data as the peripheral is not advertising."); + GNCLoggerInfo(@"Reset the advertiment data as the peripheral is not advertising."); _advertisementData = nil; } @@ -263,7 +263,7 @@ static NSTimeInterval gKBTCrashLoopMaxTimeBetweenResetting = 15.f; } } if (!allServicesAdded) { - GTMLoggerInfo(@"Do not start advertising as not all bluetooth services are added."); + GNCLoggerInfo(@"Do not start advertising as not all bluetooth services are added."); return; } NSMutableDictionary *advertisementData = [NSMutableDictionary dictionary]; @@ -272,7 +272,7 @@ static NSTimeInterval gKBTCrashLoopMaxTimeBetweenResetting = 15.f; advertisementData[CBAdvertisementDataLocalNameKey] = _advertisedName; } if ([advertisementData isEqual:_advertisementData]) { - GTMLoggerInfo( + GNCLoggerInfo( @"Finished adding BLE services and starting advertising (advertisement data = %@).", _advertisementData); #if TARGET_OS_IPHONE @@ -282,7 +282,7 @@ static NSTimeInterval gKBTCrashLoopMaxTimeBetweenResetting = 15.f; return; } - GTMLoggerInfo(@"Start advertising: %@", advertisementData); + GNCLoggerInfo(@"Start advertising: %@", advertisementData); _advertisementInProgressData = [advertisementData copy]; } @@ -296,27 +296,27 @@ static NSTimeInterval gKBTCrashLoopMaxTimeBetweenResetting = 15.f; if (handler()) return; handlerQueue = [NSMutableArray array]; _handlerQueuePerSocketIdentifier[socketIdentifier] = handlerQueue; - GTMLoggerInfo(@"Queueing value for socket: %@", socketIdentifier); + GNCLoggerInfo(@"Queueing value for socket: %@", socketIdentifier); } [handlerQueue addObject:[handler copy]]; } - (void)processUpdateValueBlocks { - GTMLoggerInfo(@"About to send values for sockets: %@", _handlerQueuePerSocketIdentifier.allKeys); + GNCLoggerInfo(@"About to send values for sockets: %@", _handlerQueuePerSocketIdentifier.allKeys); for (NSUUID *socketIdentifier in _handlerQueuePerSocketIdentifier.allKeys) { NSMutableArray *handlerQueue = _handlerQueuePerSocketIdentifier[socketIdentifier]; - GTMLoggerInfo(@"%lu queued values to send.", (unsigned long)handlerQueue.count); + GNCLoggerInfo(@"%lu queued values to send.", (unsigned long)handlerQueue.count); while (handlerQueue.count > 0) { GNSUpdateValueHandler handler = handlerQueue[0]; if (!handler()) { - GTMLoggerInfo(@"Value failed to be send, still in the queue to try later."); + GNCLoggerInfo(@"Value failed to be send, still in the queue to try later."); break; } - GTMLoggerInfo(@"Value sent successfully."); + GNCLoggerInfo(@"Value sent successfully."); [handlerQueue removeObjectAtIndex:0]; if (handlerQueue.count == 0) { - GTMLoggerInfo(@"Removing pending value queue for socket: %@", socketIdentifier); + GNCLoggerInfo(@"Removing pending value queue for socket: %@", socketIdentifier); [_handlerQueuePerSocketIdentifier removeObjectForKey:socketIdentifier]; } } @@ -376,7 +376,7 @@ static NSTimeInterval gKBTCrashLoopMaxTimeBetweenResetting = 15.f; willRestoreState:(NSDictionary *)dict { #if TARGET_OS_IPHONE // Restored API only supported on iOS. - GTMLoggerInfo(@"Restore bluetooth services"); + GNCLoggerInfo(@"Restore bluetooth services"); _advertisementData = dict[CBPeripheralManagerRestoredStateAdvertisementDataKey]; for (CBMutableService *service in dict[CBPeripheralManagerRestoredStateServicesKey]) { GNSPeripheralServiceManager *serviceManager = @@ -384,7 +384,7 @@ static NSTimeInterval gKBTCrashLoopMaxTimeBetweenResetting = 15.f; if (serviceManager) { [serviceManager restoredCBService:service]; } else { - GTMLoggerError(@"restoreFromCBService %@", service); + GNCLoggerError(@"restoreFromCBService %@", service); } } #endif @@ -392,7 +392,7 @@ static NSTimeInterval gKBTCrashLoopMaxTimeBetweenResetting = 15.f; - (void)peripheralManagerDidUpdateState:(CBPeripheralManager *)peripheralManager { NSAssert(peripheralManager == _cbPeripheralManager, @"Wrong peripheral manager."); - GTMLoggerInfo(@"Peripheral manager state updated: %@", + GNCLoggerInfo(@"Peripheral manager state updated: %@", CBManagerStateString(_cbPeripheralManager.state)); switch (_cbPeripheralManager.state) { case CBManagerStatePoweredOn: @@ -439,7 +439,7 @@ static NSTimeInterval gKBTCrashLoopMaxTimeBetweenResetting = 15.f; _advertisementData = _advertisementInProgressData; _advertisementInProgressData = nil; if (error) { - GTMLoggerError(@"Start advertisment failed with error %@. Will retry to start advertising on " + GNCLoggerError(@"Start advertisment failed with error %@. Will retry to start advertising on " "the next BLE state change notification. ", error); _advertisementData = nil; @@ -447,7 +447,7 @@ static NSTimeInterval gKBTCrashLoopMaxTimeBetweenResetting = 15.f; } NSAssert(peripheral.isAdvertising, @"Peripheral should be advertising."); - GTMLoggerInfo(@"Peripheral did start advertising %@", _advertisementData); + GNCLoggerInfo(@"Peripheral did start advertising %@", _advertisementData); // Once an advertisment operation is over, check if the advertised data is up-to-date. [self updateAdvertisedServices]; @@ -459,7 +459,7 @@ static NSTimeInterval gKBTCrashLoopMaxTimeBetweenResetting = 15.f; GNSPeripheralServiceManager *peripheralServiceManager = [_peripheralServiceManagers objectForKey:service.UUID]; if (!peripheralServiceManager) { - GTMLoggerError(@"Unknown service %@ with %@", service, self); + GNCLoggerError(@"Unknown service %@ with %@", service, self); return; } [peripheralServiceManager didAddCBServiceWithError:error]; @@ -532,7 +532,7 @@ static NSTimeInterval gKBTCrashLoopMaxTimeBetweenResetting = 15.f; } - (void)peripheralManagerIsReadyToUpdateSubscribers:(CBPeripheralManager *)peripheral { - GTMLoggerInfo(@"Ready to update subscribers."); + GNCLoggerInfo(@"Ready to update subscribers."); [self processUpdateValueBlocks]; } diff --git a/internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Peripheral/GNSPeripheralServiceManager.m b/internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Peripheral/GNSPeripheralServiceManager.m index 25fb4fe2..ac14c864 100644 --- a/internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Peripheral/GNSPeripheralServiceManager.m +++ b/internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Peripheral/GNSPeripheralServiceManager.m @@ -14,11 +14,11 @@ #import "internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Peripheral/GNSPeripheralServiceManager+Private.h" +#import "internal/platform/implementation/apple/Log/GNCLogger.h" #import "internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Peripheral/GNSPeripheralManager+Private.h" #import "internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Shared/GNSSocket+Private.h" #import "internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Shared/GNSUtils.h" #import "internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Shared/GNSWeavePacket.h" -#import "GoogleToolboxForMac/GTMLogger.h" // The Weave BLE protocol has only one valid version. static const UInt16 kWeaveVersionSupported = 1; @@ -36,7 +36,7 @@ static NSString *GetBluetoothServiceStateDescription(GNSBluetoothServiceState st return @""; } -@interface GNSPeripheralServiceManager () { +@interface GNSPeripheralServiceManager () { GNSPeripheralManager *_peripheralManager; BOOL _addPairingCharacteristic; CBMutableService *_cbService; @@ -145,22 +145,22 @@ static CBMutableCharacteristic *CreatePairingCharacteristic() { } else { _cbService.characteristics = @[ _weaveIncomingChar, _weaveOutgoingChar ]; } - GTMLoggerInfo(@"Will add BLE service: %@", _cbService); + GNCLoggerInfo(@"Will add BLE service: %@", _cbService); } - (void)didAddCBServiceWithError:(NSError *)error { if (_cbServiceState == GNSBluetoothServiceStateNotAdded) { // Ignored as the service was probably removed while the add CBService operation was in // progress. - GTMLoggerError(@"Ignore adding BLE service %@ result (error = %@) %@", _cbService, error, self); + GNCLoggerError(@"Ignore adding BLE service %@ result (error = %@) %@", _cbService, error, self); return; } if (error) { - GTMLoggerError(@"Failed adding BLE service %@ (error = %@) %@", _cbService, error, self); + GNCLoggerError(@"Failed adding BLE service %@ (error = %@) %@", _cbService, error, self); [self didRemoveCBService]; } else { - GTMLoggerInfo(@"Finished adding BLE service %@", _cbService); + GNCLoggerInfo(@"Finished adding BLE service %@", _cbService); _cbServiceState = GNSBluetoothServiceStateAdded; } if (_bleServiceAddedCompletion) { @@ -178,7 +178,7 @@ static CBMutableCharacteristic *CreatePairingCharacteristic() { - (void)restoredCBService:(CBMutableService *)service { if (![service.UUID isEqual:_serviceUUID]) { - GTMLoggerError(@"Cannot restore from bluetooth service %@.", service); + GNCLoggerError(@"Cannot restore from bluetooth service %@.", service); return; } for (CBMutableCharacteristic *characteristic in service.characteristics) { @@ -200,7 +200,7 @@ static CBMutableCharacteristic *CreatePairingCharacteristic() { NSAssert(_pairingChar || !_addPairingCharacteristic, @"Pairing characteristic missing"); _cbService = service; _cbServiceState = GNSBluetoothServiceStateAdded; - GTMLoggerInfo(@"Service restored: %@", _cbService); + GNCLoggerInfo(@"Service restored: %@", _cbService); } - (void)setAdvertising:(BOOL)advertising { @@ -284,12 +284,14 @@ static CBMutableCharacteristic *CreatePairingCharacteristic() { } // Only send the error if no error packet was previously received. if (errorCode != GNSErrorWeaveErrorPacketReceived) { - GTMLoggerInfo(@"Sending error packet for socket: %@", socket); + GNCLoggerInfo(@"Sending error packet for socket: %@", socket); GNSWeaveErrorPacket *errorPacket = [[GNSWeaveErrorPacket alloc] initWithPacketCounter:socket.sendPacketCounter]; - [self sendPacket:errorPacket toSocket:socket completion:^{ - GTMLoggerInfo(@"Error packet sent to socket: %@", socket); - }]; + [self sendPacket:errorPacket + toSocket:socket + completion:^{ + GNCLoggerInfo(@"Error packet sent to socket: %@", socket); + }]; } NSError *error = GNSErrorWithCode(errorCode); [self removeSocket:socket withError:error]; @@ -297,7 +299,7 @@ static CBMutableCharacteristic *CreatePairingCharacteristic() { - (void)processWeaveWriteRequest:(CBATTRequest *)request { if (![request.characteristic.UUID isEqual:_weaveIncomingChar.UUID]) { - GTMLoggerError(@"Cannot process %@ on characteristic %@ (%@)", request, + GNCLoggerError(@"Cannot process %@ on characteristic %@ (%@)", request, request.characteristic.UUID, GNSCharacteristicName(request.characteristic.UUID.UUIDString)); return; @@ -308,25 +310,26 @@ static CBMutableCharacteristic *CreatePairingCharacteristic() { NSUInteger truncatedSize = MIN(socket ? socket.packetSize : kGNSMinSupportedPacketSize, request.value.length); if (truncatedSize != request.value.length) { - GTMLoggerInfo(@"Packet with %ld bytes truncated to %ld.", (long)request.value.length, + GNCLoggerInfo(@"Packet with %ld bytes truncated to %ld.", (long)request.value.length, (long)truncatedSize); } NSData *packetData = [request.value subdataWithRange:NSMakeRange(0, truncatedSize)]; NSError *parsingError = nil; GNSWeavePacket *packet = [GNSWeavePacket parseData:packetData error:&parsingError]; if (!packet) { - GTMLoggerError(@"Error parsing weave packet (error = %@).", parsingError); + GNCLoggerError(@"Error parsing weave packet (error = %@).", parsingError); [self handleWeaveError:GNSErrorParsingWeavePacket socket:socket]; return; } if (!socket && ![packet isKindOfClass:[GNSWeaveConnectionRequestPacket class]]) { - GTMLoggerInfo(@"Non-request weave packet received when no socket exists -- ignoring"); + GNCLoggerInfo(@"Non-request weave packet received when no socket exists -- ignoring"); return; } - UInt8 expectedCounter = [packet isKindOfClass:[GNSWeaveConnectionRequestPacket class]] ? - 0 : socket.receivePacketCounter; + UInt8 expectedCounter = [packet isKindOfClass:[GNSWeaveConnectionRequestPacket class]] + ? 0 + : socket.receivePacketCounter; if (packet.packetCounter != expectedCounter) { - GTMLoggerError(@"Wrong packet counter, [received %d, expected %d].", packet.packetCounter, + GNCLoggerError(@"Wrong packet counter, [received %d, expected %d].", packet.packetCounter, expectedCounter); [self handleWeaveError:GNSErrorWrongWeavePacketCounter socket:socket]; return; @@ -344,12 +347,12 @@ static CBMutableCharacteristic *CreatePairingCharacteristic() { - (void)processWriteRequest:(CBATTRequest *)request { if (![request.characteristic.UUID isEqual:_weaveIncomingChar.UUID]) { - GTMLoggerError(@"Cannot process %@ on characteristic %@ (%@)", request, + GNCLoggerError(@"Cannot process %@ on characteristic %@ (%@)", request, request.characteristic.UUID, GNSCharacteristicName(request.characteristic.UUID.UUIDString)); return; } - GTMLoggerInfo(@"Write request on Weave characteristic."); + GNCLoggerInfo(@"Write request on Weave characteristic."); [self processWeaveWriteRequest:request]; } @@ -368,9 +371,9 @@ static CBMutableCharacteristic *CreatePairingCharacteristic() { } - (void)sendData:(NSData *)data - toSocket:(GNSSocket *)socket - checkConnected:(BOOL)checkConnected - completion:(void (^)(void))completion { + toSocket:(GNSSocket *)socket + checkConnected:(BOOL)checkConnected + completion:(void (^)(void))completion { __weak __typeof__(self) weakSelf = self; [_peripheralManager updateOutgoingCharOnSocket:socket @@ -382,11 +385,13 @@ static CBMutableCharacteristic *CreatePairingCharacteristic() { } if (![strongSelf.peripheralManager updateOutgoingCharacteristic:data onSocket:socket]) { - GTMLoggerInfo(@"Failed to update characteristic value; reschedule"); + GNCLoggerInfo(@"Failed to update characteristic value; reschedule"); return NO; } if (completion) { - dispatch_async(_queue, ^{ completion(); }); + dispatch_async(_queue, ^{ + completion(); + }); } return YES; }]; @@ -398,9 +403,9 @@ static CBMutableCharacteristic *CreatePairingCharacteristic() { - (void)removeSocket:(GNSSocket *)socket withError:(NSError *)error { if (error) { - GTMLoggerInfo(@"Socket disconnected with error, socket: %@, error: %@", socket, error); + GNCLoggerInfo(@"Socket disconnected with error, socket: %@, error: %@", socket, error); } else { - GTMLoggerInfo(@"Socket disconnected %@", socket); + GNCLoggerInfo(@"Socket disconnected %@", socket); } [_sockets removeObjectForKey:socket.peerIdentifier]; [socket didDisconnectWithError:error]; @@ -424,7 +429,7 @@ static CBMutableCharacteristic *CreatePairingCharacteristic() { if (socket && [characteristic.UUID isEqual:_weaveOutgoingChar.UUID]) { // Disconnect signal is optional. If the central unsubscribe to _outgoingChar, the socket // is disconnected. - GTMLoggerInfo(@"%@ unsubscribe to outgoing characteristic", central); + GNCLoggerInfo(@"%@ unsubscribe to outgoing characteristic", central); [self removeSocket:socket withError:nil]; } } @@ -436,17 +441,22 @@ static CBMutableCharacteristic *CreatePairingCharacteristic() { } - (void)sendData:(NSData *)data socket:(GNSSocket *)socket completion:(GNSErrorHandler)completion { - GTMLoggerInfo(@"Updating value in characteristic"); - [_peripheralManager updateOutgoingCharOnSocket:socket withHandler:^{ - BOOL wasSent = [_peripheralManager updateOutgoingCharacteristic:data onSocket:socket]; - if (wasSent) { - GTMLoggerInfo(@"Successfully updated value in characteristic"); - dispatch_async(_queue, ^{ completion(nil); }); - } else { - GTMLoggerInfo(@"Failed to update characteristic value; reschedule"); - } - return wasSent; - }]; + GNCLoggerInfo(@"Updating value in characteristic"); + [_peripheralManager + updateOutgoingCharOnSocket:socket + withHandler:^{ + BOOL wasSent = [_peripheralManager updateOutgoingCharacteristic:data + onSocket:socket]; + if (wasSent) { + GNCLoggerInfo(@"Successfully updated value in characteristic"); + dispatch_async(_queue, ^{ + completion(nil); + }); + } else { + GNCLoggerInfo(@"Failed to update characteristic value; reschedule"); + } + return wasSent; + }]; } - (NSUUID *)socketServiceIdentifier:(GNSSocket *)socket { @@ -466,7 +476,7 @@ static CBMutableCharacteristic *CreatePairingCharacteristic() { toSocket:socket completion:^{ if (weakSelf) { - GTMLoggerInfo(@"Error packet sent (to force the central to disconnect)."); + GNCLoggerInfo(@"Error packet sent (to force the central to disconnect)."); [weakSelf removeSocket:socket withError:nil]; } }]; @@ -482,7 +492,7 @@ static CBMutableCharacteristic *CreatePairingCharacteristic() { NSAssert([request isKindOfClass:[CBATTRequest class]], @"The context should be a request."); GNSSocket *socket = _sockets[((CBATTRequest *)request).central.identifier]; if (socket) { - GTMLoggerInfo(@"Receiving a connection request from an already connected socket %@.", socket); + GNCLoggerInfo(@"Receiving a connection request from an already connected socket %@.", socket); // The peripheral considers the previous socket as being disconnected. NSError *error = GNSErrorWithCode(GNSErrorNewInviteToConnectReceived); [self removeSocket:socket withError:error]; @@ -492,7 +502,7 @@ static CBMutableCharacteristic *CreatePairingCharacteristic() { centralPeer:((CBATTRequest *)request).central queue:_queue]; if (packet.maxVersion < kWeaveVersionSupported || packet.minVersion > kWeaveVersionSupported) { - GTMLoggerError(@"Unsupported Weave version range: [%d, %d].", packet.minVersion, + GNCLoggerError(@"Unsupported Weave version range: [%d, %d].", packet.minVersion, packet.maxVersion); [self handleWeaveError:GNSErrorUnsupportedWeaveProtocolVersion socket:socket]; return; @@ -506,18 +516,20 @@ static CBMutableCharacteristic *CreatePairingCharacteristic() { _sockets[socket.peerIdentifier] = socket; dispatch_async(_queue, ^{ - GTMLoggerInfo(@"Sending connection confirm packet."); + GNCLoggerInfo(@"Sending connection confirm packet."); GNSWeaveConnectionConfirmPacket *confirm = [[GNSWeaveConnectionConfirmPacket alloc] initWithVersion:kWeaveVersionSupported packetSize:socket.packetSize data:nil]; __weak __typeof__(self) weakSelf = self; - [self sendPacket:confirm toSocket:socket completion:^{ - if (weakSelf) { - GTMLoggerInfo(@"Connection confirm packet sent."); - [weakSelf socketReady:socket]; - } - }]; + [self sendPacket:confirm + toSocket:socket + completion:^{ + if (weakSelf) { + GNCLoggerInfo(@"Connection confirm packet sent."); + [weakSelf socketReady:socket]; + } + }]; }); } } @@ -526,14 +538,14 @@ static CBMutableCharacteristic *CreatePairingCharacteristic() { context:(id)request { NSAssert([request isKindOfClass:[CBATTRequest class]], @"The context should be a request."); GNSSocket *socket = _sockets[((CBATTRequest *)request).central.identifier]; - GTMLoggerError(@"Unexpected connection confirm packet received."); + GNCLoggerError(@"Unexpected connection confirm packet received."); [self handleWeaveError:GNSErrorUnexpectedWeaveControlPacket socket:socket]; } - (void)handleErrorPacket:(GNSWeaveErrorPacket *)packet context:(id)request { NSAssert([request isKindOfClass:[CBATTRequest class]], @"The context should be a request."); GNSSocket *socket = _sockets[((CBATTRequest *)request).central.identifier]; - GTMLoggerInfo(@"Error packet received."); + GNCLoggerInfo(@"Error packet received."); [self handleWeaveError:GNSErrorWeaveErrorPacketReceived socket:socket]; } @@ -541,7 +553,7 @@ static CBMutableCharacteristic *CreatePairingCharacteristic() { NSAssert([request isKindOfClass:[CBATTRequest class]], @"The context should be a request."); GNSSocket *socket = _sockets[((CBATTRequest *)request).central.identifier]; if (packet.isFirstPacket && socket.waitingForIncomingData) { - GTMLoggerError(@"There is already a receive operation in progress"); + GNCLoggerError(@"There is already a receive operation in progress"); [self handleWeaveError:GNSErrorWeaveDataTransferInProgress socket:socket]; return; } diff --git a/internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Shared/GNSSocket.h b/internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Shared/GNSSocket.h index 12342277..ecce03c0 100644 --- a/internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Shared/GNSSocket.h +++ b/internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Shared/GNSSocket.h @@ -69,16 +69,16 @@ typedef void (^GNSProgressHandler)(float progress); * * * To receive data: * - (void)socket:(GNSSocket *)socket didReceiveData:(NSData *)data { - * GTMLoggerInfo(@"Data received from central %@", data); + * GNCLoggerInfo(@"Data received from central %@", data); * ... * } * * * To send data: * GNSErrorHandler completionHandler = ^(NSError *error) { * if (error) { - * GTMLoggerInfo(@"Failed to send data") + * GNCLoggerInfo(@"Failed to send data") * } else { - * GTMLoggerInfo(@"data has been sent"); + * GNCLoggerInfo(@"data has been sent"); * } * } * [socket sendData:dataToSend @@ -89,7 +89,7 @@ typedef void (^GNSProgressHandler)(float progress); * * * Once the socket is disconnected (by -[GNSSocket disconnect] or by the peer): * - (void)socket:(GNSSocket *)socket didDisconnectWithError:(NSError *)error { - * GTMLoggerInfo(@"Socket disconnected, by peer"); + * GNCLoggerInfo(@"Socket disconnected, by peer"); * ... * } */ diff --git a/internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Shared/GNSSocket.m b/internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Shared/GNSSocket.m index b8f19d1f..6d4d33a2 100644 --- a/internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Shared/GNSSocket.m +++ b/internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Shared/GNSSocket.m @@ -14,8 +14,8 @@ #import "internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Shared/GNSSocket+Private.h" +#import "internal/platform/implementation/apple/Log/GNCLogger.h" #import "internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Shared/GNSWeavePacket.h" -#import "GoogleToolboxForMac/GTMLogger.h" typedef void (^GNSIncomingChunkReceivedBlock)(NSData *incomingData); @@ -55,17 +55,20 @@ typedef void (^GNSIncomingChunkReceivedBlock)(NSData *incomingData); progressHandler:(GNSProgressHandler)progressHandler completion:(GNSErrorHandler)completion { void (^callCompletion)(NSError *) = ^(NSError *error) { - if (completion) dispatch_async(_queue, ^{ completion(error); }); + if (completion) + dispatch_async(_queue, ^{ + completion(error); + }); }; if (self.sendChunkCallback) { - GTMLoggerInfo(@"Send operation already in progress"); + GNCLoggerInfo(@"Send operation already in progress"); callCompletion(GNSErrorWithCode(GNSErrorOperationInProgress)); return; } data = [data copy]; NSUInteger totalDataSize = data.length; - GTMLoggerInfo(@"Sending data with size %lu", (unsigned long)totalDataSize); + GNCLoggerInfo(@"Sending data with size %lu", (unsigned long)totalDataSize); // Capture self for the duration of the send operation, to ensure it is completely sent. // If the connection is lost, the block will be deleted and the retain cycle broken. @@ -92,34 +95,38 @@ typedef void (^GNSIncomingChunkReceivedBlock)(NSData *incomingData); offset:&newOffset]; [self incrementSendPacketCounter]; - GTMLoggerInfo(@"Sending chunk with size %ld", (long)(newOffset - offset)); - [self.owner sendData:[dataPacket serialize] socket:self completion:^(NSError *_Nullable error) { - if (error) { - GTMLoggerInfo(@"Error sending chunk"); - self.sendChunkCallback = nil; - callCompletion(error); - } else { - if (newOffset < totalDataSize) { - // Dispatch async to avoid stack overflow on large payloads. - dispatch_async(self.queue, ^{ self.sendChunkCallback(newOffset); }); - } else { - GTMLoggerInfo(@"Finished sending payload"); - self.sendChunkCallback = nil; - callCompletion(nil); - } - } - }]; + GNCLoggerInfo(@"Sending chunk with size %ld", (long)(newOffset - offset)); + [self.owner sendData:[dataPacket serialize] + socket:self + completion:^(NSError *_Nullable error) { + if (error) { + GNCLoggerInfo(@"Error sending chunk"); + self.sendChunkCallback = nil; + callCompletion(error); + } else { + if (newOffset < totalDataSize) { + // Dispatch async to avoid stack overflow on large payloads. + dispatch_async(self.queue, ^{ + self.sendChunkCallback(newOffset); + }); + } else { + GNCLoggerInfo(@"Finished sending payload"); + self.sendChunkCallback = nil; + callCompletion(nil); + } + } + }]; }; self.sendChunkCallback(0); } - (void)disconnect { if (!_connected) { - GTMLoggerInfo(@"Socket already disconnected, socket: %@, delegate %@, owner %@", self, + GNCLoggerInfo(@"Socket already disconnected, socket: %@, delegate %@, owner %@", self, _delegate, _owner); return; } - GTMLoggerInfo(@"Disconnect"); + GNCLoggerInfo(@"Disconnect"); [_owner disconnectSocket:self]; } @@ -174,12 +181,12 @@ typedef void (^GNSIncomingChunkReceivedBlock)(NSData *incomingData); - (void)incrementReceivePacketCounter { _receivePacketCounter = (_receivePacketCounter + 1) % kGNSMaxPacketCounterValue; - GTMLoggerDebug(@"New receive packet counter %d", _receivePacketCounter); + GNCLoggerDebug(@"New receive packet counter %d", _receivePacketCounter); } - (void)incrementSendPacketCounter { _sendPacketCounter = (_sendPacketCounter + 1) % kGNSMaxPacketCounterValue; - GTMLoggerDebug(@"New send packet counter %d", _sendPacketCounter); + GNCLoggerDebug(@"New send packet counter %d", _sendPacketCounter); } - (void)didConnect { @@ -196,19 +203,19 @@ typedef void (^GNSIncomingChunkReceivedBlock)(NSData *incomingData); - (void)didReceiveIncomingWeaveDataPacket:(GNSWeaveDataPacket *)dataPacket { if (!_connected) { - GTMLoggerError(@"Cannot receive incoming data packet while not being connected"); + GNCLoggerError(@"Cannot receive incoming data packet while not being connected"); return; } if (dataPacket.isFirstPacket) { NSAssert(!_incomingBuffer, @"There should not be a receive operation in progress."); _incomingBuffer = [NSMutableData data]; } - GTMLoggerInfo(@"Received chunk with size %lu", (unsigned long)dataPacket.data.length); + GNCLoggerInfo(@"Received chunk with size %lu", (unsigned long)dataPacket.data.length); [_incomingBuffer appendData:dataPacket.data]; if (dataPacket.isLastPacket) { NSData *incomingData = _incomingBuffer; _incomingBuffer = nil; - GTMLoggerInfo(@"Finished receiving payload with size %lu", (unsigned long)incomingData.length); + GNCLoggerInfo(@"Finished receiving payload with size %lu", (unsigned long)incomingData.length); [self.delegate socket:self didReceiveData:incomingData]; } } diff --git a/internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Shared/GNSWeavePacket.h b/internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Shared/GNSWeavePacket.h index 9bd65826..8ac88c1a 100644 --- a/internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Shared/GNSWeavePacket.h +++ b/internal/platform/implementation/apple/Mediums/Ble/Sockets/Source/Shared/GNSWeavePacket.h @@ -47,21 +47,21 @@ typedef NS_ENUM(UInt8, GNSWeaveControlCommand) { * - (void)didReceivedData:(NSData *)data { * GNSWeavePacket *packet = [GNSWeavePacket parseData:data error:nil]; * if ([packet visitWithHandler:self context:nil]) { - * GTMLoggerInfo(@"This class can handle this packet."); + * GNCLoggerInfo(@"This class can handle this packet."); * } else { - * GTMLoggerInfo(@"Unexpected packet received."); + * GNCLoggerInfo(@"Unexpected packet received."); * } * } * * - (void)handleConnectionRequestPacket:(GNSWeaveConnectionRequestPacket *)packet * context:(nullable id)context { - * GTMLoggerInfo(@"Connection request packet received."); + * GNCLoggerInfo(@"Connection request packet received."); * ... * } * @end * **/ -@protocol GNSWeavePacketHandler +@protocol GNSWeavePacketHandler @optional - (void)handleConnectionRequestPacket:(GNSWeaveConnectionRequestPacket *)packet diff --git a/internal/platform/implementation/apple/Mediums/Ble/Sockets/Tests/Peripheral/GNSPeripheralServiceManagerTest.m b/internal/platform/implementation/apple/Mediums/Ble/Sockets/Tests/Peripheral/GNSPeripheralServiceManagerTest.m index 295ad4c2..7bf6f490 100644 --- a/internal/platform/implementation/apple/Mediums/Ble/Sockets/Tests/Peripheral/GNSPeripheralServiceManagerTest.m +++ b/internal/platform/implementation/apple/Mediums/Ble/Sockets/Tests/Peripheral/GNSPeripheralServiceManagerTest.m @@ -14,12 +14,12 @@ #import +#import "internal/platform/implementation/apple/Log/GNCLogger.h" #import "internal/platform/implementation/apple/Mediums/ble/Sockets/Source/Peripheral/GNSPeripheralManager+Private.h" #import "internal/platform/implementation/apple/Mediums/ble/Sockets/Source/Peripheral/GNSPeripheralServiceManager+Private.h" #import "internal/platform/implementation/apple/Mediums/ble/Sockets/Source/Shared/GNSSocket+Private.h" #import "internal/platform/implementation/apple/Mediums/ble/Sockets/Source/Shared/GNSUtils.h" #import "internal/platform/implementation/apple/Mediums/ble/Sockets/Source/Shared/GNSWeavePacket.h" -#import "GoogleToolboxForMac/GTMLogger.h" #import "third_party/objective_c/ocmock/v3/Source/OCMock/OCMock.h" @interface GNSPeripheralServiceManagerTest : XCTestCase { @@ -518,7 +518,7 @@ XCTAssertNotNil(packet); XCTAssertTrue([packet isKindOfClass:[GNSWeaveDataPacket class]]); GNSWeaveDataPacket *dataPacket = (GNSWeaveDataPacket *)packet; - GTMLoggerInfo(@"packetCounter = %d", dataPacket.packetCounter); + GNCLoggerInfo(@"packetCounter = %d", dataPacket.packetCounter); XCTAssertEqual(dataPacket.packetCounter, sendPacketCounter); sendPacketCounter = (sendPacketCounter + 1) % kGNSMaxPacketCounterValue; if (i == 0) { diff --git a/internal/platform/implementation/apple/Mediums/GNCLeaks.m b/internal/platform/implementation/apple/Mediums/GNCLeaks.m index b7d2a692..9f53086d 100644 --- a/internal/platform/implementation/apple/Mediums/GNCLeaks.m +++ b/internal/platform/implementation/apple/Mediums/GNCLeaks.m @@ -13,13 +13,13 @@ // limitations under the License. #import "internal/platform/implementation/apple/Mediums/GNCLeaks.h" -#import "GoogleToolboxForMac/GTMLogger.h" +#import "internal/platform/implementation/apple/Log/GNCLogger.h" void GNCVerifyDealloc(id object, NSTimeInterval timeInterval) { #if DEBUG __weak id weakObj = object; NSCAssert(weakObj != nil, @"Pointer to %@ is already nil", weakObj); - GTMLoggerInfo(@"Verifying deallocation of %@", NSStringFromClass([weakObj class])); + GNCLoggerInfo(@"Verifying deallocation of %@", NSStringFromClass([weakObj class])); dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(timeInterval * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ NSCAssert(weakObj == nil, @"%@ not deallocated.", weakObj); diff --git a/internal/platform/implementation/apple/Mediums/Hotspot/GNCHotspotMedium.m b/internal/platform/implementation/apple/Mediums/Hotspot/GNCHotspotMedium.m index 2b232fe6..154c3211 100644 --- a/internal/platform/implementation/apple/Mediums/Hotspot/GNCHotspotMedium.m +++ b/internal/platform/implementation/apple/Mediums/Hotspot/GNCHotspotMedium.m @@ -22,10 +22,10 @@ #endif // TARGET_OS_IOS #import +#import "internal/platform/implementation/apple/Log/GNCLogger.h" #import "internal/platform/implementation/apple/Mediums/Hotspot/GNCHotspotSocket.h" #import "internal/platform/implementation/apple/Mediums/WiFiCommon/GNCIPv4Address.h" #import "internal/platform/implementation/apple/Mediums/WiFiCommon/GNCNWFrameworkError.h" -#import "GoogleToolboxForMac/GTMLogger.h" #if TARGET_OS_IOS // The maximum number of retries for connecting to the Hotspot. @@ -59,36 +59,36 @@ static const UInt8 kConnectionToHostTimeoutInSeconds = 10; if (error) { if ([error.domain isEqualToString:NEHotspotConfigurationErrorDomain] && error.code == NEHotspotConfigurationErrorAlreadyAssociated) { - GTMLoggerInfo(@"Already connected to %@", ssid); + GNCLoggerInfo(@"Already connected to %@", ssid); connected = YES; } else { - GTMLoggerError(@"Failed to connect: %@ (%@)", ssid, error.localizedDescription); + GNCLoggerError(@"Failed to connect: %@ (%@)", ssid, error.localizedDescription); } } else { - GTMLoggerInfo(@"Successfully connected to %@", ssid); + GNCLoggerInfo(@"Successfully connected to %@", ssid); connected = YES; } dispatch_semaphore_signal(semaphore_internal); }]; if (dispatch_semaphore_wait(semaphore_internal, timeout) != 0) { - GTMLoggerError(@"Connecting to %@ timeout in %d seconds", ssid, kConnectionTimeoutInSeconds); + GNCLoggerError(@"Connecting to %@ timeout in %d seconds", ssid, kConnectionTimeoutInSeconds); } if (connected) { - NSString * currentSSID = [self getCurrentWifiSSID]; + NSString *currentSSID = [self getCurrentWifiSSID]; if ([currentSSID isEqualToString:ssid]) { - GTMLoggerDebug(@"Connected to %@ successfully", ssid); + GNCLoggerDebug(@"Connected to %@ successfully", ssid); break; } else { - GTMLoggerError(@"Connected to wrong SSID: %@", currentSSID); + GNCLoggerError(@"Connected to wrong SSID: %@", currentSSID); connected = NO; } } else { - [[NEHotspotConfigurationManager sharedManager] removeConfigurationForSSID:ssid]; + [[NEHotspotConfigurationManager sharedManager] removeConfigurationForSSID:ssid]; } } return connected; #else - GTMLoggerError(@"Not implemented for macOS"); + GNCLoggerError(@"Not implemented for macOS"); return NO; #endif // TARGET_OS_IOS } @@ -97,7 +97,7 @@ static const UInt8 kConnectionToHostTimeoutInSeconds = 10; #if TARGET_OS_IOS [[NEHotspotConfigurationManager sharedManager] removeConfigurationForSSID:ssid]; #else - GTMLoggerError(@"Not implemented for macOS"); + GNCLoggerError(@"Not implemented for macOS"); #endif // TARGET_OS_IOS } @@ -111,7 +111,7 @@ static const UInt8 kConnectionToHostTimeoutInSeconds = 10; code:GNCNWFrameworkErrorUnknown userInfo:nil]; } - GTMLoggerError(@"Invalid host address"); + GNCLoggerError(@"Invalid host address"); return nil; } @@ -123,7 +123,7 @@ static const UInt8 kConnectionToHostTimeoutInSeconds = 10; - (GNCHotspotSocket *)connectToEndpoint:(nw_endpoint_t)endpoint includePeerToPeer:(BOOL)includePeerToPeer error:(NSError **)error { - GTMLoggerInfo(@"connectToEndpoint: %@ includePeerToPeer: %d", endpoint.debugDescription, + GNCLoggerInfo(@"connectToEndpoint: %@ includePeerToPeer: %d", endpoint.debugDescription, includePeerToPeer); dispatch_semaphore_t semaphore_internal = dispatch_semaphore_create(0); @@ -141,13 +141,13 @@ static const UInt8 kConnectionToHostTimeoutInSeconds = 10; nw_connection_set_state_changed_handler( connection, ^(nw_connection_state_t state, nw_error_t error) { - GTMLoggerDebug(@"connectToEndpoint state changed to: %d", state); + GNCLoggerDebug(@"connectToEndpoint state changed to: %d", state); // Ignore the preparing state and waiting state, because it is not a final state. if ((state != nw_connection_state_preparing) && (state != nw_connection_state_waiting)) { blockResult = state; if (error != nil) { - GTMLoggerError(@"connectToEndpoint Error: %@", error.debugDescription); + GNCLoggerError(@"connectToEndpoint Error: %@", error.debugDescription); blockError = (__bridge_transfer NSError *)nw_error_copy_cf_error(error); } dispatch_semaphore_signal(semaphore_internal); @@ -158,7 +158,7 @@ static const UInt8 kConnectionToHostTimeoutInSeconds = 10; dispatch_time_t timeout = dispatch_time(DISPATCH_TIME_NOW, kConnectionToHostTimeoutInSeconds * NSEC_PER_SEC); if (dispatch_semaphore_wait(semaphore_internal, timeout) != 0) { - GTMLoggerError(@"Connecting to %@ timeout in %d seconds", endpoint.debugDescription, + GNCLoggerError(@"Connecting to %@ timeout in %d seconds", endpoint.debugDescription, kConnectionToHostTimeoutInSeconds); nw_connection_set_state_changed_handler(connection, nil); // Prevent callback issues nw_connection_cancel(connection); @@ -180,7 +180,7 @@ static const UInt8 kConnectionToHostTimeoutInSeconds = 10; case nw_connection_state_preparing: case nw_connection_state_failed: case nw_connection_state_cancelled: - GTMLoggerError(@"connectToEndpoint failed with result: %d", blockResult); + GNCLoggerError(@"connectToEndpoint failed with result: %d", blockResult); return nil; case nw_connection_state_ready: return [[GNCHotspotSocket alloc] initWithConnection:connection]; @@ -192,7 +192,7 @@ static const UInt8 kConnectionToHostTimeoutInSeconds = 10; // Request permission CLLocationManager *locationManager = [[CLLocationManager alloc] init]; [locationManager requestWhenInUseAuthorization]; - GTMLoggerDebug(@"Request Location permission"); + GNCLoggerDebug(@"Request Location permission"); dispatch_semaphore_t semaphore_internal = dispatch_semaphore_create(0); __block NSString *networkSSID = nil; @@ -204,9 +204,9 @@ static const UInt8 kConnectionToHostTimeoutInSeconds = 10; fetchCurrentWithCompletionHandler:^(NEHotspotNetwork *_Nullable network) { if (network) { networkSSID = network.SSID; - GTMLoggerDebug(@"iOS 14+ Current Wi-Fi SSID: %@", networkSSID); + GNCLoggerDebug(@"iOS 14+ Current Wi-Fi SSID: %@", networkSSID); } else { - GTMLoggerError(@"Failed to get current Wifi SSID"); + GNCLoggerError(@"Failed to get current Wifi SSID"); } dispatch_semaphore_signal(semaphore_internal); }]; @@ -216,7 +216,7 @@ static const UInt8 kConnectionToHostTimeoutInSeconds = 10; id info = CFBridgingRelease(CNCopyCurrentNetworkInfo((__bridge CFStringRef)(interface))); networkSSID = [info valueForKey:@"SSID"]; - GTMLoggerDebug(@"Current Wi-Fi SSID: %@", networkSSID); + GNCLoggerDebug(@"Current Wi-Fi SSID: %@", networkSSID); } dispatch_semaphore_signal(semaphore_internal); } @@ -224,16 +224,15 @@ static const UInt8 kConnectionToHostTimeoutInSeconds = 10; dispatch_time_t timeout = dispatch_time(DISPATCH_TIME_NOW, kConnectionToHostTimeoutInSeconds * NSEC_PER_SEC); if (dispatch_semaphore_wait(semaphore_internal, timeout) != 0) { - GTMLoggerError(@"Getting current Wifi SSID timeout in %d seconds", + GNCLoggerError(@"Getting current Wifi SSID timeout in %d seconds", kConnectionToHostTimeoutInSeconds); } return networkSSID; #else - GTMLoggerError(@"Not implemented for macOS"); + GNCLoggerError(@"Not implemented for macOS"); return nil; #endif // TARGET_OS_IOS } - @end diff --git a/internal/platform/implementation/apple/Mediums/Hotspot/GNCHotspotSocket.m b/internal/platform/implementation/apple/Mediums/Hotspot/GNCHotspotSocket.m index 5e55d544..8c513069 100644 --- a/internal/platform/implementation/apple/Mediums/Hotspot/GNCHotspotSocket.m +++ b/internal/platform/implementation/apple/Mediums/Hotspot/GNCHotspotSocket.m @@ -17,7 +17,7 @@ #import #import -#import "GoogleToolboxForMac/GTMLogger.h" +#import "internal/platform/implementation/apple/Log/GNCLogger.h" @interface GNCHotspotSocket () diff --git a/internal/platform/implementation/apple/Mediums/WiFiCommon/GNCNWFramework.m b/internal/platform/implementation/apple/Mediums/WiFiCommon/GNCNWFramework.m index 766f02a8..4501d237 100644 --- a/internal/platform/implementation/apple/Mediums/WiFiCommon/GNCNWFramework.m +++ b/internal/platform/implementation/apple/Mediums/WiFiCommon/GNCNWFramework.m @@ -17,13 +17,13 @@ #import #import +#import "internal/platform/implementation/apple/Log/GNCLogger.h" #import "internal/platform/implementation/apple/Mediums/WiFiCommon/GNCIPv4Address.h" #import "internal/platform/implementation/apple/Mediums/WiFiCommon/GNCNWFrameworkError.h" #import "internal/platform/implementation/apple/Mediums/WiFiCommon/GNCNWFrameworkServerSocket+Internal.h" #import "internal/platform/implementation/apple/Mediums/WiFiCommon/GNCNWFrameworkServerSocket.h" #import "internal/platform/implementation/apple/Mediums/WiFiCommon/GNCNWFrameworkSocket.h" #import "internal/platform/implementation/apple/Mediums/WiFiCommon/GNCNWParameters.h" -#import "GoogleToolboxForMac/GTMLogger.h" NS_ASSUME_NONNULL_BEGIN @@ -125,7 +125,7 @@ static GNCNWFramework *gInstance = nil; - (nullable GNCNWFrameworkServerSocket *)listenForServiceOnPort:(NSInteger)port includePeerToPeer:(BOOL)includePeerToPeer error:(NSError **)error { - GTMLoggerInfo(@"[GNCNWFramework] Listen on port: %ld with includePeerToPeer: %@.", (long)port, + GNCLoggerInfo(@"[GNCNWFramework] Listen on port: %ld with includePeerToPeer: %@.", (long)port, (includePeerToPeer ? @"true" : @"false")); GNCNWFrameworkServerSocket *serverSocket = [[GNCNWFrameworkServerSocket alloc] initWithPort:port]; _includePeerToPeer = includePeerToPeer; @@ -143,7 +143,7 @@ static GNCNWFramework *gInstance = nil; includePeerToPeer:(BOOL)includePeerToPeer error: (NSError **_Nullable)error { - GTMLoggerInfo( + GNCLoggerInfo( @"[GNCNWFramework] Listen on port: %ld with includePeerToPeer: %@, and PSKIdentity: %@.", (long)port, (includePeerToPeer ? @"true" : @"false"), PSKIdentity); GNCNWFrameworkServerSocket *serverSocket = [[GNCNWFrameworkServerSocket alloc] initWithPort:port]; @@ -194,7 +194,7 @@ static GNCNWFramework *gInstance = nil; _includePeerToPeer = includePeerToPeer; nw_parameters_t parameters = GNCBuildNonTLSParameters(/*includePeerToPeer=*/_includePeerToPeer); if (!parameters) { - GTMLoggerError(@"[GNCNWFramework] Failed to create NW parameters."); + GNCLoggerError(@"[GNCNWFramework] Failed to create NW parameters."); return NO; } nw_browse_descriptor_t descriptor = @@ -218,7 +218,7 @@ static GNCNWFramework *gInstance = nil; // advertisement, so we ignore it. BOOL hasLoopback = GNCHasLoopbackInterface(new_result); if (hasLoopback) { - GTMLoggerInfo(@"Ignoring a service discovered with loopback interface."); + GNCLoggerInfo(@"Ignoring a service discovered with loopback interface."); break; } nw_endpoint_t endpoint = nw_browse_result_copy_endpoint(new_result); @@ -233,7 +233,7 @@ static GNCNWFramework *gInstance = nil; BOOL oldHasLoopback = GNCHasLoopbackInterface(old_result); BOOL newHasLoopback = GNCHasLoopbackInterface(new_result); if (oldHasLoopback || newHasLoopback) { - GTMLoggerInfo(@"Ignoring a service change with loopback interface."); + GNCLoggerInfo(@"Ignoring a service change with loopback interface."); break; } nw_endpoint_t old_endpoint = nw_browse_result_copy_endpoint(old_result); @@ -254,7 +254,7 @@ static GNCNWFramework *gInstance = nil; // we ignore it. BOOL hasLoopback = GNCHasLoopbackInterface(old_result); if (hasLoopback) { - GTMLoggerInfo(@"Ignoring a service lost with loopback interface."); + GNCLoggerInfo(@"Ignoring a service lost with loopback interface."); break; } nw_endpoint_t endpoint = nw_browse_result_copy_endpoint(old_result); @@ -324,7 +324,7 @@ static GNCNWFramework *gInstance = nil; - (nullable GNCNWFrameworkSocket *)connectToServiceName:(NSString *)serviceName serviceType:(NSString *)serviceType error:(NSError **)error { - GTMLoggerInfo(@"[GNCNWFramework] Connect to service {serviceName:%@, serviceType:%@, " + GNCLoggerInfo(@"[GNCNWFramework] Connect to service {serviceName:%@, serviceType:%@, " @"includePeerToPeer:%@}.", serviceName, serviceType, (_includePeerToPeer ? @"true" : @"false")); nw_endpoint_t endpoint = nw_endpoint_create_bonjour_service([serviceName UTF8String], @@ -341,7 +341,7 @@ static GNCNWFramework *gInstance = nil; PSKIdentity:(NSData *)PSKIdentity PSKSharedSecret:(NSData *)PSKSharedSecret error:(NSError **_Nullable)error { - GTMLoggerInfo(@"[GNCNWFramework] Connect to service {serviceName:%@, serviceType:%@, " + GNCLoggerInfo(@"[GNCNWFramework] Connect to service {serviceName:%@, serviceType:%@, " @"includePeerToPeer:%@}.", serviceName, serviceType, (_includePeerToPeer ? @"true" : @"false")); nw_endpoint_t endpoint = nw_endpoint_create_bonjour_service([serviceName UTF8String], @@ -357,7 +357,7 @@ static GNCNWFramework *gInstance = nil; port:(NSInteger)port includePeerToPeer:(BOOL)includePeerToPeer error:(NSError **)error { - GTMLoggerInfo(@"[GNCNWFramework] Connect to host {host:%s, port:%ld}.", + GNCLoggerInfo(@"[GNCNWFramework] Connect to host {host:%s, port:%ld}.", host.dottedRepresentation.UTF8String, (long)port); nw_endpoint_t endpoint = nw_endpoint_create_host(host.dottedRepresentation.UTF8String, @(port).stringValue.UTF8String); @@ -388,7 +388,7 @@ static GNCNWFramework *gInstance = nil; : GNCBuildTLSParameters(/*PSK=*/PSKSharedSecret, /*identity=*/PSKIdentity, /*includePeerToPeer=*/_includePeerToPeer); if (!parameters) { - GTMLoggerError(@"[GNCNWFramework] Failed to create NW parameters."); + GNCLoggerError(@"[GNCNWFramework] Failed to create NW parameters."); return nil; } nw_connection_t connection = nw_connection_create(endpoint, parameters); @@ -427,7 +427,7 @@ static GNCNWFramework *gInstance = nil; *error = blockError; } - GTMLoggerInfo(@"[GNCNWFramework] Connect to endpoint result %@", @(blockResult)); + GNCLoggerInfo(@"[GNCNWFramework] Connect to endpoint result %@", @(blockResult)); switch (blockResult) { case nw_connection_state_invalid: case nw_connection_state_waiting: diff --git a/internal/platform/implementation/apple/Mediums/WiFiCommon/GNCNWFrameworkServerSocket.m b/internal/platform/implementation/apple/Mediums/WiFiCommon/GNCNWFrameworkServerSocket.m index b55256f5..5963c70d 100644 --- a/internal/platform/implementation/apple/Mediums/WiFiCommon/GNCNWFrameworkServerSocket.m +++ b/internal/platform/implementation/apple/Mediums/WiFiCommon/GNCNWFrameworkServerSocket.m @@ -22,12 +22,12 @@ #include #include +#import "internal/platform/implementation/apple/Log/GNCLogger.h" #import "internal/platform/implementation/apple/Mediums/WiFiCommon/GNCIPv4Address.h" #import "internal/platform/implementation/apple/Mediums/WiFiCommon/GNCNWFrameworkError.h" #import "internal/platform/implementation/apple/Mediums/WiFiCommon/GNCNWFrameworkServerSocket+Internal.h" #import "internal/platform/implementation/apple/Mediums/WiFiCommon/GNCNWFrameworkSocket.h" #import "internal/platform/implementation/apple/Mediums/WiFiCommon/GNCNWParameters.h" -#import "GoogleToolboxForMac/GTMLogger.h" NS_ASSUME_NONNULL_BEGIN @@ -140,7 +140,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)startAdvertisingServiceName:(NSString *)serviceName serviceType:(NSString *)serviceType txtRecords:(NSDictionary *)txtRecords { - GTMLoggerInfo(@"[GNCNWFrameworkServerSocket] Start advertising {serviceName:%@, " + GNCLoggerInfo(@"[GNCNWFrameworkServerSocket] Start advertising {serviceName:%@, " @"serviceType: %@}", serviceName, serviceType); @@ -152,11 +152,11 @@ NS_ASSUME_NONNULL_BEGIN NSData *encodedRecord = [recordValue dataUsingEncoding:NSUTF8StringEncoding]; if (!nw_txt_record_set_key(txtRecord, [key UTF8String], encodedRecord.bytes, encodedRecord.length)) { - GTMLoggerError(@"[GNCNWFrameworkServerSocket] Failed to set text record key: %@, value: %@", + GNCLoggerError(@"[GNCNWFrameworkServerSocket] Failed to set text record key: %@, value: %@", key, recordValue); continue; } - GTMLoggerDebug(@"[GNCNWFrameworkServerSocket] Text record {key: " + GNCLoggerDebug(@"[GNCNWFrameworkServerSocket] Text record {key: " @"%@, value: %@}", key, recordValue); } @@ -216,7 +216,7 @@ NS_ASSUME_NONNULL_BEGIN : GNCBuildTLSParameters(/*PSK=*/PSKSharedSecret, /*identity=*/PSKIdentify, /*includePeerToPeer=*/includePeerToPeer); if (!parameters) { - GTMLoggerError(@"[GNCNWFrameworkServerSocket] Failed to create NW parameters."); + GNCLoggerError(@"[GNCNWFrameworkServerSocket] Failed to create NW parameters."); return NO; } @@ -305,12 +305,12 @@ NS_ASSUME_NONNULL_BEGIN case nw_listener_state_waiting: case nw_listener_state_failed: case nw_listener_state_cancelled: - GTMLoggerError(@"[GNCNWFrameworkServerSocket] Listen state: %u", _listenerState); + GNCLoggerError(@"[GNCNWFrameworkServerSocket] Listen state: %u", _listenerState); [self close]; return NO; case nw_listener_state_ready: _port = nw_listener_get_port(_listener); - GTMLoggerInfo(@"[GNCNWFrameworkServerSocket] Listen on port: %ld", (long)_port); + GNCLoggerInfo(@"[GNCNWFrameworkServerSocket] Listen on port: %ld", (long)_port); return YES; } } diff --git a/internal/platform/implementation/apple/Mediums/WiFiCommon/GNCNWFrameworkSocket.m b/internal/platform/implementation/apple/Mediums/WiFiCommon/GNCNWFrameworkSocket.m index 55e7b925..84c869d7 100644 --- a/internal/platform/implementation/apple/Mediums/WiFiCommon/GNCNWFrameworkSocket.m +++ b/internal/platform/implementation/apple/Mediums/WiFiCommon/GNCNWFrameworkSocket.m @@ -17,7 +17,7 @@ #import #import -#import "GoogleToolboxForMac/GTMLogger.h" +#import "internal/platform/implementation/apple/Log/GNCLogger.h" @interface GNCNWFrameworkSocket () diff --git a/internal/platform/implementation/apple/Mediums/WiFiCommon/GNCNWParameters.m b/internal/platform/implementation/apple/Mediums/WiFiCommon/GNCNWParameters.m index b27fa8f5..8e7dae73 100644 --- a/internal/platform/implementation/apple/Mediums/WiFiCommon/GNCNWParameters.m +++ b/internal/platform/implementation/apple/Mediums/WiFiCommon/GNCNWParameters.m @@ -18,18 +18,18 @@ #import #import -#import "GoogleToolboxForMac/GTMLogger.h" +#import "internal/platform/implementation/apple/Log/GNCLogger.h" NS_ASSUME_NONNULL_BEGIN BOOL GNCConfigureTLSOptions(sec_protocol_options_t options, NSData *PSK, NSData *identity) { if (!options) { - GTMLoggerError(@"[GNCNWParameters] Invalid parameter of options."); + GNCLoggerError(@"[GNCNWParameters] Invalid parameter of options."); return NO; } if (PSK.length == 0 || identity.length == 0) { - GTMLoggerError(@"[GNCNWParameters] Invalid parameter of psk or identity."); + GNCLoggerError(@"[GNCNWParameters] Invalid parameter of psk or identity."); return NO; } @@ -49,7 +49,7 @@ BOOL GNCConfigureTLSOptions(sec_protocol_options_t options, NSData *PSK, NSData [identity bytes], [identity length], nil, DISPATCH_DATA_DESTRUCTOR_DEFAULT); if (!psk_secret_dispatch_data || !psk_identity_dispatch_data) { - GTMLoggerError(@"[GNCNWParameters] Failed to create dispatch_data_t for PSK."); + GNCLoggerError(@"[GNCNWParameters] Failed to create dispatch_data_t for PSK."); return NO; } @@ -57,7 +57,7 @@ BOOL GNCConfigureTLSOptions(sec_protocol_options_t options, NSData *PSK, NSData sec_protocol_options_add_pre_shared_key(options, psk_secret_dispatch_data, psk_identity_dispatch_data); - GTMLoggerInfo(@"[GNCNWParameters] Successfully configured TLS options."); + GNCLoggerInfo(@"[GNCNWParameters] Successfully configured TLS options."); return YES; } @@ -81,7 +81,7 @@ nw_parameters_t _Nullable GNCBuildTLSParameters(NSData *PSK, NSData *identity, }, /*tcp*/ NW_PARAMETERS_DEFAULT_CONFIGURATION); if (!TLSWasConfigured) { - GTMLoggerError(@"[GNCNWParameters] Failed to configure TLS options."); + GNCLoggerError(@"[GNCNWParameters] Failed to configure TLS options."); return nil; } diff --git a/internal/platform/implementation/apple/awdl.mm b/internal/platform/implementation/apple/awdl.mm index a736485b..f4c90863 100644 --- a/internal/platform/implementation/apple/awdl.mm +++ b/internal/platform/implementation/apple/awdl.mm @@ -19,12 +19,12 @@ #include #include +#import "internal/platform/implementation/apple/Log/GNCLogger.h" #import "internal/platform/implementation/apple/Mediums/WiFiCommon/GNCIPv4Address.h" #import "internal/platform/implementation/apple/Mediums/WiFiCommon/GNCNWFramework.h" #import "internal/platform/implementation/apple/Mediums/WiFiCommon/GNCNWFrameworkServerSocket.h" #import "internal/platform/implementation/apple/Mediums/WiFiCommon/GNCNWFrameworkSocket.h" #import "internal/platform/implementation/apple/network_utils.h" -#import "GoogleToolboxForMac/GTMLogger.h" namespace nearby { namespace apple { @@ -37,7 +37,7 @@ ExceptionOr AwdlInputStream::Read(std::int64_t size) { NSError* error = nil; NSData* data = [socket_ readMaxLength:size error:&error]; if (data == nil) { - GTMLoggerError(@"Error reading socket: %@", error); + GNCLoggerError(@"Error reading socket: %@", error); return {Exception::kIo}; } return ExceptionOr{ByteArray((const char*)data.bytes, data.length)}; @@ -57,7 +57,7 @@ Exception AwdlOutputStream::Write(const ByteArray& data) { NSError* error = nil; BOOL result = [socket_ write:[NSData dataWithBytes:data.data() length:data.size()] error:&error]; if (!result) { - GTMLoggerError(@"Error writing socket: %@", error); + GNCLoggerError(@"Error writing socket: %@", error); return {Exception::kIo}; } return {Exception::kSuccess}; @@ -110,7 +110,7 @@ std::unique_ptr AwdlServerSocket::Accept() { return std::make_unique(socket); } if (error != nil) { - GTMLoggerError(@"Error accepting socket: %@", error); + GNCLoggerError(@"Error accepting socket: %@", error); } return nil; } diff --git a/internal/platform/implementation/apple/ble_gatt_client.mm b/internal/platform/implementation/apple/ble_gatt_client.mm index b182d072..41b29f5d 100644 --- a/internal/platform/implementation/apple/ble_gatt_client.mm +++ b/internal/platform/implementation/apple/ble_gatt_client.mm @@ -24,9 +24,9 @@ #include "internal/platform/implementation/ble_v2.h" #import "internal/platform/implementation/apple/Flags/GNCFeatureFlags.h" +#import "internal/platform/implementation/apple/Log/GNCLogger.h" #import "internal/platform/implementation/apple/Mediums/BLEv2/GNCBLEGATTClient.h" #import "internal/platform/implementation/apple/ble_utils.h" -#import "GoogleToolboxForMac/GTMLogger.h" namespace nearby { namespace apple { @@ -49,7 +49,7 @@ bool GattClient::DiscoverServiceAndCharacteristics(const Uuid &service_uuid, completionHandler:^(NSError *error) { [condition lock]; if (error != nil) { - GTMLoggerError(@"Error discovering characteristics: %@", error); + GNCLoggerError(@"Error discovering characteristics: %@", error); } blockError = error; [condition signal]; @@ -74,7 +74,7 @@ std::optional GattClient::GetCharacteristic( completionHandler:^(GNCBLEGATTCharacteristic *characteristic, NSError *error) { [condition lock]; if (error != nil) { - GTMLoggerError(@"Error retrieving characteristic: %@", error); + GNCLoggerError(@"Error retrieving characteristic: %@", error); } blockCharacteristic = characteristic; blockError = error; @@ -99,7 +99,7 @@ std::optional GattClient::ReadCharacteristic( completionHandler:^(NSData *value, NSError *error) { [condition lock]; if (error != nil) { - GTMLoggerError(@"Error reading characteristic: %@", error); + GNCLoggerError(@"Error reading characteristic: %@", error); } blockValue = value; blockError = error; diff --git a/internal/platform/implementation/apple/ble_gatt_server.mm b/internal/platform/implementation/apple/ble_gatt_server.mm index 7032735c..cd19bdd6 100644 --- a/internal/platform/implementation/apple/ble_gatt_server.mm +++ b/internal/platform/implementation/apple/ble_gatt_server.mm @@ -19,10 +19,10 @@ #include "internal/platform/implementation/ble_v2.h" +#import "internal/platform/implementation/apple/Log/GNCLogger.h" #import "internal/platform/implementation/apple/Mediums/BLEv2/GNCBLEGATTServer.h" #import "internal/platform/implementation/apple/ble_utils.h" #import "internal/platform/implementation/apple/utils.h" -#import "GoogleToolboxForMac/GTMLogger.h" namespace nearby { namespace apple { @@ -49,7 +49,7 @@ std::optional GattServer::CreateCharacteristic( NSError *error) { [condition lock]; if (error != nil) { - GTMLoggerError(@"Error creating characteristic: %@", error); + GNCLoggerError(@"Error creating characteristic: %@", error); } blockCharacteristic = characteristic; [condition signal]; @@ -73,7 +73,7 @@ bool GattServer::UpdateCharacteristic(const api::ble_v2::GattCharacteristic &cha completionHandler:^(NSError *error) { [condition lock]; if (error != nil) { - GTMLoggerError(@"Error updating characteristic: %@", error); + GNCLoggerError(@"Error updating characteristic: %@", error); } blockError = error; [condition signal]; @@ -91,9 +91,7 @@ absl::Status GattServer::NotifyCharacteristicChanged( return absl::UnimplementedError(""); } -void GattServer::Stop() { - [gatt_server_ stop]; -} +void GattServer::Stop() { [gatt_server_ stop]; } } // namespace apple } // namespace nearby diff --git a/internal/platform/implementation/apple/ble_l2cap_server_socket.mm b/internal/platform/implementation/apple/ble_l2cap_server_socket.mm index 66c8a096..ebecee17 100644 --- a/internal/platform/implementation/apple/ble_l2cap_server_socket.mm +++ b/internal/platform/implementation/apple/ble_l2cap_server_socket.mm @@ -19,8 +19,8 @@ #include #include +#import "internal/platform/implementation/apple/Log/GNCLogger.h" #import "internal/platform/implementation/apple/Mediums/BLEv2/GNCBLEL2CAPServer.h" -#import "GoogleToolboxForMac/GTMLogger.h" namespace nearby { namespace apple { diff --git a/internal/platform/implementation/apple/ble_l2cap_socket.mm b/internal/platform/implementation/apple/ble_l2cap_socket.mm index 3c540722..65e47038 100644 --- a/internal/platform/implementation/apple/ble_l2cap_socket.mm +++ b/internal/platform/implementation/apple/ble_l2cap_socket.mm @@ -14,10 +14,10 @@ #import "internal/platform/implementation/apple/ble_l2cap_socket.h" -#include "internal/platform/implementation/ble_v2.h" +#import "internal/platform/implementation/apple/Log/GNCLogger.h" #import "internal/platform/implementation/apple/Mediums/BLEv2/GNCBLEL2CAPConnection.h" #import "internal/platform/implementation/apple/utils.h" -#import "GoogleToolboxForMac/GTMLogger.h" +#include "internal/platform/implementation/ble_v2.h" namespace nearby { namespace apple { @@ -151,7 +151,7 @@ Exception BleL2capOutputStream::Flush() { } Exception BleL2capOutputStream::Close() { - GTMLoggerInfo(@"[NEARBY] BleL2capOutputStream Closing"); + GNCLoggerInfo(@"[NEARBY] BleL2capOutputStream Closing"); // Unblock pending write operation. [condition_ lock]; connection_ = nil; @@ -188,7 +188,7 @@ Exception BleL2capSocket::Close() { } void BleL2capSocket::DoClose() { - GTMLoggerInfo(@"[NEARBY] BleL2capSocket DoClose"); + GNCLoggerInfo(@"[NEARBY] BleL2capSocket DoClose"); if (!closed_) { input_stream_->Close(); output_stream_->Close(); diff --git a/internal/platform/implementation/apple/ble_medium.mm b/internal/platform/implementation/apple/ble_medium.mm index 912c3c4b..eae6a3e6 100644 --- a/internal/platform/implementation/apple/ble_medium.mm +++ b/internal/platform/implementation/apple/ble_medium.mm @@ -36,6 +36,7 @@ #import "internal/platform/implementation/apple/Mediums/BLEv2/GNCBLEMedium.h" #import "internal/platform/implementation/apple/Mediums/BLEv2/GNCPeripheral.h" +#import "internal/platform/implementation/apple/Log/GNCLogger.h" // TODO(b/293336684): Old Weave imports that need to be deleted once shared Weave is complete. #import "internal/platform/implementation/apple/Mediums/Ble/GNCMBleConnection.h" #import "internal/platform/implementation/apple/Mediums/Ble/GNCMBleUtils.h" @@ -51,7 +52,6 @@ #import "internal/platform/implementation/apple/ble_socket.h" #import "internal/platform/implementation/apple/bluetooth_adapter_v2.h" #import "internal/platform/implementation/apple/utils.h" -#import "GoogleToolboxForMac/GTMLogger.h" static NSString *const kWeaveServiceUUID = @"FEF3"; static const UInt8 kRequestConnectionTimeoutInSeconds = 12; @@ -117,7 +117,7 @@ bool BleMedium::StartAdvertising(const api::ble_v2::BleAdvertisementData &advert [medium_ startAdvertisingData:serviceData completionHandler:^(NSError *error) { if (error != nil) { - GTMLoggerError(@"Failed to start advertising: %@", error); + GNCLoggerError(@"Failed to start advertising: %@", error); } blockError = error; dispatch_semaphore_signal(semaphore); @@ -133,7 +133,7 @@ bool BleMedium::StopAdvertising() { __block NSError *blockError = nil; [medium_ stopAdvertisingWithCompletionHandler:^(NSError *error) { if (error != nil) { - GTMLoggerError(@"Failed to stop advertising: %@", error); + GNCLoggerError(@"Failed to stop advertising: %@", error); } blockError = error; dispatch_semaphore_signal(semaphore); @@ -168,7 +168,7 @@ void BleMedium::HandleAdvertisementFound(id peripheral, #if DEBUG for (NSData *service_data in serviceData.allValues) { - GTMLoggerDebug(@"Reporting the advertisement packet to upper layer for unique_id: %llu, %@, " + GNCLoggerDebug(@"Reporting the advertisement packet to upper layer for unique_id: %llu, %@, " @"advertisement_data: %@.", unique_id, peripheral, ConvertDataToHexString(service_data)); } @@ -238,7 +238,7 @@ bool BleMedium::StartScanning(const Uuid &service_uuid, api::ble_v2::TxPowerLeve } completionHandler:^(NSError *error) { if (error != nil) { - GTMLoggerError(@"Failed to start scanning: %@", error); + GNCLoggerError(@"Failed to start scanning: %@", error); } blockError = error; dispatch_semaphore_signal(semaphore); @@ -251,7 +251,7 @@ bool BleMedium::StartMultipleServicesScanning(const std::vector &service_u api::ble_v2::TxPowerLevel tx_power_level, api::ble_v2::BleMedium::ScanCallback callback) { if (service_uuids.empty()) { - GTMLoggerError(@"No service UUIDs provided"); + GNCLoggerError(@"No service UUIDs provided"); return false; } @@ -280,7 +280,7 @@ bool BleMedium::StartMultipleServicesScanning(const std::vector &service_u } completionHandler:^(NSError *error) { if (error != nil) { - GTMLoggerError(@"Failed to start scanning for multiple services: %@", error); + GNCLoggerError(@"Failed to start scanning for multiple services: %@", error); blockError = error; } dispatch_semaphore_signal(semaphore); @@ -296,7 +296,7 @@ bool BleMedium::StopScanning() { __block NSError *blockError = nil; [medium_ stopScanningWithCompletionHandler:^(NSError *error) { if (error != nil) { - GTMLoggerError(@"Failed to stop scanning: %@", error); + GNCLoggerError(@"Failed to stop scanning: %@", error); } blockError = error; dispatch_semaphore_signal(semaphore); @@ -312,7 +312,7 @@ bool BleMedium::ResumeMediumScanning() { __block NSError *blockError = nil; [medium_ resumeMediumScanning:^(NSError *error) { if (error != nil) { - GTMLoggerError(@"Failed to start scanning for multiple services: %@", error); + GNCLoggerError(@"Failed to start scanning for multiple services: %@", error); blockError = error; } dispatch_semaphore_signal(semaphore); @@ -328,7 +328,7 @@ std::unique_ptr BleMedium::StartGattServer( __block GNCBLEGATTServer *blockServer = nil; [medium_ startGATTServerWithCompletionHandler:^(GNCBLEGATTServer *server, NSError *error) { if (error != nil) { - GTMLoggerError(@"Error starting GATT server: %@", error); + GNCLoggerError(@"Error starting GATT server: %@", error); } blockServer = server; dispatch_semaphore_signal(semaphore); @@ -345,7 +345,7 @@ std::unique_ptr BleMedium::ConnectToGattServer( api::ble_v2::ClientGattConnectionCallback callback) { id peripheral = peripherals_.Get(peripheral_id); if (!peripheral) { - GTMLoggerError(@"[NEARBY] Failed to connect to Gatt server: peripheral is not found."); + GNCLoggerError(@"[NEARBY] Failed to connect to Gatt server: peripheral is not found."); return nullptr; } @@ -359,7 +359,7 @@ std::unique_ptr BleMedium::ConnectToGattServer( } completionHandler:^(GNCBLEGATTClient *client, NSError *error) { if (error != nil) { - GTMLoggerError(@"Error connecting to GATT server: %@", error); + GNCLoggerError(@"Error connecting to GATT server: %@", error); } blockClient = client; dispatch_semaphore_signal(semaphore); @@ -405,7 +405,7 @@ std::unique_ptr BleMedium::OpenServerSocket( [socketPeripheralManager_ addPeripheralServiceManager:socketPeripheralServiceManager_ bleServiceAddedCompletion:^(NSError *error) { if (error != nil) { - GTMLoggerError(@"Failed to add Weave service: %@", error); + GNCLoggerError(@"Failed to add Weave service: %@", error); } blockError = error; dispatch_semaphore_signal(semaphore); @@ -450,7 +450,7 @@ std::unique_ptr BleMedium::OpenL2capServerSoc channelOpenedCompletionHandler:^(GNCBLEL2CAPStream *_Nullable stream, NSError *_Nullable error) { if (error != nil) { - GTMLoggerError(@"Error opening L2CAP channel in L2CAP server: %@", error); + GNCLoggerError(@"Error opening L2CAP channel in L2CAP server: %@", error); return; } GNCBLEL2CAPConnection *connection = @@ -481,7 +481,7 @@ std::unique_ptr BleMedium::Connect( api::ble_v2::BlePeripheral::UniqueId peripheral_id, CancellationFlag *cancellation_flag) { id peripheral = peripherals_.Get(peripheral_id); if (!peripheral) { - GTMLoggerError(@"[NEARBY] Failed to connect to Gatt server: peripheral is not found."); + GNCLoggerError(@"[NEARBY] Failed to connect to Gatt server: peripheral is not found."); return nullptr; } @@ -532,7 +532,7 @@ std::unique_ptr BleMedium::ConnectOverL2cap( api::ble_v2::BlePeripheral::UniqueId peripheral_id, CancellationFlag *cancellation_flag) { id peripheral = peripherals_.Get(peripheral_id); if (!peripheral) { - GTMLoggerError(@"[NEARBY] Failed to connect over L2CAP: peripheral is not found."); + GNCLoggerError(@"[NEARBY] Failed to connect over L2CAP: peripheral is not found."); return nullptr; } dispatch_semaphore_t semaphore = dispatch_semaphore_create(0); @@ -561,18 +561,18 @@ std::unique_ptr BleMedium::ConnectOverL2cap( if (result) { socket = std::make_unique(connection, peripheral_id); } - GTMLoggerInfo(result ? @"[NEARBY] Request data connection is ok" + GNCLoggerInfo(result ? @"[NEARBY] Request data connection is ok" : @"[NEARBY] Request data connection is not ok"); dispatch_semaphore_signal(semaphore); }]; }]; if (dispatch_semaphore_wait(semaphore, timeout) != 0) { - GTMLoggerError(@"[NEARBY] Failed to connect over L2CAP: timeout."); + GNCLoggerError(@"[NEARBY] Failed to connect over L2CAP: timeout."); return nullptr; } if (socket == nullptr) { if (openError != nil) { - GTMLoggerError(@"[NEARBY] Failed to connect over L2CAP:%@.", openError); + GNCLoggerError(@"[NEARBY] Failed to connect over L2CAP:%@.", openError); } return nullptr; } diff --git a/internal/platform/implementation/apple/device_info.mm b/internal/platform/implementation/apple/device_info.mm index 5ea39bc5..6e3fdc02 100644 --- a/internal/platform/implementation/apple/device_info.mm +++ b/internal/platform/implementation/apple/device_info.mm @@ -28,7 +28,7 @@ #include "internal/base/file_path.h" #include "internal/platform/implementation/device_info.h" -#import "GoogleToolboxForMac/GTMLogger.h" +#import "internal/platform/implementation/apple/Log/GNCLogger.h" namespace nearby { namespace apple { @@ -88,7 +88,7 @@ std::optional DeviceInfo::GetDownloadPath() const { create:YES error:&error]; if (!downloadsURL) { - GTMLoggerError(@"Failed to get download path: %@", error); + GNCLoggerError(@"Failed to get download path: %@", error); return std::nullopt; } @@ -105,16 +105,14 @@ std::optional DeviceInfo::GetLocalAppDataPath() const { create:YES error:&error]; if (!applicationSupportURL) { - GTMLoggerError(@"Failed to get application support path: %@", error); + GNCLoggerError(@"Failed to get application support path: %@", error); return std::nullopt; } return FilePath(absl::string_view([applicationSupportURL.path cString])); } -std::optional DeviceInfo::GetCommonAppDataPath() const { - return GetLocalAppDataPath(); -} +std::optional DeviceInfo::GetCommonAppDataPath() const { return GetLocalAppDataPath(); } std::optional DeviceInfo::GetTemporaryPath() const { return FilePath(absl::string_view([NSTemporaryDirectory() cString])); @@ -130,7 +128,7 @@ std::optional DeviceInfo::GetLogPath() const { create:YES error:&error]; if (!applicationSupportURL) { - GTMLoggerError(@"Failed to get application support path: %@", error); + GNCLoggerError(@"Failed to get application support path: %@", error); return std::nullopt; } @@ -152,7 +150,7 @@ std::optional DeviceInfo::GetCrashDumpPath() const { create:YES error:&error]; if (!applicationSupportURL) { - GTMLoggerError(@"Failed to get application support path: %@", error); + GNCLoggerError(@"Failed to get application support path: %@", error); return std::nullopt; } diff --git a/internal/platform/implementation/apple/network_utils.mm b/internal/platform/implementation/apple/network_utils.mm index 0e4e281e..91a1637c 100644 --- a/internal/platform/implementation/apple/network_utils.mm +++ b/internal/platform/implementation/apple/network_utils.mm @@ -16,10 +16,10 @@ #include "internal/platform/nsd_service_info.h" #include "internal/platform/cancellation_flag.h" +#import "internal/platform/implementation/apple/Log/GNCLogger.h" #import "internal/platform/implementation/apple/Mediums/WiFiCommon/GNCIPv4Address.h" #import "internal/platform/implementation/apple/Mediums/WiFiCommon/GNCNWFramework.h" #import "internal/platform/implementation/apple/Mediums/WiFiCommon/GNCNWFrameworkSocket.h" -#import "GoogleToolboxForMac/GTMLogger.h" namespace nearby { namespace apple { @@ -51,7 +51,7 @@ bool StopAdvertising(GNCNWFramework* medium, const NsdServiceInfo& nsd_service_i bool StartDiscovery(GNCNWFramework* medium, const std::string& service_type, NetworkDiscoveredServiceCallback callback, bool include_peer_to_peer) { if (medium.isDiscoveringAnyService) { - GTMLoggerError(@"Error already discovering for service"); + GNCLoggerError(@"Error already discovering for service"); return false; } __block NSString* serviceType = @(service_type.c_str()); @@ -84,7 +84,7 @@ bool StartDiscovery(GNCNWFramework* medium, const std::string& service_type, includePeerToPeer:include_peer_to_peer error:&error]; if (error != nil) { - GTMLoggerError(@"Error starting discovery for service type<%@>: %@", serviceType, error); + GNCLoggerError(@"Error starting discovery for service type<%@>: %@", serviceType, error); } return result; } @@ -108,7 +108,7 @@ GNCNWFrameworkSocket* ConnectToService(GNCNWFramework* medium, return socket; } if (error != nil) { - GTMLoggerError(@"Error connecting to service name<%@> type<%@>: %@", serviceName, serviceType, + GNCLoggerError(@"Error connecting to service name<%@> type<%@>: %@", serviceName, serviceType, error); } return nil; @@ -134,7 +134,7 @@ GNCNWFrameworkSocket* ConnectToService(GNCNWFramework* medium, return socket; } if (error != nil) { - GTMLoggerError(@"Error connecting to service name<%@> type<%@>: %@", serviceName, serviceType, + GNCLoggerError(@"Error connecting to service name<%@> type<%@>: %@", serviceName, serviceType, error); } return nil; @@ -145,7 +145,7 @@ GNCNWFrameworkSocket* ConnectToService(GNCNWFramework* medium, const std::string CancellationFlag* cancellation_flag) { NSError* error = nil; if (ip_address.size() != 4) { - GTMLoggerError(@"Error IP address must be 4 bytes, but is %lu bytes", ip_address.size()); + GNCLoggerError(@"Error IP address must be 4 bytes, but is %lu bytes", ip_address.size()); return nil; } NSData* hostData = [NSData dataWithBytes:ip_address.data() length:ip_address.size()]; @@ -158,7 +158,7 @@ GNCNWFrameworkSocket* ConnectToService(GNCNWFramework* medium, const std::string return socket; } if (error != nil) { - GTMLoggerError(@"Error connecting to %@:%d: %@", host, port, error); + GNCLoggerError(@"Error connecting to %@:%d: %@", host, port, error); } return nil; } @@ -166,7 +166,7 @@ GNCNWFrameworkSocket* ConnectToService(GNCNWFramework* medium, const std::string GNCNWFrameworkServerSocket* ListenForService(GNCNWFramework* medium, int port, bool include_peer_to_peer) { if (medium.isListeningForAnyService) { - GTMLoggerError(@"Error already listening for service"); + GNCLoggerError(@"Error already listening for service"); return nil; } NSError* error = nil; @@ -177,7 +177,7 @@ GNCNWFrameworkServerSocket* ListenForService(GNCNWFramework* medium, int port, return serverSocket; } if (error != nil) { - GTMLoggerError(@"Error listening for service: %@", error); + GNCLoggerError(@"Error listening for service: %@", error); } return nil; } @@ -185,7 +185,7 @@ GNCNWFrameworkServerSocket* ListenForService(GNCNWFramework* medium, int port, GNCNWFrameworkServerSocket* ListenForService(GNCNWFramework* medium, const api::PskInfo& psk_info, int port, bool include_peer_to_peer) { if (medium.isListeningForAnyService) { - GTMLoggerError(@"Error already listening for service"); + GNCLoggerError(@"Error already listening for service"); return nil; } NSError* error = nil; @@ -203,7 +203,7 @@ GNCNWFrameworkServerSocket* ListenForService(GNCNWFramework* medium, const api:: return serverSocket; } if (error != nil) { - GTMLoggerError(@"Error listening for service: %@", error); + GNCLoggerError(@"Error listening for service: %@", error); } return nil; } diff --git a/internal/platform/implementation/apple/timer.mm b/internal/platform/implementation/apple/timer.mm index a243bb6a..6537782c 100644 --- a/internal/platform/implementation/apple/timer.mm +++ b/internal/platform/implementation/apple/timer.mm @@ -16,8 +16,8 @@ #include +#import "internal/platform/implementation/apple/Log/GNCLogger.h" #include "internal/platform/implementation/timer.h" -#import "GoogleToolboxForMac/GTMLogger.h" // The leeway parameter is a hint from the application as to the amount of time, in nanoseconds, up // to which the system can defer the timer to align with other system activity for improved system @@ -33,12 +33,12 @@ Timer::~Timer() { Stop(); } bool Timer::Create(int delay, int interval, absl::AnyInvocable callback) { if (delay < 0 || interval < 0) { - GTMLoggerError(@"Delay and interval must be positive or zero."); + GNCLoggerError(@"Delay and interval must be positive or zero."); return false; } if (timer_ != nil) { - GTMLoggerError(@"Timer has already started."); + GNCLoggerError(@"Timer has already started."); return false; } diff --git a/internal/platform/implementation/apple/wifi_hotspot.mm b/internal/platform/implementation/apple/wifi_hotspot.mm index 0d41d50b..99bd0ce4 100644 --- a/internal/platform/implementation/apple/wifi_hotspot.mm +++ b/internal/platform/implementation/apple/wifi_hotspot.mm @@ -20,12 +20,11 @@ #include #include -#import "internal/platform/implementation/apple/Mediums/WiFiCommon/GNCIPv4Address.h" +#include +#import "internal/platform/implementation/apple/Log/GNCLogger.h" #import "internal/platform/implementation/apple/Mediums/Hotspot/GNCHotspotMedium.h" #import "internal/platform/implementation/apple/Mediums/Hotspot/GNCHotspotSocket.h" -#import "GoogleToolboxForMac/GTMLogger.h" -#include - +#import "internal/platform/implementation/apple/Mediums/WiFiCommon/GNCIPv4Address.h" namespace nearby { namespace apple { @@ -38,7 +37,7 @@ ExceptionOr WifiHotspotInputStream::Read(std::int64_t size) { NSError* error = nil; NSData* data = [socket_ readMaxLength:size error:&error]; if (data == nil) { - GTMLoggerError(@"Error reading socket: %@", error); + GNCLoggerError(@"Error reading socket: %@", error); return {Exception::kIo}; } return ExceptionOr{ByteArray((const char*)data.bytes, data.length)}; @@ -58,7 +57,7 @@ Exception WifiHotspotOutputStream::Write(const ByteArray& data) { NSError* error = nil; BOOL result = [socket_ write:[NSData dataWithBytes:data.data() length:data.size()] error:&error]; if (!result) { - GTMLoggerError(@"Error writing socket: %@", error); + GNCLoggerError(@"Error writing socket: %@", error); return {Exception::kIo}; } return {Exception::kSuccess}; @@ -94,31 +93,28 @@ Exception WifiHotspotSocket::Close() { #pragma mark - WifiHotspotMedium -WifiHotspotMedium::WifiHotspotMedium() : medium_([[GNCHotspotMedium alloc] init]) {} // NOLINT -WifiHotspotMedium::~WifiHotspotMedium() { - DisconnectWifiHotspot(); -} +WifiHotspotMedium::WifiHotspotMedium() : medium_([[GNCHotspotMedium alloc] init]) {} // NOLINT +WifiHotspotMedium::~WifiHotspotMedium() { DisconnectWifiHotspot(); } bool WifiHotspotMedium::ConnectWifiHotspot(HotspotCredentials* hotspot_credentials_) { NSString* ssid = [[NSString alloc] initWithUTF8String:hotspot_credentials_->GetSSID().c_str()]; NSString* password = [[NSString alloc] initWithUTF8String:hotspot_credentials_->GetPassword().c_str()]; - GTMLoggerInfo(@"ConnectWifiHotspot SSID: %@ Password: %@", ssid, password); - bool result = [medium_ connectToWifiNetworkWithSSID:ssid - password:password]; + GNCLoggerInfo(@"ConnectWifiHotspot SSID: %@ Password: %@", ssid, password); + bool result = [medium_ connectToWifiNetworkWithSSID:ssid password:password]; if (result) { - GTMLoggerInfo(@"Successfully connected to %@", ssid); + GNCLoggerInfo(@"Successfully connected to %@", ssid); hotspot_ssid_ = ssid; } else { - GTMLoggerError(@"Failed to connect to %@", ssid); + GNCLoggerError(@"Failed to connect to %@", ssid); } return result; } bool WifiHotspotMedium::DisconnectWifiHotspot() { - GTMLoggerInfo(@"DisconnectWifiHotspot SSID: %@", hotspot_ssid_); + GNCLoggerInfo(@"DisconnectWifiHotspot SSID: %@", hotspot_ssid_); if (hotspot_ssid_) { [medium_ disconnectToWifiNetworkWithSSID:hotspot_ssid_]; hotspot_ssid_ = nil; @@ -143,19 +139,19 @@ std::unique_ptr WifiHotspotMedium::ConnectToService( host_ip_address.s_addr = inet_addr(ip_address.data()); if (host_ip_address.s_addr == INADDR_NONE) { - GTMLoggerError(@"Invalid IP address: %.*s\n", (int)ip_address.size(), ip_address.data()); - return nil; + GNCLoggerError(@"Invalid IP address: %.*s\n", (int)ip_address.size(), ip_address.data()); + return nil; } host = [GNCIPv4Address addressFromFourByteInt:host_ip_address.s_addr]; } - GTMLoggerInfo(@"Connect to Hotspot host server: %@", [host dottedRepresentation]); + GNCLoggerInfo(@"Connect to Hotspot host server: %@", [host dottedRepresentation]); GNCHotspotSocket* socket = [medium_ connectToHost:host port:port error:&error]; if (socket != nil) { return std::make_unique(socket); } if (error != nil) { - GTMLoggerError(@"Error connecting to %@:%d: %@", host, port, error); + GNCLoggerError(@"Error connecting to %@:%d: %@", host, port, error); } return nil; } diff --git a/internal/platform/implementation/apple/wifi_lan.mm b/internal/platform/implementation/apple/wifi_lan.mm index 4d696e68..e48245f4 100644 --- a/internal/platform/implementation/apple/wifi_lan.mm +++ b/internal/platform/implementation/apple/wifi_lan.mm @@ -19,12 +19,12 @@ #include #include +#import "internal/platform/implementation/apple/Log/GNCLogger.h" #import "internal/platform/implementation/apple/Mediums/WiFiCommon/GNCIPv4Address.h" #import "internal/platform/implementation/apple/Mediums/WiFiCommon/GNCNWFramework.h" #import "internal/platform/implementation/apple/Mediums/WiFiCommon/GNCNWFrameworkServerSocket.h" #import "internal/platform/implementation/apple/Mediums/WiFiCommon/GNCNWFrameworkSocket.h" #import "internal/platform/implementation/apple/network_utils.h" -#import "GoogleToolboxForMac/GTMLogger.h" namespace nearby { namespace apple { @@ -37,7 +37,7 @@ ExceptionOr WifiLanInputStream::Read(std::int64_t size) { NSError* error = nil; NSData* data = [socket_ readMaxLength:size error:&error]; if (data == nil) { - GTMLoggerError(@"Error reading socket: %@", error); + GNCLoggerError(@"Error reading socket: %@", error); return {Exception::kIo}; } return ExceptionOr{ByteArray((const char*)data.bytes, data.length)}; @@ -57,7 +57,7 @@ Exception WifiLanOutputStream::Write(const ByteArray& data) { NSError* error = nil; BOOL result = [socket_ write:[NSData dataWithBytes:data.data() length:data.size()] error:&error]; if (!result) { - GTMLoggerError(@"Error writing socket: %@", error); + GNCLoggerError(@"Error writing socket: %@", error); return {Exception::kIo}; } return {Exception::kSuccess}; @@ -110,7 +110,7 @@ std::unique_ptr WifiLanServerSocket::Accept() { return std::make_unique(socket); } if (error != nil) { - GTMLoggerError(@"Error accepting socket: %@", error); + GNCLoggerError(@"Error accepting socket: %@", error); } return nil; }