1111//===----------------------------------------------------------------------===//
1212
1313import CDispatch
14+ #if os(Windows)
15+ import WinSDK
16+ #endif
1417
1518extension DispatchIO {
1619
@@ -34,12 +37,28 @@ extension DispatchIO {
3437public static let strictInterval = IntervalFlags ( rawValue: 1 )
3538}
3639
40+ #if os(Windows)
41+ public class func read( fromHandle: HANDLE , maxLength: Int , runningHandlerOn queue: DispatchQueue , handler: @escaping ( _ data: DispatchData , _ error: Int32 ) -> Void ) {
42+ dispatch_read ( dispatch_fd_t ( bitPattern: fromHandle) , maxLength, queue. __wrapped) { ( data: dispatch_data_t , error: Int32 ) in
43+ handler ( DispatchData ( borrowedData: data) , error)
44+ }
45+ }
46+ #endif
47+
3748public class func read( fromFileDescriptor: Int32 , maxLength: Int , runningHandlerOn queue: DispatchQueue , handler: @escaping ( _ data: DispatchData , _ error: Int32 ) -> Void ) {
3849dispatch_read ( dispatch_fd_t ( fromFileDescriptor) , maxLength, queue. __wrapped) { ( data: dispatch_data_t , error: Int32 ) in
3950handler ( DispatchData ( borrowedData: data) , error)
4051}
4152}
4253
54+ #if os(Windows)
55+ public class func write( toHandle: HANDLE , data: DispatchData , runningHandlerOn queue: DispatchQueue , handler: @escaping ( _ data: DispatchData ? ? , _ error: Int32 ) -> Void ) {
56+ dispatch_write ( dispatch_fd_t ( bitPattern: toHandle) , data. __wrapped. __wrapped, queue. __wrapped) { ( data: dispatch_data_t ? , error: Int32 ) in
57+ handler ( data. map { DispatchData ( borrowedData: $0) } , error)
58+ }
59+ }
60+ #endif
61+
4362public class func write( toFileDescriptor: Int32 , data: DispatchData , runningHandlerOn queue: DispatchQueue , handler: @escaping ( _ data: DispatchData ? , _ error: Int32 ) -> Void ) {
4463dispatch_write ( dispatch_fd_t ( toFileDescriptor) , data. __wrapped. __wrapped, queue. __wrapped) { ( data: dispatch_data_t ? , error: Int32 ) in
4564handler ( data. map { DispatchData ( borrowedData: $0) } , error)
0 commit comments