2086
|
1 /* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
2
|
|
3 /*
|
|
4 * $Id: chatsession.h 2096 2001-07-31 01:00:39Z warmenhoven $
|
|
5 *
|
|
6 * Copyright (C) 1998-2001, Denis V. Dmitrienko <denis@null.net> and
|
|
7 * Bill Soudan <soudan@kde.org>
|
|
8 *
|
|
9 * This program is free software; you can redistribute it and/or modify
|
|
10 * it under the terms of the GNU General Public License as published by
|
|
11 * the Free Software Foundation; either version 2 of the License, or
|
|
12 * (at your option) any later version.
|
|
13 *
|
|
14 * This program is distributed in the hope that it will be useful,
|
|
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
17 * GNU General Public License for more details.
|
|
18 *
|
|
19 * You should have received a copy of the GNU General Public License
|
|
20 * along with this program; if not, write to the Free Software
|
|
21 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
22 *
|
|
23 */
|
|
24
|
|
25 #ifndef _CHAT_SESSION_H
|
|
26 #define _CHAT_SESSION_H
|
|
27
|
|
28 #include "icq.h"
|
|
29 #include "icqtypes.h"
|
|
30
|
|
31 /* chat session states:
|
|
32
|
|
33 accepting chat request
|
|
34
|
|
35 1. remote user initiates chat by sending chat request to message listen
|
|
36 port
|
|
37 2. local user accepts chat, ack packet sent back to remote user and
|
|
38 chat listen port opened
|
|
39 * chat session created on local side with ID of ack packet
|
|
40 LISTENING
|
|
41 * remote chat session created with ID of ack packet
|
|
42 CONNECTING
|
|
43 3. remote client connects to local chat listen port, sends hello and
|
|
44 sends info packet with name and colors
|
|
45 * local chat session associated with new icq_TCPLink according to uin
|
|
46 4. local client sends back big info packet with name, colors, and font
|
|
47
|
|
48 5. remote client sends font packet, connection is considered established
|
|
49
|
|
50 sending chat request
|
|
51
|
|
52 1. local user initiates chat by sending chat request to remote message
|
|
53 listen port
|
|
54 2. remote user accepts chat, ack packet received from remote client and
|
|
55 remote client opens chat listen port
|
|
56 3. local client connects to remote chat listen port, sends hello and
|
|
57 sends info packet with name and colors
|
|
58 4. remote client sends back big info packet with name, colors, and font
|
|
59 5. local client sends font packet, connection is considered established
|
|
60
|
|
61 1. icq_RecvChatRequest - provides session ID (same as packet sequence)
|
|
62 2. icq_SendChatAck - pass session ID
|
|
63 ICQ_NOTIFY_CONNECTED
|
|
64 ICQ_NOTIFY_SENT
|
|
65 ICQ_NOTIFY_CHAT, CHAT_STATUS_LISTENING
|
|
66 3. ICQ_NOTIFY_CHAT, CHAT_STATUS_WAIT_NAME
|
|
67 4. ICQ_NOTIFY_CHAT, CHAT_STATUS_WAIT_FONT
|
|
68 5. ICQ_NOTIFY_CHAT, CHAT_STATUS_CONNECTED
|
|
69 ICQ_NOTIFY_CHATDATA, ....
|
|
70 ICQ_NOTIFY_SUCCESS
|
|
71 */
|
|
72
|
|
73 icq_ChatSession *icq_ChatSessionNew(icq_Link *);
|
|
74 void icq_ChatSessionDelete(void *);
|
|
75 void icq_ChatSessionSetStatus(icq_ChatSession *, int);
|
|
76 icq_ChatSession *icq_FindChatSession(icq_Link *, DWORD);
|
|
77
|
|
78 #endif
|