summaryrefslogtreecommitdiff
path: root/swift/src
diff options
context:
space:
mode:
authorJoe George <joe@zeroc.com>2019-05-03 09:45:58 -0400
committerJoe George <joe@zeroc.com>2019-05-03 09:45:58 -0400
commitbf8568daf128051f181ecacabafdb899c9df5b6b (patch)
treefe94c5d8e5c102e455891fd16e13a146d63d9261 /swift/src
parentAdd DispatchQueue to Connection callbacks (diff)
downloadice-bf8568daf128051f181ecacabafdb899c9df5b6b.tar.bz2
ice-bf8568daf128051f181ecacabafdb899c9df5b6b.tar.xz
ice-bf8568daf128051f181ecacabafdb899c9df5b6b.zip
Consolidate Connection extensions
Diffstat (limited to 'swift/src')
-rw-r--r--swift/src/Ice/ConnectionI.swift64
1 files changed, 31 insertions, 33 deletions
diff --git a/swift/src/Ice/ConnectionI.swift b/swift/src/Ice/ConnectionI.swift
index 62ddd779103..470a7ac4b2b 100644
--- a/swift/src/Ice/ConnectionI.swift
+++ b/swift/src/Ice/ConnectionI.swift
@@ -38,6 +38,37 @@ public extension Connection {
}
}
}
+
+ func setCloseCallback(runOn queue: DispatchQueue = DispatchQueue.global(), callback: CloseCallback?) throws {
+ let handle = (self as! ConnectionI)._handle
+ return try autoreleasepool {
+ guard let cb = callback else {
+ try handle.setCloseCallback(nil)
+ return
+ }
+
+ try handle.setCloseCallback { c in
+ queue.async {
+ precondition(c.getCachedSwiftObject(ConnectionI.self) === self)
+ cb(self)
+ }
+ }
+ }
+ }
+
+ func setHeartbeatCallback(runOn queue: DispatchQueue = DispatchQueue.global(), callback: HeartbeatCallback?) {
+ let handle = (self as! ConnectionI)._handle
+ guard let cb = callback else {
+ handle.setHeartbeatCallback(nil)
+ return
+ }
+ handle.setHeartbeatCallback { c in
+ queue.async {
+ precondition(c.getCachedSwiftObject(ConnectionI.self) === self)
+ cb(self)
+ }
+ }
+ }
}
class ConnectionI: LocalObject<ICEConnection>, Connection {
@@ -132,36 +163,3 @@ class ConnectionI: LocalObject<ICEConnection>, Connection {
}
}
}
-
-public extension Connection {
- func setCloseCallback(runOn queue: DispatchQueue = DispatchQueue.global(), callback: CloseCallback?) throws {
- let handle = (self as! ConnectionI)._handle
- return try autoreleasepool {
- guard let cb = callback else {
- try handle.setCloseCallback(nil)
- return
- }
-
- try handle.setCloseCallback { c in
- queue.async {
- precondition(c.getCachedSwiftObject(ConnectionI.self) === self)
- cb(self)
- }
- }
- }
- }
-
- func setHeartbeatCallback(runOn queue: DispatchQueue = DispatchQueue.global(), callback: HeartbeatCallback?) {
- let handle = (self as! ConnectionI)._handle
- guard let cb = callback else {
- handle.setHeartbeatCallback(nil)
- return
- }
- handle.setHeartbeatCallback { c in
- queue.async {
- precondition(c.getCachedSwiftObject(ConnectionI.self) === self)
- cb(self)
- }
- }
- }
-}