diff 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/icq/chatsession.h	Tue Nov 28 02:22:42 2000 +0000
@@ -0,0 +1,80 @@
+
+#ifndef _CHAT_SESSION_H
+#define _CHAT_SESSION_H
+
+#include "icq.h"
+#include "icqtypes.h"
+
+/* chat session statuses- request receiver */
+#define CHAT_STATUS_LISTENING    1
+#define CHAT_STATUS_CONNECTED    3
+#define CHAT_STATUS_WAIT_NAME    4
+#define CHAT_STATUS_WAIT_FONT    6
+
+/* chat session statuses- request sender */
+#define CHAT_STATUS_CONNECTING   2
+#define CHAT_STATUS_WAIT_ALLINFO 5
+
+/* once negotiation is complete, both sides enter ready state */
+#define CHAT_STATUS_READY        7
+
+/* chat session states:
+
+   accepting chat request 
+	 
+   1. remote user initiates chat by sending chat request to message listen 
+	    port
+	 2. local user accepts chat, ack packet sent back to remote user and
+	    chat listen port opened
+			* chat session created on local side with ID of ack packet
+			  LISTENING
+			* remote chat session created with ID of ack packet
+			  CONNECTING
+	 3. remote client connects to local chat listen port, sends hello and
+	    sends info packet with name and colors
+			* local chat session associated with new icq_TCPLink according to uin
+	 4.	local client sends back big info packet with name, colors, and font
+		  
+	 5. remote client sends font packet, connection is considered established
+	 
+	 sending chat request
+	 
+	 1. local user initiates chat by sending chat request to remote message
+	    listen port
+	 2. remote user accepts chat, ack packet received from remote client and
+	    remote client opens chat listen port
+	 3. local client connects to remote chat listen port, sends hello and
+	    sends info packet with name and colors
+	 4. remote client sends back big info packet with name, colors, and font
+	 5. local client sends font packet, connection is considered established
+
+   1. icq_RecvChatRequest - provides session ID (same as packet sequence)
+	 2. icq_SendChatAck - pass session ID
+	     ICQ_NOTIFY_CONNECTED
+			 ICQ_NOTIFY_SENT
+			 ICQ_NOTIFY_CHAT, CHAT_STATUS_LISTENING
+   3. ICQ_NOTIFY_CHAT, CHAT_STATUS_WAIT_NAME
+	 4. ICQ_NOTIFY_CHAT, CHAT_STATUS_WAIT_FONT
+	 5. ICQ_NOTIFY_CHAT, CHAT_STATUS_CONNECTED
+	    ICQ_NOTIFY_CHATDATA, ....
+			ICQ_NOTIFY_SUCCESS
+*/
+
+typedef struct icq_ChatSession_s {
+
+  DWORD id;
+  int status;
+  ICQLINK *icqlink;
+
+  DWORD remote_uin;
+  char *remote_handle;
+
+} icq_ChatSession;
+
+icq_ChatSession *icq_ChatSessionNew(ICQLINK *);
+void icq_ChatSessionDelete(void *);
+void icq_ChatSessionClose(icq_ChatSession *);
+void icq_ChatSessionSetStatus(icq_ChatSession *, int);
+icq_ChatSession *icq_FindChatSession(ICQLINK *, DWORD);
+
+#endif