diff plugins/icq/icqevent.h @ 1309:0a766047b4fd

[gaim-migrate @ 1319] Yay, new icqlib committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Tue, 19 Dec 2000 10:08:29 +0000
parents
children 4c510ca3563f
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/icq/icqevent.h	Tue Dec 19 10:08:29 2000 +0000
@@ -0,0 +1,148 @@
+/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+
+/*
+ * $Id: icqevent.h 1319 2000-12-19 10:08:29Z warmenhoven $
+ *
+ * $Log$
+ * Revision 1.1  2000/12/19 10:08:29  warmenhoven
+ * Yay, new icqlib
+ *
+ * Revision 1.2  2000/06/15 18:54:09  bills
+ * added time attribute and handleEvent function pointer to icq_Event,
+ * renamed icq_ChatEvent to icq_ChatRequestEvent, renamed icq_FileEvent to
+ * icq_FileRequestEvent, added icq_URLEvent and related methods
+ *
+ * Revision 1.1  2000/06/15 15:27:39  bills
+ * committed for safekeeping - this code will soon replace stdpackets.c and
+ * greatly simplify tcphandle.c, as well as reducing code duplication in many
+ * places.  it provides a much more flexible framework for managing events
+ * and parsing and creating packets
+ *
+*/
+
+#ifndef _ICQEVENT_H
+#define _ICQEVENT_H
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <time.h>
+
+#include "icqpacket.h"
+#include "tcplink.h"
+#include "stdpackets.h"
+
+#define EVENT_DEBUG
+
+#define ICQ_EVENT_MESSAGE                ICQ_TCP_MESSAGE
+#define ICQ_EVENT_ACK                    ICQ_TCP_ACK
+#define ICQ_EVENT_CANCEL                 ICQ_TCP_CANCEL
+
+#define ICQ_EVENT_INCOMING               1
+#define ICQ_EVENT_OUTGOING               2
+
+typedef struct icq_Event_s {
+
+  unsigned long version;
+  unsigned long id;
+  unsigned long uin;
+
+  int type;         /* chat, file, message, url */
+  int subtype;      /* message, ack, or cancel */
+
+  int direction;  
+  time_t time;
+
+  icq_Packet *(*createPacket)(struct icq_Event_s *, icq_TCPLink *);
+  void (*handleEvent)(struct icq_Event_s *, ICQLINK *);
+
+#ifdef EVENT_DEBUG
+  const char *(*eventName)(struct icq_Event_s *);
+  const char *(*eventDump)(struct icq_Event_s *);
+#endif
+
+} icq_Event;
+
+typedef struct icq_MessageEvent_s {
+
+  icq_Event event;
+
+  char *message;  /* must be non-const for url hack */
+  char *url;      /* hack so we can use same structure for url */
+  int status;
+  int type;
+
+} icq_MessageEvent;
+
+typedef struct icq_MessageEvent_s icq_URLEvent;
+
+typedef struct icq_ChatRequestEvent_s {
+
+  icq_MessageEvent message_event;
+
+  int port;
+
+} icq_ChatRequestEvent;
+
+typedef struct icq_FileRequestEvent_s {
+
+  icq_MessageEvent message_event;
+
+  const char *filename;
+  unsigned long filesize;
+  int port;
+
+} icq_FileRequestEvent;
+
+/* generic event functions */
+void icq_EventInit(icq_Event *p, int type, int subtype, unsigned long uin,
+  int version);
+icq_Packet *icq_EventCreatePacket(icq_Event *pbase);
+void icq_EventParsePacket(icq_Event *pevent, icq_Packet *p);
+
+/* message event functions */
+icq_MessageEvent *icq_CreateMessageEvent(int subtype, unsigned long uin, 
+  const char *message);
+void icq_MessageEventInit(icq_MessageEvent *p, int type, int subtype, 
+  unsigned long uin, int msgtype, const char *message);
+icq_Packet *icq_MessageCreatePacket(icq_Event *pbase, icq_TCPLink *plink);
+void icq_MessageParsePacket(icq_Event *pbase, icq_Packet *p);
+
+/* url event functions */
+icq_URLEvent *icq_CreateURLEvent(int subtype, unsigned long uin, 
+  const char *message, const char *url);
+icq_Packet *icq_URLCreatePacket(icq_Event *pbase, icq_TCPLink *plink);
+void icq_URLParsePacket(icq_Event *pbase, icq_Packet *p);
+
+/* chat request event functions */
+icq_ChatRequestEvent *icq_ChatRequestEventNew(int subtype, 
+  unsigned long uin, const char *message, int port);
+icq_Packet *icq_ChatRequestCreatePacket(icq_Event *pbase,
+  icq_TCPLink *plink);
+void icq_ChatParsePacket(icq_Event *pbase, icq_Packet *p);
+
+/* file request event functions */
+icq_FileRequestEvent *icq_FileRequestEventNew(int subtype,
+  unsigned long uin, const char *message, const char *filename,
+  unsigned long filesize);
+icq_Packet *icq_FileRequestCreatePacket(icq_Event *pbase,
+  icq_TCPLink *plink);
+void icq_FileParsePacket(icq_Event *pbase, icq_Packet *p);
+
+/* main packet parser */
+icq_Event *icq_ParsePacket(icq_Packet *p);
+
+#ifdef EVENT_DEBUG
+const char *icq_MessageEventName(icq_Event *p);
+const char *icq_MessageEventDump(icq_Event *p);
+const char *icq_URLEventName(icq_Event *p);
+const char *icq_URLEventDump(icq_Event *p);
+const char *icq_ChatRequestEventName(icq_Event *p);
+const char *icq_ChatRequestEventDump(icq_Event *p);
+const char *icq_FileRequestEventName(icq_Event *p);
+const char *icq_FileRequestEventDump(icq_Event *p);
+const char *icq_EventDump(icq_Event *p);
+#endif
+
+#endif /* _ICQEVENT_H */