Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,6 @@
|
|||
#import <Foundation/Foundation.h>
|
||||
// our protocol allows "sending" "strings", but we can implement
|
||||
// everything we could for a "local" object
|
||||
@protocol ActionObjectProtocol
|
||||
- (NSString *)sendMessage: (NSString *)msg;
|
||||
@end
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
#import <Foundation/Foundation.h>
|
||||
#import "ActionObjectProtocol.h"
|
||||
|
||||
@interface ActionObject : NSObject <ActionObjectProtocol>
|
||||
// we do not have much for this example!
|
||||
@end
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
#import <Foundation/Foundation.h>
|
||||
#import "ActionObject.h"
|
||||
|
||||
@implementation ActionObject
|
||||
-(NSString *)sendMessage: (NSString *)msg
|
||||
{
|
||||
NSLog(@"client sending message %@", msg);
|
||||
return @"server answers ...";
|
||||
}
|
||||
@end
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
#import <Foundation/Foundation.h>
|
||||
#import "ActionObject.h"
|
||||
|
||||
int main (void)
|
||||
{
|
||||
@autoreleasepool {
|
||||
|
||||
ActionObject *action = [[ActionObject alloc] init];
|
||||
|
||||
NSSocketPort *port = (NSSocketPort *)[NSSocketPort port];
|
||||
// initWithTCPPort: 1234 and other methods are not supported yet
|
||||
// by GNUstep
|
||||
NSConnection *connect = [NSConnection
|
||||
connectionWithReceivePort: port
|
||||
sendPort: port]; // or sendPort: nil
|
||||
|
||||
[connect setRootObject: action];
|
||||
|
||||
/* "vend" the object ActionObject as DistributedAction; on GNUstep
|
||||
the Name Server that allows the resolution of the registered name
|
||||
is bound to port 538 */
|
||||
if (![connect registerName:@"DistributedAction"
|
||||
withNameServer: [NSSocketPortNameServer sharedInstance] ])
|
||||
{
|
||||
NSLog(@"can't register the server DistributedAction");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
NSLog(@"waiting for messages...");
|
||||
|
||||
[[NSRunLoop currentRunLoop] run];
|
||||
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
#import <Foundation/Foundation.h>
|
||||
#import "ActionObjectProtocol.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
@autoreleasepool {
|
||||
|
||||
id <ActionObjectProtocol> action = (id <ActionObjectProtocol>)
|
||||
[NSConnection
|
||||
rootProxyForConnectionWithRegisteredName: @"DistributedAction"
|
||||
host: @"localhost"
|
||||
usingNameServer: [NSSocketPortNameServer sharedInstance] ];
|
||||
|
||||
if (action == nil)
|
||||
{
|
||||
NSLog(@"can't connect to the server");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
NSArray *args = [[NSProcessInfo processInfo] arguments];
|
||||
|
||||
if ([args count] == 1)
|
||||
{
|
||||
NSLog(@"specify a message");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
NSString *msg = args[1];
|
||||
|
||||
// "send" (call the selector "sendMessage:" of the (remote) object
|
||||
// action) the first argument's text as msg, store the message "sent
|
||||
// back" and then show it in the log
|
||||
NSString *backmsg = [action sendMessage: msg];
|
||||
NSLog("%@", backmsg);
|
||||
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue