Blame src/mw_srvc_place.h

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