diff src/protocols/novell/nmevent.h @ 8675:9ee2542d1104

[gaim-migrate @ 9428] A GroupWise plugin from Novell. committer: Tailor Script <tailor@pidgin.im>
author Sean Egan <seanegan@gmail.com>
date Sat, 17 Apr 2004 13:55:28 +0000
parents
children 046dd8ef2920
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/protocols/novell/nmevent.h	Sat Apr 17 13:55:28 2004 +0000
@@ -0,0 +1,181 @@
+/*
+ * nmevent.h
+ *
+ * Copyright © 2004 Unpublished Work of Novell, Inc. All Rights Reserved.
+ *
+ * THIS WORK IS AN UNPUBLISHED WORK OF NOVELL, INC. NO PART OF THIS WORK MAY BE
+ * USED, PRACTICED, PERFORMED, COPIED, DISTRIBUTED, REVISED, MODIFIED,
+ * TRANSLATED, ABRIDGED, CONDENSED, EXPANDED, COLLECTED, COMPILED, LINKED,
+ * RECAST, TRANSFORMED OR ADAPTED WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL,
+ * INC. ANY USE OR EXPLOITATION OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT
+ * THE PERPETRATOR TO CRIMINAL AND CIVIL LIABILITY.
+ * 
+ * AS BETWEEN [GAIM] AND NOVELL, NOVELL GRANTS [GAIM] THE RIGHT TO REPUBLISH
+ * THIS WORK UNDER THE GPL (GNU GENERAL PUBLIC LICENSE) WITH ALL RIGHTS AND
+ * LICENSES THEREUNDER.  IF YOU HAVE RECEIVED THIS WORK DIRECTLY OR INDIRECTLY
+ * FROM [GAIM] AS PART OF SUCH A REPUBLICATION, YOU HAVE ALL RIGHTS AND LICENSES
+ * GRANTED BY [GAIM] UNDER THE GPL.  IN CONNECTION WITH SUCH A REPUBLICATION, IF
+ * ANYTHING IN THIS NOTICE CONFLICTS WITH THE TERMS OF THE GPL, SUCH TERMS
+ * PREVAIL.
+ *
+ */
+
+#ifndef __NM_EVENT_H__
+#define __NM_EVENT_H__
+
+typedef struct _NMEvent NMEvent;
+
+#include "nmuser.h"
+
+/**
+ * Defines for the event types 
+ */
+#define	NMEVT_INVALID_RECIPIENT			101
+#define	NMEVT_UNDELIVERABLE_STATUS		102
+#define	NMEVT_STATUS_CHANGE				103
+#define	NMEVT_CONTACT_ADD				104
+#define	NMEVT_CONFERENCE_CLOSED			105
+#define	NMEVT_CONFERENCE_JOINED			106
+#define	NMEVT_CONFERENCE_LEFT			107
+#define	NMEVT_RECEIVE_MESSAGE			108
+#define	NMEVT_RECEIVE_FILE				109
+#define NMEVT_USER_TYPING				112
+#define NMEVT_USER_NOT_TYPING			113
+#define NMEVT_USER_DISCONNECT			114
+#define NMEVT_SERVER_DISCONNECT			115
+#define NMEVT_CONFERENCE_RENAME			116
+#define NMEVT_CONFERENCE_INVITE			117
+#define NMEVT_CONFERENCE_INVITE_NOTIFY	118
+#define NMEVT_CONFERENCE_REJECT			119
+#define NMEVT_RECEIVE_AUTOREPLY			121
+#define NMEVT_START						NMEVT_INVALID_RECIPIENT
+#define NMEVT_STOP						NMEVT_RECEIVE_AUTOREPLY
+
+/**
+ * Process the event. The event will be read, an NMEvent will
+ * be created, and the event callback will be called.
+ *
+ * @param user		The main user structure.
+ * @param type		The type of the event to read.
+ *
+ * @return			NM_OK on success
+ */
+NMERR_T nm_process_event(NMUser * user, int type);
+
+/**
+ * Creates an NMEvent
+ *
+ * The NMEvent should be released by calling
+ * nm_release_event.
+ *
+ * @param type		The event type, see defines above.
+ * @param source	The DN of the event source.
+ * @param gmt		The time that the event occurred.
+ *
+ * @return 			The new NMEvent
+ */
+NMEvent *nm_create_event(int type, const char *source, guint32 gmt);
+
+/**
+ * Releases an NMEvent
+ *
+ * @param event		The event to release
+ *
+ */
+void nm_release_event(NMEvent * event);
+
+/**
+ * Sets the conference object for the given event.
+ *
+ * @param event			The event.
+ * @param conference	The conference to associate with the event.
+ *
+ */
+void nm_event_set_conference(NMEvent * event, NMConference * conference);
+
+/**
+ * Returns the conference object associated with the given event. This should not
+ * be released. If it needs to be kept around call nm_conference_addref().
+ *
+ * @param event	The event.
+ *
+ * @return		The conference associated with the event, or NULL
+ *				if no conference has been set for the event.
+ */
+NMConference *nm_event_get_conference(NMEvent * event);
+
+/**
+ * Sets the NMUserRecord object for the given event.
+ * The user record represents the event source.
+ *
+ * @param event			The event.
+ * @param user_record	The user record to associate with the event.
+ *
+ */
+void nm_event_set_user_record(NMEvent * event, NMUserRecord * user_record);
+
+/**
+ * Returns the NMUserRecord object associated with the given event. 
+ * The user record represents the event source. This should not
+ * be released. If it needs to be kept around call
+ * nm_user_record_add_ref().
+ *
+ * @param event	The event.
+ *
+ * @return		The user record associated with the event, or NULL
+ *				if no user record has been set for the event.
+ */
+NMUserRecord *nm_event_get_user_record(NMEvent * event);
+
+/**
+ * Sets the text to associate with the given event.
+ *
+ * @param event	The event.
+ * @param text	The text to associate with the event.
+ *
+ */
+void nm_event_set_text(NMEvent * event, const char *text);
+
+/**
+ * Returns the text associated with the given event.
+ *
+ * @param event	The event.
+ *
+ * @return		The text associated with the event, or NULL
+ *				if no text has been set for the event.
+ */
+const char *nm_event_get_text(NMEvent * event);
+
+/**
+ * Returns the source of the event (this will be the full DN of the
+ * event source).
+ *
+ * @param event	The event.
+ *
+ * @return		The full DN of the event's source.
+ */
+const char *nm_event_get_source(NMEvent * event);
+
+/**
+ * Returns the type of the event. See the defines above for
+ * a list of possible event types.
+ *
+ * @param event	The event.
+ *
+ * @return		The type of the event.
+ *
+ */
+int nm_event_get_type(NMEvent * event);
+
+/**
+ * Returns the time that the event took place.
+ *
+ * @param event	The event.
+ *
+ * @return		The timestamp for the event. This is the number of
+ *			    seconds since 1/1/1970 (as returned by the time() 
+ *				system call).
+ */
+guint32 nm_event_get_gmt(NMEvent * event);
+
+#endif