Mercurial > projects > dstep
comparison dstep/foundation/NSConnection.d @ 16:19885b43130e
Huge update, the bridge actually works now
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Sun, 03 Jan 2010 22:06:11 +0100 |
parents | 7ff919f595d5 |
children | b9de51448c6b |
comparison
equal
deleted
inserted
replaced
15:7ff919f595d5 | 16:19885b43130e |
---|---|
10 import dstep.foundation.NSData; | 10 import dstep.foundation.NSData; |
11 import dstep.foundation.NSDate; | 11 import dstep.foundation.NSDate; |
12 import dstep.foundation.NSDictionary; | 12 import dstep.foundation.NSDictionary; |
13 import dstep.foundation.NSDistantObject; | 13 import dstep.foundation.NSDistantObject; |
14 import dstep.foundation.NSException; | 14 import dstep.foundation.NSException; |
15 import dstep.foundation.NSMutableData; | 15 import dstep.foundation.NSInvocation; |
16 import dstep.foundation.NSObject; | 16 import dstep.foundation.NSObject; |
17 import dstep.foundation.NSPort; | 17 import dstep.foundation.NSPort; |
18 import dstep.foundation.NSPortNameServer; | 18 import dstep.foundation.NSPortNameServer; |
19 import dstep.foundation.NSRunLoop; | 19 import dstep.foundation.NSRunLoop; |
20 import dstep.foundation.NSString; | |
20 import dstep.objc.bridge.Bridge; | 21 import dstep.objc.bridge.Bridge; |
21 import dstep.objc.objc : id; | 22 import dstep.objc.objc; |
22 | 23 |
23 import bindings = dstep.foundation.NSConnection_bindings; | 24 import bindings = dstep.foundation.NSConnection_bindings; |
24 | 25 |
25 const NSString NSConnectionReplyMode; | 26 private |
26 const NSString NSConnectionDidDieNotification; | 27 { |
27 const NSString NSFailedAuthenticationException; | 28 NSString NSConnectionReplyMode_; |
28 const NSString NSConnectionDidInitializeNotification; | 29 NSString NSConnectionDidDieNotification_; |
29 | 30 NSString NSFailedAuthenticationException_; |
30 static this () | 31 NSString NSConnectionDidInitializeNotification_; |
31 { | 32 } |
32 NSConnectionReplyMode = new NSString(bindings.NSConnectionReplyMode); | 33 |
33 NSConnectionDidDieNotification = new NSString(bindings.NSConnectionDidDieNotification); | 34 NSString NSConnectionReplyMode () |
34 NSFailedAuthenticationException = new NSString(bindings.NSFailedAuthenticationException); | 35 { |
35 NSConnectionDidInitializeNotification = new NSString(bindings.NSConnectionDidInitializeNotification); | 36 if (NSConnectionReplyMode_) |
36 } | 37 return NSConnectionReplyMode_; |
38 | |
39 return NSConnectionReplyMode_ = new NSString(bindings.NSConnectionReplyMode); | |
40 } | |
41 | |
42 NSString NSConnectionDidDieNotification () | |
43 { | |
44 if (NSConnectionDidDieNotification_) | |
45 return NSConnectionDidDieNotification_; | |
46 | |
47 return NSConnectionDidDieNotification_ = new NSString(bindings.NSConnectionDidDieNotification); | |
48 } | |
49 | |
50 NSString NSFailedAuthenticationException () | |
51 { | |
52 if (NSFailedAuthenticationException_) | |
53 return NSFailedAuthenticationException_; | |
54 | |
55 return NSFailedAuthenticationException_ = new NSString(bindings.NSFailedAuthenticationException); | |
56 } | |
57 | |
58 NSString NSConnectionDidInitializeNotification () | |
59 { | |
60 if (NSConnectionDidInitializeNotification_) | |
61 return NSConnectionDidInitializeNotification_; | |
62 | |
63 return NSConnectionDidInitializeNotification_ = new NSString(bindings.NSConnectionDidInitializeNotification); | |
64 } | |
65 | |
66 const TNSDistantObjectRequestMethods = ` | |
67 | |
68 bool connection (NSConnection connection, NSDistantObjectRequest doreq) | |
69 { | |
70 return invokeObjcSelf!(bool, "connection:handleRequest:", NSConnection, NSDistantObjectRequest)(connection, doreq); | |
71 } | |
72 | |
73 //mixin ObjcBindMethod!(connection, "connection:handleRequest:"); | |
74 `; | |
75 | |
76 const TNSConnectionDelegateMethods = ` | |
77 | |
78 bool makeNewConnection (NSConnection conn, NSConnection ancestor) | |
79 { | |
80 return invokeObjcSelf!(bool, "makeNewConnection:sender:")(conn, ancestor); | |
81 } | |
82 | |
83 bool connection (NSConnection ancestor, NSConnection conn) | |
84 { | |
85 return invokeObjcSelf!(bool, "connection:shouldMakeNewConnection:", NSConnection, NSConnection)(ancestor, conn); | |
86 } | |
87 | |
88 NSData authenticationDataForComponents (NSArray components) | |
89 { | |
90 return invokeObjcSelf!(NSData, "authenticationDataForComponents:", NSArray)(components); | |
91 } | |
92 | |
93 bool authenticateComponents (NSArray components, NSData signature) | |
94 { | |
95 return invokeObjcSelf!(bool, "authenticateComponents:withData:")(components, signature); | |
96 } | |
97 | |
98 Object createConversationForConnection (NSConnection conn) | |
99 { | |
100 return invokeObjcSelf!(Object, "createConversationForConnection:")(conn); | |
101 } | |
102 | |
103 //mixin ObjcBindMethod!(makeNewConnection, "makeNewConnection:sender:"); | |
104 //mixin ObjcBindMethod!(connection, "connection:shouldMakeNewConnection:"); | |
105 //mixin ObjcBindMethod!(authenticationDataForComponents, "authenticationDataForComponents:"); | |
106 //mixin ObjcBindMethod!(authenticateComponents, "authenticateComponents:withData:"); | |
107 //mixin ObjcBindMethod!(createConversationForConnection, "createConversationForConnection:"); | |
108 `; | |
37 | 109 |
38 class NSDistantObjectRequest : NSObject | 110 class NSDistantObjectRequest : NSObject |
39 { | 111 { |
40 mixin ObjcWrap; | 112 mixin (ObjcWrap); |
113 | |
114 this () | |
115 { | |
116 super(typeof(this).alloc.init.objcObject); | |
117 } | |
118 | |
119 typeof(this) init () | |
120 { | |
121 return invokeObjcSelf!(typeof(this), "init"); | |
122 } | |
41 | 123 |
42 NSInvocation invocation () | 124 NSInvocation invocation () |
43 { | 125 { |
44 return invokeObjcSelf!(NSInvocation, "invocation"); | 126 return invokeObjcSelf!(NSInvocation, "invocation"); |
45 } | 127 } |
60 } | 142 } |
61 } | 143 } |
62 | 144 |
63 class NSConnection : NSObject | 145 class NSConnection : NSObject |
64 { | 146 { |
65 mixin ObjcWrap; | 147 mixin (ObjcWrap); |
148 | |
149 this () | |
150 { | |
151 super(typeof(this).alloc.init.objcObject); | |
152 } | |
153 | |
154 typeof(this) init () | |
155 { | |
156 return invokeObjcSelf!(typeof(this), "init"); | |
157 } | |
66 | 158 |
67 NSDictionary statistics () | 159 NSDictionary statistics () |
68 { | 160 { |
69 return invokeObjcSelf!(NSDictionary, "statistics"); | 161 return invokeObjcSelf!(NSDictionary, "statistics"); |
70 } | 162 } |
71 | 163 |
72 static NSArray allConnections () | 164 static NSArray allConnections () |
73 { | 165 { |
74 return invokeObjcSelfClass!(NSArray, "allConnections"); | 166 return invokeObjcSuperClass!(NSArray, "allConnections"); |
75 } | 167 } |
76 | 168 |
77 static NSConnection defaultConnection () | 169 static NSConnection defaultConnection () |
78 { | 170 { |
79 return invokeObjcSelfClass!(NSConnection, "defaultConnection"); | 171 return invokeObjcSuperClass!(NSConnection, "defaultConnection"); |
80 } | 172 } |
81 | 173 |
82 static Object connectionWithRegisteredName (NSString name, NSString hostName) | 174 static Object connectionWithRegisteredName (NSString name, NSString hostName) |
83 { | 175 { |
84 return invokeObjcSelfClass!(Object, "connectionWithRegisteredName:host:", NSString, NSString)(name, hostName); | 176 return invokeObjcSuperClass!(Object, "connectionWithRegisteredName:host:", NSString, NSString)(name, hostName); |
85 } | 177 } |
86 | 178 |
87 static Object connectionWithRegisteredName (NSString name, NSString hostName, NSPortNameServer server) | 179 static Object connectionWithRegisteredName (NSString name, NSString hostName, NSPortNameServer server) |
88 { | 180 { |
89 return invokeObjcSelfClass!(Object, "connectionWithRegisteredName:host:usingNameServer:", NSString, NSString, NSPortNameServer)(name, hostName, server); | 181 return invokeObjcSuperClass!(Object, "connectionWithRegisteredName:host:usingNameServer:", NSString, NSString, NSPortNameServer)(name, hostName, server); |
90 } | 182 } |
91 | 183 |
92 static NSDistantObject rootProxyForConnectionWithRegisteredName (NSString name, NSString hostName) | 184 static NSDistantObject rootProxyForConnectionWithRegisteredName (NSString name, NSString hostName) |
93 { | 185 { |
94 return invokeObjcSelfClass!(NSDistantObject, "rootProxyForConnectionWithRegisteredName:host:", NSString, NSString)(name, hostName); | 186 return invokeObjcSuperClass!(NSDistantObject, "rootProxyForConnectionWithRegisteredName:host:", NSString, NSString)(name, hostName); |
95 } | 187 } |
96 | 188 |
97 static NSDistantObject rootProxyForConnectionWithRegisteredName (NSString name, NSString hostName, NSPortNameServer server) | 189 static NSDistantObject rootProxyForConnectionWithRegisteredName (NSString name, NSString hostName, NSPortNameServer server) |
98 { | 190 { |
99 return invokeObjcSelfClass!(NSDistantObject, "rootProxyForConnectionWithRegisteredName:host:usingNameServer:", NSString, NSString, NSPortNameServer)(name, hostName, server); | 191 return invokeObjcSuperClass!(NSDistantObject, "rootProxyForConnectionWithRegisteredName:host:usingNameServer:", NSString, NSString, NSPortNameServer)(name, hostName, server); |
100 } | 192 } |
101 | 193 |
102 static Object serviceConnectionWithName (NSString name, Object root, NSPortNameServer server) | 194 static Object serviceConnectionWithName (NSString name, Object root, NSPortNameServer server) |
103 { | 195 { |
104 return invokeObjcSelfClass!(Object, "serviceConnectionWithName:rootObject:usingNameServer:", NSString, Object, NSPortNameServer)(name, root, server); | 196 return invokeObjcSuperClass!(Object, "serviceConnectionWithName:rootObject:usingNameServer:", NSString, Object, NSPortNameServer)(name, root, server); |
105 } | 197 } |
106 | 198 |
107 static Object serviceConnectionWithName (NSString name, Object root) | 199 static Object serviceConnectionWithName (NSString name, Object root) |
108 { | 200 { |
109 return invokeObjcSelfClass!(Object, "serviceConnectionWithName:rootObject:", NSString, Object)(name, root); | 201 return invokeObjcSuperClass!(Object, "serviceConnectionWithName:rootObject:", NSString, Object)(name, root); |
110 } | 202 } |
111 | 203 |
112 void setRequestTimeout (double ti) | 204 void setRequestTimeout (double ti) |
113 { | 205 { |
114 return invokeObjcSelf!(void, "setRequestTimeout:", double)(ti); | 206 return invokeObjcSelf!(void, "setRequestTimeout:", double)(ti); |
199 return invokeObjcSelf!(bool, "registerName:withNameServer:", NSString, NSPortNameServer)(name, server); | 291 return invokeObjcSelf!(bool, "registerName:withNameServer:", NSString, NSPortNameServer)(name, server); |
200 } | 292 } |
201 | 293 |
202 static Object connectionWithReceivePort (NSPort receivePort, NSPort sendPort) | 294 static Object connectionWithReceivePort (NSPort receivePort, NSPort sendPort) |
203 { | 295 { |
204 return invokeObjcSelfClass!(Object, "connectionWithReceivePort:sendPort:", NSPort, NSPort)(receivePort, sendPort); | 296 return invokeObjcSuperClass!(Object, "connectionWithReceivePort:sendPort:", NSPort, NSPort)(receivePort, sendPort); |
205 } | 297 } |
206 | 298 |
207 static Object currentConversation () | 299 static Object currentConversation () |
208 { | 300 { |
209 return invokeObjcSelfClass!(Object, "currentConversation"); | 301 return invokeObjcSuperClass!(Object, "currentConversation"); |
210 } | 302 } |
211 | 303 |
212 Object initWithReceivePort (NSPort receivePort, NSPort sendPort) | 304 Object initWithReceivePort (NSPort receivePort, NSPort sendPort) |
213 { | 305 { |
214 return invokeObjcSelf!(Object, "initWithReceivePort:sendPort:", NSPort, NSPort)(receivePort, sendPort); | 306 return invokeObjcSelf!(Object, "initWithReceivePort:sendPort:", NSPort, NSPort)(receivePort, sendPort); |
215 } | 307 } |
216 | 308 |
217 this (NSPort receivePort, NSPort sendPort) | 309 this (NSPort receivePort, NSPort sendPort) |
218 { | 310 { |
219 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); | 311 typeof(this).alloc.initWithReceivePort(receivePort, sendPort); |
220 id result = Bridge.invokeObjcMethod!(id, "initWithReceivePort:sendPort:", NSPort, NSPort)(objcObject, receivePort, sendPort); | |
221 | |
222 if (result) | |
223 objcObject = ret; | |
224 | |
225 dObject = this; | |
226 } | 312 } |
227 | 313 |
228 NSPort sendPort () | 314 NSPort sendPort () |
229 { | 315 { |
230 return invokeObjcSelf!(NSPort, "sendPort"); | 316 return invokeObjcSelf!(NSPort, "sendPort"); |
268 NSArray localObjects () | 354 NSArray localObjects () |
269 { | 355 { |
270 return invokeObjcSelf!(NSArray, "localObjects"); | 356 return invokeObjcSelf!(NSArray, "localObjects"); |
271 } | 357 } |
272 } | 358 } |
273 | |
274 template TNSDistantObjectRequestMethods () | |
275 { | |
276 bool connection (NSConnection connection, NSDistantObjectRequest doreq); | |
277 } | |
278 | |
279 template TNSConnectionDelegateMethods () | |
280 { | |
281 bool makeNewConnection (NSConnection conn, NSConnection ancestor); | |
282 bool connection (NSConnection ancestor, NSConnection conn); | |
283 NSData authenticationDataForComponents (NSArray components); | |
284 bool authenticateComponents (NSArray components, NSData signature); | |
285 Object createConversationForConnection (NSConnection conn); | |
286 } | |
287 |