Blame src/mw_srvc_place.h

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