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
|
#import "STDistantEnvironment.h"
#import <Foundation/NSException.h>
#import <Foundation/NSNotification.h>
#import <Foundation/NSConnection.h>
#import <Foundation/NSDistantObject.h>
#import <Foundation/NSString.h>
@implementation STDistantEnvironment
+ environmentWithName:(NSString *)name host:(NSString *)host;
- initWithName:(NSString *)name host:(NSString *)host
{
if ((self = [super init]) != nil)
{
distantName = RETAIN(name);
distantHost = RETAIN(host);
[self connect];
}
return self;
}
- (STConversation *)createConversation;
- (void)connect
{
environment = (NSDistantObject *)[NSConnection rootProxyForConnectionWithRegisteredName:distantName
host:distantHost];
if(!environment)
{
[NSException raise:@"STDistantEnvironmentException"
format:@"Unable to get distant environment object from server '%@'", distantName];
return;
}
RETAIN(environment);
// [(NSDistantObject *)simulator setProtocolForProxy:@protocol(AFSimulator)];
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(_connectionDidDie:)
name:NSConnectionDidDieNotification
object:[environment connectionForProxy]];
}
- (STConversation *)createConversationProxy
{
return [environment createConversation];
}
@end
|