src/protocols/sametime/meanwhile/mw_srvc_place.h

changeset 12956
39a4efae983c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/protocols/sametime/meanwhile/mw_srvc_place.h	Fri Jan 20 00:19:53 2006 +0000
@@ -0,0 +1,137 @@
+
+/*
+  Meanwhile - Unofficial Lotus Sametime Community Client Library
+  Copyright (C) 2004  Christopher (siege) O'Brien
+  
+  This library is free software; you can redistribute it and/or
+  modify it under the terms of the GNU Library General Public
+  License as published by the Free Software Foundation; either
+  version 2 of the License, or (at your option) any later version.
+  
+  This library is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+  Library General Public License for more details.
+  
+  You should have received a copy of the GNU Library General Public
+  License along with this library; if not, write to the Free
+  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*/
+
+#ifndef _MW_SRVC_PLACE_H
+#define _MW_SRVC_PLACE_H
+
+
+#include <glib/glist.h>
+#include "mw_common.h"
+
+
+/** Type identifier for the place service */
+#define mwService_PLACE  0x80000022
+
+
+/** @struct mwServicePlace */
+struct mwServicePlace;
+
+
+/** @struct mwPlace */
+struct mwPlace;
+
+
+struct mwPlaceHandler {
+  void (*opened)(struct mwPlace *place);
+  void (*closed)(struct mwPlace *place, guint32 code);
+
+  void (*peerJoined)(struct mwPlace *place,
+		     const struct mwIdBlock *peer);
+
+  void (*peerParted)(struct mwPlace *place,
+		     const struct mwIdBlock *peer);
+
+  void (*peerSetAttribute)(struct mwPlace *place,
+			   const struct mwIdBlock *peer,
+			   guint32 attr, struct mwOpaque *o);
+
+  void (*peerUnsetAttribute)(struct mwPlace *place,
+			     const struct mwIdBlock *peer,
+			     guint32 attr);
+
+  void (*message)(struct mwPlace *place,
+		  const struct mwIdBlock *who,
+		  const char *msg);
+
+  void (*clear)(struct mwServicePlace *srvc);
+};
+
+
+enum mwPlacePeerAttribute {
+  mwPlacePeer_TYPING = 0x00000008,
+};
+
+
+struct mwServicePlace *
+mwServicePlace_new(struct mwSession *session,
+		   struct mwPlaceHandler *handler);
+
+
+struct mwPlaceHandler *
+mwServicePlace_getHandler(struct mwServicePlace *srvc);
+
+
+const GList *mwServicePlace_getPlaces(struct mwServicePlace *srvc);
+
+
+struct mwPlace *mwPlace_new(struct mwServicePlace *srvc,
+			    const char *name, const char *title);
+
+
+struct mwServicePlace *mwPlace_getService(struct mwPlace *place);
+
+
+const char *mwPlace_getName(struct mwPlace *place);
+
+
+const char *mwPlace_getTitle(struct mwPlace *place);
+
+
+int mwPlace_open(struct mwPlace *place);
+
+
+int mwPlace_destroy(struct mwPlace *place, guint32 code);
+
+
+/** returns a GList* of struct mwIdBlock*. The GList will need to be
+    freed after use, the mwIdBlock structures should not be modified
+    or freed */
+GList *mwPlace_getMembers(struct mwPlace *place);
+
+
+int mwPlace_sendText(struct mwPlace *place, const char *msg);
+
+
+/** send a legacy invitation for this place to a user. The user will
+    receive an apparent invitation from a Conference (rather than a
+    Place) */
+int mwPlace_legacyInvite(struct mwPlace *place,
+			 struct mwIdBlock *idb,
+			 const char *message);
+
+
+int mwPlace_setAttribute(struct mwPlace *place, guint32 attrib,
+			 struct mwOpaque *data);
+
+
+int mwPlace_unsetAttribute(struct mwPlace *place, guint32 attrib);
+
+
+void mwPlace_setClientData(struct mwPlace *place,
+			   gpointer data, GDestroyNotify clean);
+
+
+gpointer mwPlace_getClientData(struct mwPlace *place);
+
+
+void mwPlace_removeClientData(struct mwPlace *place);
+
+
+#endif

mercurial