Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #import "AsyncSocket.h"
- #import "TRPacket.h"
- #import "TRUser.h"
- typedef enum {
- TRConnectionDisconnectedStatus = 'disC',
- TRConnectionServerDisconnectedStatus = 'sdiC',
- TRConnectionConnectingStatus = 'Cnct',
- TRConnectionConnectedStatus = 'Cncd',
- TRConnectionRegisteredStatus = 'Rgst',
- TRConnectionSuspendedStatus = 'Susp'
- } TRConnectionStatus;
- extern const NSString *kTRConnectionSettingsServer;
- extern const NSString *kTRConnectionSettingsPort;
- extern const NSString *kTRConnectionSettingsNickname;
- extern const NSString *kTRConnectionSettingsAlternateNicknames;
- extern const NSString *kTRConnectionSettingsNicknamePassword;
- extern const NSString *kTRConnectionSettingsUsername;
- extern const NSString *kTRConnectionSettingsPassword;
- extern const NSString *kTRConnectionSettingsRealname;
- extern const NSString *kTRConnectionSettingsDelegate;
- @interface TRConnection : NSObject {
- AsyncSocket *_socket;
- TRConnectionStatus _status;
- NSString *_server;
- UInt16 _port;
- NSString *_preferredNickname;
- NSString *_nickname;
- NSArray *_alternateNicknames;
- NSString *_nicknamePassword;
- NSString *_username;
- NSString *_password;
- NSString *_realname;
- NSStringEncoding _encoding;
- TRUser *_localUser;
- id _delegate;
- NSThread *_connectionThread;
- NSConditionLock *_threadWaitLock;
- NSMutableArray *_sendQueue;
- BOOL _sendQueueProcessing;
- NSMutableDictionary *_knownUsers;
- }
- #pragma mark Initializing
- - (id)init;
- - (id)initWithDictionary:(NSDictionary*)dict;
- + (id)connection;
- + (id)connectionWithDictionary:(NSDictionary*)dict;
- #pragma mark Getting
- - (TRConnectionStatus)status;
- - (NSString*)server;
- - (UInt16)port;
- - (NSString*)preferredNickname;
- - (NSString*)nickname;
- - (NSArray*)alternateNicknames;
- - (NSString*)nicknamePassword;
- - (NSString*)username;
- - (NSString*)password;
- - (NSString*)realname;
- - (NSStringEncoding)encoding;
- - (TRUser*)localUser;
- - (id)delegate;
- #pragma mark Setting
- - (void)setServer:(NSString*)server;
- - (void)setPort:(UInt16)port;
- - (void)setNickname:(NSString*)nickname;
- - (void)setAlternateNicknames:(NSArray*)alternateNicknames;
- - (void)setNicknamePassword:(NSString*)nicknamePassword;
- - (void)setUsername:(NSString*)username;
- - (void)setPassword:(NSString*)password;
- - (void)setRealname:(NSString*)realname;
- - (void)setEncoding:(NSStringEncoding)encoding;
- - (void)setDelegate:(id)delegate;
- #pragma mark Connecting & Disconnecting
- - (void)connect;
- - (void)disconnect;
- #pragma mark Sending
- - (void)sendRawMessage:(id)raw;
- - (void)sendRawMessage:(id)raw immediately:(BOOL)now;
- - (void)sendRawMessageWithFormat:(NSString*)format, ...;
- - (void)sendRawMessageImmediatelyWithFormat:(NSString*)format, ...;
- - (void)sendRawMessageWithComponents:(id)firstComponent, ...;
- - (void)sendRawMessageImmediatelyWithComponents:(id)firstComponent, ...;
- - (void)sendPacket:(TRPacket*)packet;
- - (void)sendPacket:(TRPacket*)packet immediately:(BOOL)now;
- #pragma mark Users
- - (NSSet*)knownUsers;
- - (TRUser*)userWithIdentifier:(NSString*)identifier;
- - (void)updateUserInPacket:(TRPacket*)packet;
- @end
- #pragma mark Private Communication Methods
- @interface TRConnection (TRConnectionCommunicationMethods)
- - (void)_runLoop;
- - (void)_connect;
- - (void)_setStatus:(TRConnectionStatus)status;
- - (void)_writeDataToServer:(id)raw;
- - (void)_startSendQueue;
- - (void)_stopSendQueue;
- - (void)_sendQueue;
- @end
- #pragma mark Delegate Methods
- @interface NSObject (TRConnectionDelegateMethods)
- // Connection status changes
- - (void)connectionWillConnect:(TRConnection*)connection;
- - (void)connectionDidConnect:(TRConnection*)connection;
- - (void)connectionDidRegister:(TRConnection*)connection;
- // Notices, MOTD etc.
- - (void)connection:(TRConnection*)connection didRecieveNotice:(NSData*)msg fromUser:(TRUser*)user;
- @end
Add Comment
Please, Sign In to add comment