|
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_ST_LIST_H
|
|
Packit |
16808d |
#define _MW_ST_LIST_H
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
/** @file mw_st_list.h
|
|
Packit |
16808d |
|
|
Packit |
16808d |
Parse and compose buddy lists in the format commonly used by Sametime
|
|
Packit |
16808d |
Connect clients.
|
|
Packit |
16808d |
*/
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
#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 |
#define ST_LIST_MAJOR 3
|
|
Packit |
16808d |
#define ST_LIST_MINOR 1
|
|
Packit |
16808d |
#define ST_LIST_MICRO 3
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
enum mwSametimeGroupType {
|
|
Packit |
16808d |
mwSametimeGroup_NORMAL = 1, /**< a normal group of users */
|
|
Packit |
16808d |
mwSametimeGroup_DYNAMIC = 2, /**< a server-side group */
|
|
Packit |
16808d |
mwSametimeGroup_UNKNOWN = 0, /**< error determining group type */
|
|
Packit |
16808d |
};
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
enum mwSametimeUserType {
|
|
Packit |
16808d |
mwSametimeUser_NORMAL = 1, /**< user on same community */
|
|
Packit |
16808d |
mwSametimeUser_EXTERNAL = 2, /**< external user */
|
|
Packit |
16808d |
mwSametimeUser_UNKNOWN = 0, /**< error determining user type */
|
|
Packit |
16808d |
};
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
/** @struct mwSametimeList
|
|
Packit |
16808d |
|
|
Packit |
16808d |
Represents a group-based buddy list. */
|
|
Packit |
16808d |
struct mwSametimeList;
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
/** @struct mwSametimeGroup
|
|
Packit |
16808d |
|
|
Packit |
16808d |
Represents a group in a buddy list */
|
|
Packit |
16808d |
struct mwSametimeGroup;
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
/** @struct mwSametimeUser
|
|
Packit |
16808d |
|
|
Packit |
16808d |
Represents a user in a group in a buddy list */
|
|
Packit |
16808d |
struct mwSametimeUser;
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
/** Create a new list */
|
|
Packit |
16808d |
struct mwSametimeList *mwSametimeList_new(void);
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
/** Free the list, all of its groups, and all of the groups' members */
|
|
Packit |
16808d |
void mwSametimeList_free(struct mwSametimeList *l);
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
/** Load a sametime list from a buffer. The list must be encapsulated
|
|
Packit |
16808d |
as a string (eg, the first two bytes in the buffer should be the
|
|
Packit |
16808d |
length of the string) */
|
|
Packit |
16808d |
void mwSametimeList_get(struct mwGetBuffer *b, struct mwSametimeList *l);
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
/** Write a sametime list onto a buffer. The list will be encapsulated
|
|
Packit |
16808d |
in a string (the first two bytes written will be the length of the
|
|
Packit |
16808d |
rest of the written list data) */
|
|
Packit |
16808d |
void mwSametimeList_put(struct mwPutBuffer *b, struct mwSametimeList *l);
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
/** convert a plain string into a sametime list */
|
|
Packit |
16808d |
struct mwSametimeList *mwSametimeList_load(const char *str);
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
/** convert a sametime list into a string */
|
|
Packit |
16808d |
char *mwSametimeList_store(struct mwSametimeList *l);
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
void mwSametimeList_setMajor(struct mwSametimeList *l, guint v);
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
guint mwSametimeList_getMajor(struct mwSametimeList *l);
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
void mwSametimeList_setMinor(struct mwSametimeList *l, guint v);
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
guint mwSametimeList_getMinor(struct mwSametimeList *l);
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
void mwSametimeList_setMicro(struct mwSametimeList *l, guint v);
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
guint mwSametimeList_getMicro(struct mwSametimeList *l);
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
/** Get a GList snapshot of the groups in a list */
|
|
Packit |
16808d |
GList *mwSametimeList_getGroups(struct mwSametimeList *l);
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
struct mwSametimeGroup *
|
|
Packit |
16808d |
mwSametimeList_findGroup(struct mwSametimeList *l,
|
|
Packit |
16808d |
const char *name);
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
/** Create a new group in a list */
|
|
Packit |
16808d |
struct mwSametimeGroup *
|
|
Packit |
16808d |
mwSametimeGroup_new(struct mwSametimeList *l,
|
|
Packit |
16808d |
enum mwSametimeGroupType type,
|
|
Packit |
16808d |
const char *name);
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
/** Remove a group from its list, and free it. Also frees all users
|
|
Packit |
16808d |
contained in the group */
|
|
Packit |
16808d |
void mwSametimeGroup_free(struct mwSametimeGroup *g);
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
enum mwSametimeGroupType mwSametimeGroup_getType(struct mwSametimeGroup *g);
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
const char *mwSametimeGroup_getName(struct mwSametimeGroup *g);
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
void mwSametimeGroup_setAlias(struct mwSametimeGroup *g,
|
|
Packit |
16808d |
const char *alias);
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
const char *mwSametimeGroup_getAlias(struct mwSametimeGroup *g);
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
void mwSametimeGroup_setOpen(struct mwSametimeGroup *g, gboolean open);
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
gboolean mwSametimeGroup_isOpen(struct mwSametimeGroup *g);
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
struct mwSametimeList *mwSametimeGroup_getList(struct mwSametimeGroup *g);
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
/** Get a GList snapshot of the users in a list */
|
|
Packit |
16808d |
GList *mwSametimeGroup_getUsers(struct mwSametimeGroup *g);
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
struct mwSametimeUser *
|
|
Packit |
16808d |
mwSametimeGroup_findUser(struct mwSametimeGroup *g,
|
|
Packit |
16808d |
struct mwIdBlock *user);
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
/** Create a user in a group */
|
|
Packit |
16808d |
struct mwSametimeUser *
|
|
Packit |
16808d |
mwSametimeUser_new(struct mwSametimeGroup *g,
|
|
Packit |
16808d |
enum mwSametimeUserType type,
|
|
Packit |
16808d |
struct mwIdBlock *user);
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
/** Remove user from its group, and free it */
|
|
Packit |
16808d |
void mwSametimeUser_free(struct mwSametimeUser *u);
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
struct mwSametimeGroup *mwSametimeUser_getGroup(struct mwSametimeUser *u);
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
enum mwSametimeUserType mwSametimeUser_getType(struct mwSametimeUser *u);
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
const char *mwSametimeUser_getUser(struct mwSametimeUser *u);
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
const char *mwSametimeUser_getCommunity(struct mwSametimeUser *u);
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
void mwSametimeUser_setShortName(struct mwSametimeUser *u, const char *name);
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
const char *mwSametimeUser_getShortName(struct mwSametimeUser *u);
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
void mwSametimeUser_setAlias(struct mwSametimeUser *u, const char *alias);
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
const char *mwSametimeUser_getAlias(struct mwSametimeUser *u);
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
#ifdef __cplusplus
|
|
Packit |
16808d |
}
|
|
Packit |
16808d |
#endif
|
|
Packit |
16808d |
|
|
Packit |
16808d |
|
|
Packit |
16808d |
#endif /* _MW_ST_LIST_H */
|