Guest User

Untitled

a guest
Mar 8th, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.78 KB | None | 0 0
  1. #import "AsyncSocket.h"
  2. #import "TRPacket.h"
  3. #import "TRUser.h"
  4.  
  5. typedef enum {
  6. TRConnectionDisconnectedStatus = 'disC',
  7. TRConnectionServerDisconnectedStatus = 'sdiC',
  8. TRConnectionConnectingStatus = 'Cnct',
  9. TRConnectionConnectedStatus = 'Cncd',
  10. TRConnectionRegisteredStatus = 'Rgst',
  11. TRConnectionSuspendedStatus = 'Susp'
  12. } TRConnectionStatus;
  13.  
  14. extern const NSString *kTRConnectionSettingsServer;
  15. extern const NSString *kTRConnectionSettingsPort;
  16. extern const NSString *kTRConnectionSettingsNickname;
  17. extern const NSString *kTRConnectionSettingsAlternateNicknames;
  18. extern const NSString *kTRConnectionSettingsNicknamePassword;
  19. extern const NSString *kTRConnectionSettingsUsername;
  20. extern const NSString *kTRConnectionSettingsPassword;
  21. extern const NSString *kTRConnectionSettingsRealname;
  22. extern const NSString *kTRConnectionSettingsDelegate;
  23.  
  24. @interface TRConnection : NSObject {
  25. AsyncSocket *_socket;
  26. TRConnectionStatus _status;
  27.  
  28. NSString *_server;
  29. UInt16 _port;
  30. NSString *_preferredNickname;
  31. NSString *_nickname;
  32. NSArray *_alternateNicknames;
  33. NSString *_nicknamePassword;
  34. NSString *_username;
  35. NSString *_password;
  36. NSString *_realname;
  37. NSStringEncoding _encoding;
  38. TRUser *_localUser;
  39. id _delegate;
  40.  
  41. NSThread *_connectionThread;
  42. NSConditionLock *_threadWaitLock;
  43.  
  44. NSMutableArray *_sendQueue;
  45. BOOL _sendQueueProcessing;
  46.  
  47. NSMutableDictionary *_knownUsers;
  48. }
  49.  
  50. #pragma mark Initializing
  51.  
  52. - (id)init;
  53. - (id)initWithDictionary:(NSDictionary*)dict;
  54. + (id)connection;
  55. + (id)connectionWithDictionary:(NSDictionary*)dict;
  56.  
  57. #pragma mark Getting
  58.  
  59. - (TRConnectionStatus)status;
  60. - (NSString*)server;
  61. - (UInt16)port;
  62. - (NSString*)preferredNickname;
  63. - (NSString*)nickname;
  64. - (NSArray*)alternateNicknames;
  65. - (NSString*)nicknamePassword;
  66. - (NSString*)username;
  67. - (NSString*)password;
  68. - (NSString*)realname;
  69. - (NSStringEncoding)encoding;
  70. - (TRUser*)localUser;
  71. - (id)delegate;
  72.  
  73. #pragma mark Setting
  74.  
  75. - (void)setServer:(NSString*)server;
  76. - (void)setPort:(UInt16)port;
  77. - (void)setNickname:(NSString*)nickname;
  78. - (void)setAlternateNicknames:(NSArray*)alternateNicknames;
  79. - (void)setNicknamePassword:(NSString*)nicknamePassword;
  80. - (void)setUsername:(NSString*)username;
  81. - (void)setPassword:(NSString*)password;
  82. - (void)setRealname:(NSString*)realname;
  83. - (void)setEncoding:(NSStringEncoding)encoding;
  84. - (void)setDelegate:(id)delegate;
  85.  
  86. #pragma mark Connecting & Disconnecting
  87.  
  88. - (void)connect;
  89. - (void)disconnect;
  90.  
  91. #pragma mark Sending
  92.  
  93. - (void)sendRawMessage:(id)raw;
  94. - (void)sendRawMessage:(id)raw immediately:(BOOL)now;
  95. - (void)sendRawMessageWithFormat:(NSString*)format, ...;
  96. - (void)sendRawMessageImmediatelyWithFormat:(NSString*)format, ...;
  97. - (void)sendRawMessageWithComponents:(id)firstComponent, ...;
  98. - (void)sendRawMessageImmediatelyWithComponents:(id)firstComponent, ...;
  99. - (void)sendPacket:(TRPacket*)packet;
  100. - (void)sendPacket:(TRPacket*)packet immediately:(BOOL)now;
  101.  
  102. #pragma mark Users
  103.  
  104. - (NSSet*)knownUsers;
  105. - (TRUser*)userWithIdentifier:(NSString*)identifier;
  106. - (void)updateUserInPacket:(TRPacket*)packet;
  107.  
  108. @end
  109.  
  110. #pragma mark Private Communication Methods
  111.  
  112. @interface TRConnection (TRConnectionCommunicationMethods)
  113. - (void)_runLoop;
  114. - (void)_connect;
  115. - (void)_setStatus:(TRConnectionStatus)status;
  116. - (void)_writeDataToServer:(id)raw;
  117. - (void)_startSendQueue;
  118. - (void)_stopSendQueue;
  119. - (void)_sendQueue;
  120. @end
  121.  
  122. #pragma mark Delegate Methods
  123.  
  124. @interface NSObject (TRConnectionDelegateMethods)
  125. // Connection status changes
  126. - (void)connectionWillConnect:(TRConnection*)connection;
  127. - (void)connectionDidConnect:(TRConnection*)connection;
  128. - (void)connectionDidRegister:(TRConnection*)connection;
  129. // Notices, MOTD etc.
  130. - (void)connection:(TRConnection*)connection didRecieveNotice:(NSData*)msg fromUser:(TRUser*)user;
  131. @end
Add Comment
Please, Sign In to add comment