|
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_RESOLVE_H
|
|
Packit Service |
37472d |
#define _MW_SRVC_RESOLVE_H
|
|
Packit Service |
37472d |
|
|
Packit Service |
37472d |
|
|
Packit Service |
37472d |
#include <glib.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 conference service */
|
|
Packit Service |
37472d |
#define mwService_RESOLVE 0x00000015
|
|
Packit Service |
37472d |
|
|
Packit Service |
37472d |
|
|
Packit Service |
37472d |
/** Return value of mwServiceResolve_search indicating an error */
|
|
Packit Service |
37472d |
#define SEARCH_ERROR 0x00
|
|
Packit Service |
37472d |
|
|
Packit Service |
37472d |
|
|
Packit Service |
37472d |
/** @struct mwServiceResolve
|
|
Packit Service |
37472d |
User lookup service */
|
|
Packit Service |
37472d |
struct mwServiceResolve;
|
|
Packit Service |
37472d |
|
|
Packit Service |
37472d |
|
|
Packit Service |
37472d |
enum mwResolveFlag {
|
|
Packit Service |
37472d |
/** return unique results or none at all */
|
|
Packit Service |
37472d |
mwResolveFlag_UNIQUE = 0x00000001,
|
|
Packit Service |
37472d |
|
|
Packit Service |
37472d |
/** return only the first result */
|
|
Packit Service |
37472d |
mwResolveFlag_FIRST = 0x00000002,
|
|
Packit Service |
37472d |
|
|
Packit Service |
37472d |
/** search all directories, not just the first with a match */
|
|
Packit Service |
37472d |
mwResolveFlag_ALL_DIRS = 0x00000004,
|
|
Packit Service |
37472d |
|
|
Packit Service |
37472d |
/** search for users */
|
|
Packit Service |
37472d |
mwResolveFlag_USERS = 0x00000008,
|
|
Packit Service |
37472d |
|
|
Packit Service |
37472d |
/** search for groups */
|
|
Packit Service |
37472d |
mwResolveFlag_GROUPS = 0x00000010,
|
|
Packit Service |
37472d |
};
|
|
Packit Service |
37472d |
|
|
Packit Service |
37472d |
|
|
Packit Service |
37472d |
/** @see mwResolveResult */
|
|
Packit Service |
37472d |
enum mwResolveCode {
|
|
Packit Service |
37472d |
/** successful search */
|
|
Packit Service |
37472d |
mwResolveCode_SUCCESS = 0x00000000,
|
|
Packit Service |
37472d |
|
|
Packit Service |
37472d |
/** only some of the nested searches were successful */
|
|
Packit Service |
37472d |
mwResolveCode_PARTIAL = 0x00010000,
|
|
Packit Service |
37472d |
|
|
Packit Service |
37472d |
/** more than one result (occurs when mwResolveFlag_UNIQUE is used
|
|
Packit Service |
37472d |
and more than one result would have been otherwise returned) */
|
|
Packit Service |
37472d |
mwResolveCode_MULTIPLE = 0x80020000,
|
|
Packit Service |
37472d |
|
|
Packit Service |
37472d |
/** the name is not resolvable due to its format */
|
|
Packit Service |
37472d |
mwResolveCode_BAD_FORMAT = 0x80030000,
|
|
Packit Service |
37472d |
};
|
|
Packit Service |
37472d |
|
|
Packit Service |
37472d |
|
|
Packit Service |
37472d |
enum mwResolveMatchType {
|
|
Packit Service |
37472d |
mwResolveMatch_USER = 0x00000001,
|
|
Packit Service |
37472d |
mwResolveMatch_GROUP = 0x00000002,
|
|
Packit Service |
37472d |
};
|
|
Packit Service |
37472d |
|
|
Packit Service |
37472d |
|
|
Packit Service |
37472d |
struct mwResolveMatch {
|
|
Packit Service |
37472d |
char *id; /**< user id */
|
|
Packit Service |
37472d |
char *name; /**< user name */
|
|
Packit Service |
37472d |
char *desc; /**< description */
|
|
Packit Service |
37472d |
guint32 type; /**< @see mwResolveMatchType */
|
|
Packit Service |
37472d |
};
|
|
Packit Service |
37472d |
|
|
Packit Service |
37472d |
|
|
Packit Service |
37472d |
struct mwResolveResult {
|
|
Packit Service |
37472d |
guint32 code; /**< @see mwResolveCode */
|
|
Packit Service |
37472d |
char *name; /**< name of the result */
|
|
Packit Service |
37472d |
GList *matches; /**< list of mwResolveMatch */
|
|
Packit Service |
37472d |
};
|
|
Packit Service |
37472d |
|
|
Packit Service |
37472d |
|
|
Packit Service |
37472d |
/** Handle the results of a resolve request. If there was a cleanup
|
|
Packit Service |
37472d |
function specified to mwServiceResolve_search, it will be called
|
|
Packit Service |
37472d |
upon the user data after this callback returns.
|
|
Packit Service |
37472d |
|
|
Packit Service |
37472d |
@param srvc the resolve service
|
|
Packit Service |
37472d |
@param id the resolve request ID
|
|
Packit Service |
37472d |
@param code return code
|
|
Packit Service |
37472d |
@param results list of mwResolveResult
|
|
Packit Service |
37472d |
@param data optional user data attached to the request
|
|
Packit Service |
37472d |
*/
|
|
Packit Service |
37472d |
typedef void (*mwResolveHandler)
|
|
Packit Service |
37472d |
(struct mwServiceResolve *srvc,
|
|
Packit Service |
37472d |
guint32 id, guint32 code, GList *results,
|
|
Packit Service |
37472d |
gpointer data);
|
|
Packit Service |
37472d |
|
|
Packit Service |
37472d |
|
|
Packit Service |
37472d |
/** Allocate a new resolve service */
|
|
Packit Service |
37472d |
struct mwServiceResolve *mwServiceResolve_new(struct mwSession *);
|
|
Packit Service |
37472d |
|
|
Packit Service |
37472d |
|
|
Packit Service |
37472d |
/** Inisitate a resolve request.
|
|
Packit Service |
37472d |
|
|
Packit Service |
37472d |
@param srvc the resolve service
|
|
Packit Service |
37472d |
@param queries list query strings
|
|
Packit Service |
37472d |
@param flags search flags
|
|
Packit Service |
37472d |
@param handler result handling function
|
|
Packit Service |
37472d |
@param data optional user data attached to the request
|
|
Packit Service |
37472d |
@param cleanup optional function to clean up user data
|
|
Packit Service |
37472d |
@return generated ID for the search request, or SEARCH_ERROR
|
|
Packit Service |
37472d |
*/
|
|
Packit Service |
37472d |
guint32 mwServiceResolve_resolve(struct mwServiceResolve *srvc,
|
|
Packit Service |
37472d |
GList *queries, enum mwResolveFlag flags,
|
|
Packit Service |
37472d |
mwResolveHandler handler,
|
|
Packit Service |
37472d |
gpointer data, GDestroyNotify cleanup);
|
|
Packit Service |
37472d |
|
|
Packit Service |
37472d |
|
|
Packit Service |
37472d |
/** Cancel a resolve request by its generated ID. The handler function
|
|
Packit Service |
37472d |
will not be called, and the optional cleanup function will be
|
|
Packit Service |
37472d |
called upon the optional user data for the request */
|
|
Packit Service |
37472d |
void mwServiceResolve_cancelResolve(struct mwServiceResolve *, guint32);
|
|
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_RESOLVE_H */
|