// // SoulSeek.m // SSNetwork // // Created by Marcelo Alves on 09/03/07. // Copyright 2007 __MyCompanyName__. All rights reserved. // #import "SoulSeek.h" #import "SoulSeekWorker.h" @implementation SoulSeek -(void) createWorker { NSPort *port1 = [NSPort port]; NSPort *port2 = [NSPort port]; NSArray *portArray = nil; kitConnection = nil; kitConnection = [[NSConnection alloc] initWithReceivePort:port1 sendPort:port2]; [kitConnection setRootObject:self]; // Ports switched here. portArray = [NSArray arrayWithObjects:port2, port1, nil]; [NSThread detachNewThreadSelector:@selector(connectWithPorts:) toTarget:[SoulSeekWorker class] withObject:portArray]; } - (void)setWorker:(id)newWorker { [newWorker setProtocolForProxy:@protocol(SoulSeekCommands)]; worker = (id )[newWorker retain]; return; } + (id) soulSeek { id ss = [[SoulSeek alloc] init]; [ss createWorker]; return [ss autorelease]; } - (void) connectToServer:(NSString*)server atPort:(int)port { [worker connectToServer:server atPort:port]; } - (void) startListeningAtPort:(int)port { [worker startListeningAtPort:port]; } - (void) connect { [worker connect]; } - (void) login:(NSString *)user password:(NSString *)password { [worker login:user password:password]; } @end