comparison plugins/icq/chatsession.h @ 1152:201ec77f3a60

[gaim-migrate @ 1162] icq. whoop de doo committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Tue, 28 Nov 2000 02:22:42 +0000
parents
children 4c510ca3563f
comparison
equal deleted inserted replaced
1151:428372cc1e39 1152:201ec77f3a60
1
2 #ifndef _CHAT_SESSION_H
3 #define _CHAT_SESSION_H
4
5 #include "icq.h"
6 #include "icqtypes.h"
7
8 /* chat session statuses- request receiver */
9 #define CHAT_STATUS_LISTENING 1
10 #define CHAT_STATUS_CONNECTED 3
11 #define CHAT_STATUS_WAIT_NAME 4
12 #define CHAT_STATUS_WAIT_FONT 6
13
14 /* chat session statuses- request sender */
15 #define CHAT_STATUS_CONNECTING 2
16 #define CHAT_STATUS_WAIT_ALLINFO 5
17
18 /* once negotiation is complete, both sides enter ready state */
19 #define CHAT_STATUS_READY 7
20
21 /* chat session states:
22
23 accepting chat request
24
25 1. remote user initiates chat by sending chat request to message listen
26 port
27 2. local user accepts chat, ack packet sent back to remote user and
28 chat listen port opened
29 * chat session created on local side with ID of ack packet
30 LISTENING
31 * remote chat session created with ID of ack packet
32 CONNECTING
33 3. remote client connects to local chat listen port, sends hello and
34 sends info packet with name and colors
35 * local chat session associated with new icq_TCPLink according to uin
36 4. local client sends back big info packet with name, colors, and font
37
38 5. remote client sends font packet, connection is considered established
39
40 sending chat request
41
42 1. local user initiates chat by sending chat request to remote message
43 listen port
44 2. remote user accepts chat, ack packet received from remote client and
45 remote client opens chat listen port
46 3. local client connects to remote chat listen port, sends hello and
47 sends info packet with name and colors
48 4. remote client sends back big info packet with name, colors, and font
49 5. local client sends font packet, connection is considered established
50
51 1. icq_RecvChatRequest - provides session ID (same as packet sequence)
52 2. icq_SendChatAck - pass session ID
53 ICQ_NOTIFY_CONNECTED
54 ICQ_NOTIFY_SENT
55 ICQ_NOTIFY_CHAT, CHAT_STATUS_LISTENING
56 3. ICQ_NOTIFY_CHAT, CHAT_STATUS_WAIT_NAME
57 4. ICQ_NOTIFY_CHAT, CHAT_STATUS_WAIT_FONT
58 5. ICQ_NOTIFY_CHAT, CHAT_STATUS_CONNECTED
59 ICQ_NOTIFY_CHATDATA, ....
60 ICQ_NOTIFY_SUCCESS
61 */
62
63 typedef struct icq_ChatSession_s {
64
65 DWORD id;
66 int status;
67 ICQLINK *icqlink;
68
69 DWORD remote_uin;
70 char *remote_handle;
71
72 } icq_ChatSession;
73
74 icq_ChatSession *icq_ChatSessionNew(ICQLINK *);
75 void icq_ChatSessionDelete(void *);
76 void icq_ChatSessionClose(icq_ChatSession *);
77 void icq_ChatSessionSetStatus(icq_ChatSession *, int);
78 icq_ChatSession *icq_FindChatSession(ICQLINK *, DWORD);
79
80 #endif