-
Notifications
You must be signed in to change notification settings - Fork 1.2k
/
Copy pathNSPort.swift
142 lines (105 loc) · 3.63 KB
/
NSPort.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See http://swift.org/LICENSE.txt for license information
// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
public typealias SocketNativeHandle = Int32
extension Port {
public static let didBecomeInvalidNotification = NSNotification.Name(rawValue: "NSPortDidBecomeInvalidNotification")
}
open class Port : NSObject, NSCopying, NSCoding {
public override init() {
}
public required init?(coder aDecoder: NSCoder) {
NSUnimplemented()
}
open func encode(with aCoder: NSCoder) {
NSUnimplemented()
}
open func copy(with zone: NSZone? = nil) -> Any {
NSUnimplemented()
}
open func invalidate() {
NSUnimplemented()
}
open var isValid: Bool {
NSUnimplemented()
}
// TODO: this delegate situation is confusing on all platforms
/*
open func setDelegate(_ anObject: PortDelegate?)
open func delegate() -> PortDelegate?
*/
// These two methods should be implemented by subclasses
// to setup monitoring of the port when added to a run loop,
// and stop monitoring if needed when removed;
// These methods should not be called directly!
open func schedule(in runLoop: RunLoop, forMode mode: RunLoopMode) {
NSUnimplemented()
}
open func remove(from runLoop: RunLoop, forMode mode: RunLoopMode) {
NSUnimplemented()
}
open var reservedSpaceLength: Int {
return 0
}
open func sendBeforeDate(_ limitDate: Date, components: NSMutableArray?, from receivePort: Port?, reserved headerSpaceReserved: Int) -> Bool {
NSUnimplemented()
}
open func sendBeforeDate(_ limitDate: Date, msgid msgID: Int, components: NSMutableArray?, from receivePort: Port?, reserved headerSpaceReserved: Int) -> Bool {
NSUnimplemented()
}
}
extension PortDelegate {
func handle(_ message: PortMessage) { }
}
public protocol PortDelegate : class {
func handlePortMessage(_ message: PortMessage)
}
// A subclass of NSPort which can be used for local
// message sending on all platforms.
open class MessagePort : Port {
}
// A subclass of NSPort which can be used for remote
// message sending on all platforms.
open class SocketPort : Port {
public convenience override init() {
NSUnimplemented()
}
public required init?(coder aDecoder: NSCoder) {
NSUnimplemented()
}
public convenience init?(tcpPort port: UInt16) {
NSUnimplemented()
}
public init?(protocolFamily family: Int32, socketType type: Int32, protocol: Int32, address: Data) {
NSUnimplemented()
}
public init?(protocolFamily family: Int32, socketType type: Int32, protocol: Int32, socket sock: SocketNativeHandle) {
NSUnimplemented()
}
public convenience init?(remoteWithTCPPort port: UInt16, host hostName: String?) {
NSUnimplemented()
}
public init(remoteWithProtocolFamily family: Int32, socketType type: Int32, protocol: Int32, address: Data) {
NSUnimplemented()
}
open var protocolFamily: Int32 {
NSUnimplemented()
}
open var socketType: Int32 {
NSUnimplemented()
}
open var `protocol`: Int32 {
NSUnimplemented()
}
open var address: Data {
NSUnimplemented()
}
open var socket: SocketNativeHandle {
NSUnimplemented()
}
}