• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /macosx-10.10.1/pyobjc-45/pyobjc/pyobjc-core-2.5.1/Examples/ApplicationPlugins/Colloqui/Colloquy Plugin SDK/Headers/
1#import <Foundation/NSObject.h>
2#import <Foundation/NSString.h>
3
4typedef enum {
5	MVChatConnectionDisconnectedStatus = 'disC',
6	MVChatConnectionServerDisconnectedStatus = 'sdsC',
7	MVChatConnectionConnectingStatus = 'conG',
8	MVChatConnectionConnectedStatus = 'conD',
9	MVChatConnectionSuspendedStatus = 'susP'
10} MVChatConnectionStatus;
11
12typedef enum {
13	MVChatConnectionNoProxy = 'nonE',
14	MVChatConnectionHTTPProxy = 'httP',
15	MVChatConnectionHTTPSProxy = 'htpS',
16	MVChatConnectionSOCKSProxy = 'sokS'
17} MVChatConnectionProxy;
18
19typedef enum {
20	MVChatRoomNoModes = 0x0,
21	MVChatRoomPrivateMode = 0x1,
22	MVChatRoomSecretMode = 0x2,
23	MVChatRoomInviteOnlyMode = 0x4,
24	MVChatRoomModeratedMode = 0x8,
25	MVChatRoomSetTopicOperatorOnlyMode = 0x10,
26	MVChatRoomNoOutsideMessagesMode = 0x20,
27	MVChatRoomPasswordRequiredMode = 0x40,
28	MVChatRoomMemberLimitMode = 0x80
29} MVChatRoomMode;
30
31typedef enum {
32	MVChatMemberNoModes = 0x0,
33	MVChatMemberOperatorMode = 0x1,
34	MVChatMemberHalfOperatorMode = 0x2,
35	MVChatMemberVoiceMode = 0x4
36} MVChatMemberMode;
37
38typedef enum {
39	MVChatNoError,
40	MVChatConnectingError,
41	MVChatNoMatchError,
42	MVChatPacketError,
43	MVChatBadUserPasswordError,
44	MVChatSequenceError,
45	MVChatFrameTypeError,
46	MVChatPacketSizeError,
47	MVChatServerError,
48	MVChatUnknownError,
49	MVChatBlockedError,
50	MVChatWiredPacketError,
51	MVChatCallbackNumberError,
52	MVChatBadTargetError,
53	MVChatNotFoundError,
54	MVChatDisconnectError,
55	MVChatSocketError,
56	MVChatDNSError,
57	MVChatVersionError,
58	MVChatUserUnavailableError,
59	MVChatUserInfoUnavailableError,
60	MVChatTooFastError,
61	MVChatRoomUnavailableError,
62	MVChatIncomingError,
63	MVChatUserDisconnectError,
64	MVChatInvalidFormatError,
65	MVChatIdleFastError,
66	MVChatBadRoomError,
67	MVChatBadMessageError,
68	MVChatBadPrototypeError,
69	MVChatNotConnectedError,
70	MVChatBadConnectionError,
71	MVChatNoPermissionsError,
72	MVChatNoChangePasswordError,
73	MVChatDuplicateUserError,
74	MVChatDuplicateRoomError,
75	MVChatIOError,
76	MVChatBadHandleError,
77	MVChatTimeoutError,
78	MVChatNotDoneError
79} MVChatError;
80
81@class NSTimer;
82@class NSString;
83@class NSArray;
84@class NSMutableArray;
85@class NSMutableDictionary;
86@class NSDictionary;
87@class NSAttributedString;
88@class MVUploadFileTransfer;
89@class NSAttributedString;
90@class NSMutableDictionary;
91@class NSDate;
92@class MVUploadFileTransfer;
93
94extern NSString *MVChatConnectionGotRawMessageNotification;
95
96extern NSString *MVChatConnectionWillConnectNotification;
97extern NSString *MVChatConnectionDidConnectNotification;
98extern NSString *MVChatConnectionDidNotConnectNotification;
99extern NSString *MVChatConnectionWillDisconnectNotification;
100extern NSString *MVChatConnectionDidDisconnectNotification;
101extern NSString *MVChatConnectionErrorNotification;
102
103extern NSString *MVChatConnectionNeedNicknamePasswordNotification;
104
105extern NSString *MVChatConnectionGotPrivateMessageNotification;
106
107extern NSString *MVChatConnectionBuddyIsOnlineNotification;
108extern NSString *MVChatConnectionBuddyIsOfflineNotification;
109extern NSString *MVChatConnectionBuddyIsAwayNotification;
110extern NSString *MVChatConnectionBuddyIsUnawayNotification;
111extern NSString *MVChatConnectionBuddyIsIdleNotification;
112
113extern NSString *MVChatConnectionSelfAwayStatusNotification;
114
115extern NSString *MVChatConnectionGotUserWhoisNotification;
116extern NSString *MVChatConnectionGotUserServerNotification;
117extern NSString *MVChatConnectionGotUserChannelsNotification;
118extern NSString *MVChatConnectionGotUserOperatorNotification;
119extern NSString *MVChatConnectionGotUserIdleNotification;
120extern NSString *MVChatConnectionGotUserWhoisCompleteNotification;
121
122extern NSString *MVChatConnectionGotRoomInfoNotification;
123
124extern NSString *MVChatConnectionGotJoinWhoListNotification;
125extern NSString *MVChatConnectionRoomExistingMemberListNotification;
126extern NSString *MVChatConnectionJoinedRoomNotification;
127extern NSString *MVChatConnectionLeftRoomNotification;
128extern NSString *MVChatConnectionUserJoinedRoomNotification;
129extern NSString *MVChatConnectionUserLeftRoomNotification;
130extern NSString *MVChatConnectionUserQuitNotification;
131extern NSString *MVChatConnectionUserNicknameChangedNotification;
132extern NSString *MVChatConnectionUserKickedFromRoomNotification;
133extern NSString *MVChatConnectionUserAwayStatusNotification;
134extern NSString *MVChatConnectionGotMemberModeNotification;
135extern NSString *MVChatConnectionGotRoomModeNotification;
136extern NSString *MVChatConnectionGotRoomMessageNotification;
137extern NSString *MVChatConnectionGotRoomTopicNotification;
138
139extern NSString *MVChatConnectionNewBanNotification;
140extern NSString *MVChatConnectionRemovedBanNotification;
141extern NSString *MVChatConnectionBanlistReceivedNotification;
142
143extern NSString *MVChatConnectionKickedFromRoomNotification;
144extern NSString *MVChatConnectionInvitedToRoomNotification;
145
146extern NSString *MVChatConnectionNicknameAcceptedNotification;
147extern NSString *MVChatConnectionNicknameRejectedNotification;
148
149extern NSString *MVChatConnectionSubcodeRequestNotification;
150extern NSString *MVChatConnectionSubcodeReplyNotification;
151
152#pragma mark -
153
154@interface MVChatConnection : NSObject {
155@private
156	NSTimer *_reconnectTimer;
157	NSString *_npassword;
158	NSString *_proxyUsername;
159	NSString *_proxyPassword;
160	MVChatConnectionStatus _status;
161	MVChatConnectionProxy _proxy;
162	NSStringEncoding _encoding;
163
164	void *_chatConnection /* SERVER_REC */;
165	void *_chatConnectionSettings /* SERVER_CONNECT_REC */;
166	NSMutableDictionary *_roomsCache;
167	NSDate *_lastConnectAttempt;
168	NSDate *_cachedDate;
169	NSAttributedString *_awayMessage;
170	NSArray *_alternateNicks;
171
172	BOOL _nickIdentified;
173	unsigned int _nextAltNickIndex;
174	unsigned int _sleepNotifier; /* io_object_t */
175	unsigned int _powerConnection; /* io_connect_t */
176}
177- (id) initWithURL:(NSURL *) url;
178- (id) initWithServer:(NSString *) server port:(unsigned short) port user:(NSString *) nickname;
179
180- (void) connect;
181- (void) connectToServer:(NSString *) server onPort:(unsigned short) port asUser:(NSString *) nickname;
182- (void) disconnect;
183- (void) disconnectWithReason:(NSAttributedString *) reason;
184
185#pragma mark -
186
187- (NSURL *) url;
188
189#pragma mark -
190
191- (void) setEncoding:(NSStringEncoding) encoding;
192- (NSStringEncoding) encoding;
193- (NSString *) stringWithEncodedBytes:(const char *) bytes;
194- (const char *) encodedBytesWithString:(NSString *) string;
195
196#pragma mark -
197
198- (void) setRealName:(NSString *) name;
199- (NSString *) realName;
200
201- (void) setNickname:(NSString *) nickname;
202- (NSString *) nickname;
203- (NSString *) preferredNickname;
204
205- (void) setAlternateNicknames:(NSArray *) nicknames;
206- (NSArray *) alternateNicknames;
207- (NSString *) nextAlternateNickname;
208
209- (void) setNicknamePassword:(NSString *) password;
210- (NSString *) nicknamePassword;
211
212- (void) setPassword:(NSString *) password;
213- (NSString *) password;
214
215- (void) setUsername:(NSString *) username;
216- (NSString *) username;
217
218- (void) setServer:(NSString *) server;
219- (NSString *) server;
220
221- (void) setServerPort:(unsigned short) port;
222- (unsigned short) serverPort;
223
224- (void) setProxyUsername:(NSString *) username;
225- (NSString *) proxyUsername;
226
227- (void) setProxyPassword:(NSString *) password;
228- (NSString *) proxyPassword;
229
230- (void) setSecure:(BOOL) ssl;
231- (BOOL) isSecure;
232
233#pragma mark -
234
235- (void) setProxyType:(MVChatConnectionProxy) type;
236- (MVChatConnectionProxy) proxyType;
237
238- (void) setProxyServer:(NSString *) address;
239- (NSString *) proxyServer;
240
241- (void) setProxyServerPort:(unsigned short) port;
242- (unsigned short) proxyServerPort;
243
244#pragma mark -
245
246- (void) sendMessage:(NSAttributedString *) message withEncoding:(NSStringEncoding) encoding toUser:(NSString *) user asAction:(BOOL) action;
247- (void) sendMessage:(NSAttributedString *) message withEncoding:(NSStringEncoding) encoding toChatRoom:(NSString *) room asAction:(BOOL) action;
248
249- (void) sendRawMessage:(NSString *) raw;
250- (void) sendRawMessage:(NSString *) raw immediately:(BOOL) now;
251- (void) sendRawMessageWithFormat:(NSString *) format, ...;
252
253- (MVUploadFileTransfer *) sendFile:(NSString *) path toUser:(NSString *) user;
254- (MVUploadFileTransfer *) sendFile:(NSString *) path toUser:(NSString *) user passively:(BOOL) passive;
255
256#pragma mark -
257
258- (void) sendSubcodeRequest:(NSString *) command toUser:(NSString *) user withArguments:(NSString *) arguments;
259- (void) sendSubcodeReply:(NSString *) command toUser:(NSString *) user withArguments:(NSString *) arguments;
260
261#pragma mark -
262
263- (void) joinChatRooms:(NSArray *) rooms;
264- (void) joinChatRoom:(NSString *) room;
265- (void) partChatRoom:(NSString *) room;
266
267#pragma mark -
268
269- (void) setTopic:(NSAttributedString *) topic withEncoding:(NSStringEncoding) encoding forRoom:(NSString *) room;
270
271- (void) promoteMember:(NSString *) member inRoom:(NSString *) room;
272- (void) demoteMember:(NSString *) member inRoom:(NSString *) room;
273- (void) halfopMember:(NSString *) member inRoom:(NSString *) room;
274- (void) dehalfopMember:(NSString *) member inRoom:(NSString *) room;
275- (void) voiceMember:(NSString *) member inRoom:(NSString *) room;
276- (void) devoiceMember:(NSString *) member inRoom:(NSString *) room;
277- (void) kickMember:(NSString *) member inRoom:(NSString *) room forReason:(NSString *) reason;
278- (void) banMember:(NSString *) member inRoom:(NSString *) room;
279- (void) unbanMember:(NSString *) member inRoom:(NSString *) room;
280
281#pragma mark -
282
283- (void) addUserToNotificationList:(NSString *) user;
284- (void) removeUserFromNotificationList:(NSString *) user;
285
286- (void) fetchInformationForUser:(NSString *) user withPriority:(BOOL) priority fromLocalServer:(BOOL) localOnly;
287
288#pragma mark -
289
290- (void) fetchRoomList;
291- (void) fetchRoomListWithRooms:(NSArray *) rooms;
292- (void) stopFetchingRoomList;
293- (NSMutableDictionary *) roomListResults;
294
295#pragma mark -
296
297- (NSAttributedString *) awayStatusMessage;
298- (void) setAwayStatusWithMessage:(NSAttributedString *) message;
299- (void) clearAwayStatus;
300
301#pragma mark -
302
303- (BOOL) isConnected;
304- (MVChatConnectionStatus) status;
305- (BOOL) waitingToReconnect;
306- (unsigned int) lag;
307@end
308
309#pragma mark -
310
311@interface MVChatConnection (MVChatConnectionScripting)
312- (NSNumber *) uniqueIdentifier;
313@end
314
315#pragma mark -
316
317@interface NSObject (MVChatPluginConnectionSupport)
318- (BOOL) processSubcodeRequest:(NSString *) command withArguments:(NSString *) arguments fromUser:(NSString *) user forConnection:(MVChatConnection *) connection;
319- (BOOL) processSubcodeReply:(NSString *) command withArguments:(NSString *) arguments fromUser:(NSString *) user forConnection:(MVChatConnection *) connection;
320
321- (void) connected:(MVChatConnection *) connection;
322- (void) disconnecting:(MVChatConnection *) connection;
323@end