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