Blame src/mw_srvc_place.h.fix-glib-headers

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