Skip to content

Commit 556ea36

Browse files
committed
Remove comment
1 parent dbb8ba8 commit 556ea36

File tree

6 files changed

+28
-13
lines changed

6 files changed

+28
-13
lines changed

FirebaseSessions/Sources/Development/DevEventConsoleLogger.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import Foundation
1919
import FirebaseSessionsObjC
2020
#endif // SWIFT_PACKAGE
2121

22-
class DevEventConsoleLogger: EventGDTLoggerProtocol {
22+
final class DevEventConsoleLogger: EventGDTLoggerProtocol {
2323
private let commandLineArgument = "-FIRSessionsDebugEvents"
2424

2525
func logEvent(event: SessionStartEvent, completion: @escaping (Result<Void, Error>) -> Void) {

FirebaseSessions/Sources/EventGDTLogger.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import Foundation
1717

1818
internal import GoogleDataTransport
1919

20-
protocol EventGDTLoggerProtocol {
20+
protocol EventGDTLoggerProtocol: Sendable {
2121
func logEvent(event: SessionStartEvent, completion: @escaping (Result<Void, Error>) -> Void)
2222
}
2323

@@ -26,7 +26,7 @@ protocol EventGDTLoggerProtocol {
2626
/// 1) Creating GDT Events and logging them to the GoogleDataTransport SDK
2727
/// 2) Handling debugging situations (eg. running in Simulator or printing the event to console)
2828
///
29-
class EventGDTLogger: EventGDTLoggerProtocol {
29+
final class EventGDTLogger: EventGDTLoggerProtocol {
3030
let googleDataTransport: GoogleDataTransportProtocol
3131
let devEventConsoleLogger: EventGDTLoggerProtocol
3232

FirebaseSessions/Sources/FirebaseSessions.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,13 +62,13 @@ private enum GoogleDataTransportConfig {
6262

6363
// Initializes the SDK and top-level classes
6464
required convenience init(appID: String, installations: InstallationsProtocol) {
65-
let googleDataTransport = GDTCORTransport(
65+
let googleDataTransport = GoogleDataTransporter(
6666
mappingID: GoogleDataTransportConfig.sessionsLogSource,
6767
transformers: nil,
6868
target: GoogleDataTransportConfig.sessionsTarget
6969
)
7070

71-
let fireLogger = EventGDTLogger(googleDataTransport: googleDataTransport!)
71+
let fireLogger = EventGDTLogger(googleDataTransport: googleDataTransport)
7272

7373
let appInfo = ApplicationInfo(appID: appID)
7474
let settings = SessionsSettings(

FirebaseSessions/Sources/GoogleDataTransport+GoogleDataTransportProtocol.swift

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,20 +15,31 @@
1515

1616
import Foundation
1717

18-
internal import GoogleDataTransport
18+
@preconcurrency internal import GoogleDataTransport
1919

2020
enum GoogleDataTransportProtocolErrors: Error {
2121
case writeFailure
2222
}
2323

24-
protocol GoogleDataTransportProtocol {
24+
protocol GoogleDataTransportProtocol: Sendable {
2525
func logGDTEvent(event: GDTCOREvent, completion: @escaping (Result<Void, Error>) -> Void)
2626
func eventForTransport() -> GDTCOREvent
2727
}
2828

29-
extension GDTCORTransport: GoogleDataTransportProtocol {
30-
func logGDTEvent(event: GDTCOREvent, completion: @escaping (Result<Void, Error>) -> Void) {
31-
sendDataEvent(event) { wasWritten, error in
29+
/// Workaround in combo with preconcurrency import of GDT. When GDT's
30+
/// `GDTCORTransport`type conforms to Sendable within the GDT module,
31+
/// this can be removed.
32+
final class GoogleDataTransporter: GoogleDataTransportProtocol {
33+
private let transporter: GDTCORTransport
34+
35+
init(mappingID: String,
36+
transformers: [any GDTCOREventTransformer]?,
37+
target: GDTCORTarget) {
38+
transporter = GDTCORTransport(mappingID: mappingID, transformers: transformers, target: target)!
39+
}
40+
41+
func logGDTEvent(event: GDTCOREvent, completion: @escaping (Result<Void, any Error>) -> Void) {
42+
transporter.sendDataEvent(event) { wasWritten, error in
3243
if let error {
3344
completion(.failure(error))
3445
} else if !wasWritten {
@@ -38,4 +49,8 @@ extension GDTCORTransport: GoogleDataTransportProtocol {
3849
}
3950
}
4051
}
52+
53+
func eventForTransport() -> GDTCOREvent {
54+
transporter.eventForTransport()
55+
}
4156
}

FirebaseSessions/Sources/SessionCoordinator.swift

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,7 @@ protocol SessionCoordinatorProtocol: Sendable {
2626
final class SessionCoordinator: SessionCoordinatorProtocol {
2727
let installations: InstallationsProtocol
2828

29-
// TODO: Make this type sendable
30-
nonisolated(unsafe) let fireLogger: EventGDTLoggerProtocol
29+
let fireLogger: EventGDTLoggerProtocol
3130

3231
init(installations: InstallationsProtocol,
3332
fireLogger: EventGDTLoggerProtocol) {

FirebaseSessions/Tests/Unit/Mocks/MockGDTLogger.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ import Foundation
1717

1818
@testable import FirebaseSessions
1919

20-
class MockGDTLogger: EventGDTLoggerProtocol {
20+
// TODO(Swift 6): Add checked Sendable support.
21+
final class MockGDTLogger: EventGDTLoggerProtocol, @unchecked Sendable {
2122
var loggedEvent: SessionStartEvent?
2223
var result: Result<Void, Error> = .success(())
2324

0 commit comments

Comments
 (0)