diff plugins/icq/chatsession.c @ 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 0a766047b4fd
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/icq/chatsession.c	Tue Nov 28 02:22:42 2000 +0000
@@ -0,0 +1,52 @@
+
+#include <stdlib.h>
+
+#include "chatsession.h"
+#include "list.h"
+
+icq_ChatSession *icq_ChatSessionNew(ICQLINK *icqlink) 
+{
+  icq_ChatSession *p=(icq_ChatSession *)malloc(sizeof(icq_ChatSession));
+
+  if (p)
+  {
+    p->remote_handle=0L;
+    p->status=0;
+    p->id=0L;
+    p->icqlink=icqlink;
+    list_insert(icqlink->icq_ChatSessions, 0, p);
+  }
+	
+  return p;
+}
+
+void icq_ChatSessionDelete(void *p)
+{
+  free(p);
+}
+
+void icq_ChatSessionClose(icq_ChatSession *p)
+{
+  list_remove(p->icqlink->icq_ChatSessions, p);
+  icq_ChatSessionDelete(p);
+}
+
+int _icq_FindChatSession(void *p, va_list data)
+{
+  DWORD uin=va_arg(data, DWORD);
+  return (((icq_ChatSession *)p)->remote_uin == uin);
+}
+
+icq_ChatSession *icq_FindChatSession(ICQLINK *icqlink, DWORD uin)
+{
+  return list_traverse(icqlink->icq_ChatSessions,
+    _icq_FindChatSession, uin);
+}
+
+void icq_ChatSessionSetStatus(icq_ChatSession *p, int status)
+{
+  p->status=status;
+  if(p->id)
+    if(p->icqlink->icq_RequestNotify)
+      (*p->icqlink->icq_RequestNotify)(p->icqlink, p->id, ICQ_NOTIFY_CHAT, status, 0);
+}