src/protocols/sametime/meanwhile/mw_srvc_aware.h

changeset 12957
9af807a5c9e7
parent 12956
39a4efae983c
child 12958
706645a0b944
--- a/src/protocols/sametime/meanwhile/mw_srvc_aware.h	Fri Jan 20 00:19:53 2006 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,270 +0,0 @@
-
-/*
-  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_AWARE_H
-#define _MW_SRVC_AWARE_H
-
-
-#include "mw_common.h"
-
-
-/** @file mw_srvc_aware.h
-
-    The aware service...
-
-    @todo remove the whole idea of an instantiated mwAwareList and
-    instead use arbitrary pointers (including NULL) as keys to
-    internally stored lists. This removes the problem of the service
-    free'ing its lists and invalidating mwAwareList references from
-    client code.
-*/
-
-
-/** Type identifier for the aware service */
-#define mwService_AWARE  0x00000011
-
-
-/** @struct mwServiceAware
-
-    Instance of an Aware Service. The members of this structure are
-    not made available. Accessing the parts of an aware service should
-    be performed through the appropriate functions. Note that
-    instances of this structure can be safely cast to a mwService.
-*/
-struct mwServiceAware;
-
-
-/** @struct mwAwareList
-
-    Instance of an Aware List. The members of this structure are not
-    made available. Access to the parts of an aware list should be
-    handled through the appropriate functions.
-
-    Any references to an aware list are rendered invalid when the
-    parent service is free'd
-*/
-struct mwAwareList;
-
-
-/** @struct mwAwareAttribute
-
-    Key/Opaque pair indicating an identity's attribute.
- */
-struct mwAwareAttribute;
-
-
-/** Predefined keys appropriate for a mwAwareAttribute
- */
-enum mwAwareAttributeKeys {
-  mwAttribute_AV_PREFS_SET   = 0x01, /**< A/V prefs specified, gboolean */
-  mwAttribute_MICROPHONE     = 0x02, /**< has a microphone, gboolean */
-  mwAttribute_SPEAKERS       = 0x03, /**< has speakers, gboolean */
-  mwAttribute_VIDEO_CAMERA   = 0x04, /**< has a video camera, gboolean */
-  mwAttribute_FILE_TRANSFER  = 0x06, /**< supports file transfers, gboolean */
-};
-
-
-typedef void (*mwAwareAttributeHandler)
-     (struct mwServiceAware *srvc,
-      struct mwAwareAttribute *attrib);
-
-
-struct mwAwareHandler {
-  mwAwareAttributeHandler on_attrib;
-  void (*clear)(struct mwServiceAware *srvc);
-};
-
-
-/** Appropriate function type for the on-aware signal
-
-    @param list  mwAwareList emiting the signal
-    @param id    awareness status information
-    @param data  user-specified data
-*/
-typedef void (*mwAwareSnapshotHandler)
-     (struct mwAwareList *list,
-      struct mwAwareSnapshot *id);
-
-
-/** Appropriate function type for the on-option signal. The option's
-    value may need to be explicitly loaded in some instances,
-    resulting in this handler being triggered again.
-
-    @param list    mwAwareList emiting the signal
-    @param id      awareness the attribute belongs to
-    @param attrib  attribute
-*/
-typedef void (*mwAwareIdAttributeHandler)
-     (struct mwAwareList *list,
-      struct mwAwareIdBlock *id,
-      struct mwAwareAttribute *attrib);
-
-
-struct mwAwareListHandler {
-  /** handle aware updates */
-  mwAwareSnapshotHandler on_aware;
-
-  /** handle attribute updates */
-  mwAwareIdAttributeHandler on_attrib;
-
-  /** optional. Called from mwAwareList_free */
-  void (*clear)(struct mwAwareList *list);
-};
-
-
-struct mwServiceAware *
-mwServiceAware_new(struct mwSession *session,
-		   struct mwAwareHandler *handler);
-
-
-/** Set an attribute value for this session */
-int mwServiceAware_setAttribute(struct mwServiceAware *srvc,
-				guint32 key, struct mwOpaque *opaque);
-
-
-int mwServiceAware_setAttributeBoolean(struct mwServiceAware *srvc,
-				       guint32 key, gboolean val);
-
-
-int mwServiceAware_setAttributeInteger(struct mwServiceAware *srvc,
-				       guint32 key, guint32 val);
-
-
-int mwServiceAware_setAttributeString(struct mwServiceAware *srvc,
-				      guint32 key, const char *str);
-
-
-/** Unset an attribute for this session */
-int mwServiceAware_unsetAttribute(struct mwServiceAware *srvc,
-				  guint32 key);
-
-
-guint32 mwAwareAttribute_getKey(const struct mwAwareAttribute *attrib);
-
-
-gboolean mwAwareAttribute_asBoolean(const struct mwAwareAttribute *attrib);
-
-
-guint32 mwAwareAttribute_asInteger(const struct mwAwareAttribute *attrib);
-
-
-/** Copy of attribute string, must be g_free'd. If the attribute's
-    content cannot be loaded as a string, returns NULL */
-char *mwAwareAttribute_asString(const struct mwAwareAttribute *attrib);
-
-
-/** Direct access to an attribute's underlying opaque */
-const struct mwOpaque *
-mwAwareAttribute_asOpaque(const struct mwAwareAttribute *attrib);
-
-
-/** Allocate and initialize an aware list */
-struct mwAwareList *
-mwAwareList_new(struct mwServiceAware *srvc,
-		struct mwAwareListHandler *handler);
-
-
-/** Clean and free an aware list */
-void mwAwareList_free(struct mwAwareList *list);
-
-
-struct mwAwareListHandler *mwAwareList_getHandler(struct mwAwareList *list);
-
-
-/** Add a collection of user IDs to an aware list.
-    @param list     mwAwareList to add user ID to
-    @param id_list  mwAwareIdBlock list of user IDs to add
-    @return         0 for success, non-zero to indicate an error.
-*/
-int mwAwareList_addAware(struct mwAwareList *list, GList *id_list);
-
-
-/** Remove a collection of user IDs from an aware list.
-    @param list     mwAwareList to remove user ID from
-    @param id_list  mwAwareIdBlock list of user IDs to remove
-    @return  0      for success, non-zero to indicate an error.
-*/
-int mwAwareList_removeAware(struct mwAwareList *list, GList *id_list);
-
-
-int mwAwareList_removeAllAware(struct mwAwareList *list);
-
-
-/** watch an NULL terminated array of keys */
-int mwAwareList_watchAttributeArray(struct mwAwareList *list,
-				    guint32 *keys);
-
-
-/** watch a NULL terminated list of keys */
-int mwAwareList_watchAttributes(struct mwAwareList *list,
-				guint32 key, ...);
-
-
-/** stop watching a NULL terminated array of keys */
-int mwAwareList_unwatchAttributeArray(struct mwAwareList *list,
-				      guint32 *keys);
-
-
-/** stop watching a NULL terminated list of keys */
-int mwAwareList_unwatchAttributes(struct mwAwareList *list,
-				  guint32 key, ...);
-
-
-/** remove all watched attributes */
-int mwAwareList_unwatchAllAttributes(struct mwAwareList *list);
-
-
-guint32 *mwAwareList_getWatchedAttributes(struct mwAwareList *list);
-
-
-void mwAwareList_setClientData(struct mwAwareList *list,
-			       gpointer data, GDestroyNotify cleanup);
-
-
-void mwAwareList_removeClientData(struct mwAwareList *list);
-
-
-gpointer mwAwareList_getClientData(struct mwAwareList *list);
-
-
-/** trigger a got_aware event constructed from the passed user and
-    status information. Useful for adding false users and having the
-    getText function work for them */
-void mwServiceAware_setStatus(struct mwServiceAware *srvc,
-			      struct mwAwareIdBlock *user,
-			      struct mwUserStatus *stat);
-
-
-/** look up the status description for a user */
-const char *mwServiceAware_getText(struct mwServiceAware *srvc,
-				   struct mwAwareIdBlock *user);
-
-
-/** look up the last known copy of an attribute for a user by the
-    attribute's key */
-const struct mwAwareAttribute *
-mwServiceAware_getAttribute(struct mwServiceAware *srvc,
-			    struct mwAwareIdBlock *user,
-			    guint32 key);
-
-
-#endif
-
-

mercurial