Skip to content

Commit

Permalink
formatting
Browse files Browse the repository at this point in the history
  • Loading branch information
xiazhvera committed May 13, 2024
1 parent 9f8a027 commit 0e58e24
Showing 1 changed file with 52 additions and 55 deletions.
107 changes: 52 additions & 55 deletions Source/AwsCommonRuntimeKit/mqtt/Mqtt5Client.swift
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,6 @@ public class Mqtt5Client {
internal let rwlock = ReadWriteLock()
internal var callbackFlag = true


init(clientOptions options: MqttClientOptions) throws {

try options.validateConversionToNative()
Expand Down Expand Up @@ -321,15 +320,14 @@ public class Mqtt5Client {
}
}


/////////////////////////////////////////////////////////
// helper functions for self retained reference
private func callbackUserData() -> UnsafeMutableRawPointer {
return Unmanaged<Mqtt5Client>.passRetained(self).toOpaque()
}

private func release() {
self.rwlock.write{
self.rwlock.write {
self.callbackFlag = false
}
Unmanaged<Mqtt5Client>.passUnretained(self).release()
Expand All @@ -346,72 +344,71 @@ internal func MqttClientHandleLifecycleEvent(_ lifecycleEvent: UnsafePointer<aws
let userData = lifecycleEvent.pointee.user_data else {
fatalError("MqttClientLifecycleEvents was called from native without an aws_mqtt5_client_lifecycle_event.")
}
let client = Unmanaged<Mqtt5Client>.fromOpaque(lifecycleEvent.pointee.user_data).takeUnretainedValue()
let client = Unmanaged<Mqtt5Client>.fromOpaque(userData).takeUnretainedValue()
let crtError = CRTError(code: lifecycleEvent.pointee.error_code)

// validate the callback flag, if flag is false, return
// validate the callback flag, if flag is false, return
client.rwlock.read {
if client.callbackFlag == false { return }
client.rwlock.read {
if client.callbackFlag == false { return }

switch lifecycleEvent.pointee.event_type {
case AWS_MQTT5_CLET_ATTEMPTING_CONNECT:
switch lifecycleEvent.pointee.event_type {
case AWS_MQTT5_CLET_ATTEMPTING_CONNECT:

let lifecycleAttemptingConnectData = LifecycleAttemptingConnectData()
Task {
await client.onLifecycleEventAttemptingConnect(lifecycleAttemptingConnectData)
}
case AWS_MQTT5_CLET_CONNECTION_SUCCESS:
let lifecycleAttemptingConnectData = LifecycleAttemptingConnectData()
Task {
await client.onLifecycleEventAttemptingConnect(lifecycleAttemptingConnectData)
}
case AWS_MQTT5_CLET_CONNECTION_SUCCESS:

guard let connackView = lifecycleEvent.pointee.connack_data else {
fatalError("ConnackPacket missing in a Connection Success lifecycle event.")
}
let connackPacket = ConnackPacket(connackView)
guard let connackView = lifecycleEvent.pointee.connack_data else {
fatalError("ConnackPacket missing in a Connection Success lifecycle event.")
}
let connackPacket = ConnackPacket(connackView)

guard let negotiatedSettings = lifecycleEvent.pointee.settings else {
fatalError("NegotiatedSettings missing in a Connection Success lifecycle event.")
}
guard let negotiatedSettings = lifecycleEvent.pointee.settings else {
fatalError("NegotiatedSettings missing in a Connection Success lifecycle event.")
}

let lifecycleConnectionSuccessData = LifecycleConnectionSuccessData(
connackPacket: connackPacket,
negotiatedSettings: NegotiatedSettings(negotiatedSettings))
Task {
await client.onLifecycleEventConnectionSuccess(lifecycleConnectionSuccessData)
}
case AWS_MQTT5_CLET_CONNECTION_FAILURE:
let lifecycleConnectionSuccessData = LifecycleConnectionSuccessData(
connackPacket: connackPacket,
negotiatedSettings: NegotiatedSettings(negotiatedSettings))
Task {
await client.onLifecycleEventConnectionSuccess(lifecycleConnectionSuccessData)
}
case AWS_MQTT5_CLET_CONNECTION_FAILURE:

var connackPacket: ConnackPacket?
if let connackView = lifecycleEvent.pointee.connack_data {
connackPacket = ConnackPacket(connackView)
}
var connackPacket: ConnackPacket?
if let connackView = lifecycleEvent.pointee.connack_data {
connackPacket = ConnackPacket(connackView)
}

let lifecycleConnectionFailureData = LifecycleConnectionFailureData(
crtError: crtError,
connackPacket: connackPacket)
Task {
await client.onLifecycleEventConnectionFailure(lifecycleConnectionFailureData)
}
case AWS_MQTT5_CLET_DISCONNECTION:
let lifecycleConnectionFailureData = LifecycleConnectionFailureData(
crtError: crtError,
connackPacket: connackPacket)
Task {
await client.onLifecycleEventConnectionFailure(lifecycleConnectionFailureData)
}
case AWS_MQTT5_CLET_DISCONNECTION:

var disconnectPacket: DisconnectPacket?
var disconnectPacket: DisconnectPacket?

if let disconnectView: UnsafePointer<aws_mqtt5_packet_disconnect_view> = lifecycleEvent.pointee.disconnect_data {
disconnectPacket = DisconnectPacket(disconnectView)
}
if let disconnectView: UnsafePointer<aws_mqtt5_packet_disconnect_view> = lifecycleEvent.pointee.disconnect_data {
disconnectPacket = DisconnectPacket(disconnectView)
}

let lifecycleDisconnectData = LifecycleDisconnectData(
crtError: crtError,
disconnectPacket: disconnectPacket)
Task {
await client.onLifecycleEventDisconnection(lifecycleDisconnectData)
}
case AWS_MQTT5_CLET_STOPPED:
Task {
await client.onLifecycleEventStoppedCallback(LifecycleStoppedData())
}
default:
fatalError("A lifecycle event with an invalid event type was encountered.")
let lifecycleDisconnectData = LifecycleDisconnectData(
crtError: crtError,
disconnectPacket: disconnectPacket)
Task {
await client.onLifecycleEventDisconnection(lifecycleDisconnectData)
}
case AWS_MQTT5_CLET_STOPPED:
Task {
await client.onLifecycleEventStoppedCallback(LifecycleStoppedData())
}
default:
fatalError("A lifecycle event with an invalid event type was encountered.")
}
}
}

Expand Down

0 comments on commit 0e58e24

Please sign in to comment.