~ubuntu-branches/ubuntu/jaunty/meanwhile/jaunty

« back to all changes in this revision

Viewing changes to src/mw_st_list.h

  • Committer: Bazaar Package Importer
  • Author(s): Chris Vanden Berghe
  • Date: 2005-06-01 13:33:23 UTC
  • Revision ID: james.westby@ubuntu.com-20050601133323-fpkk8vr7asaj0tzo
Tags: upstream-0.4.2
ImportĀ upstreamĀ versionĀ 0.4.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
/*
 
3
  Meanwhile - Unofficial Lotus Sametime Community Client Library
 
4
  Copyright (C) 2004  Christopher (siege) O'Brien
 
5
  
 
6
  This library is free software; you can redistribute it and/or
 
7
  modify it under the terms of the GNU Library General Public
 
8
  License as published by the Free Software Foundation; either
 
9
  version 2 of the License, or (at your option) any later version.
 
10
  
 
11
  This library is distributed in the hope that it will be useful,
 
12
  but WITHOUT ANY WARRANTY; without even the implied warranty of
 
13
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 
14
  Library General Public License for more details.
 
15
  
 
16
  You should have received a copy of the GNU Library General Public
 
17
  License along with this library; if not, write to the Free
 
18
  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
19
*/
 
20
 
 
21
#ifndef _MW_ST_LIST_H
 
22
#define _MW_ST_LIST_H
 
23
 
 
24
 
 
25
#include <glib.h>
 
26
#include <glib/glist.h>
 
27
#include "mw_common.h"
 
28
 
 
29
 
 
30
#define ST_LIST_MAJOR  3
 
31
#define ST_LIST_MINOR  1
 
32
#define ST_LIST_MICRO  3
 
33
 
 
34
 
 
35
enum mwSametimeGroupType {
 
36
  mwSametimeGroup_NORMAL  = 1,  /**< a normal group of users */
 
37
  mwSametimeGroup_DYNAMIC = 2,  /**< a server-side group */
 
38
  mwSametimeGroup_UNKNOWN = 0,  /**< error determining group type */
 
39
};
 
40
 
 
41
 
 
42
enum mwSametimeUserType {
 
43
  mwSametimeUser_NORMAL   = 1,  /**< user on same community */
 
44
  mwSametimeUser_EXTERNAL = 2,  /**< external user */
 
45
  mwSametimeUser_UNKNOWN  = 0,  /**< error determining user type */
 
46
};
 
47
 
 
48
 
 
49
/** @struct mwSametimeList
 
50
 
 
51
    Represents a group-based buddy list. */
 
52
struct mwSametimeList;
 
53
 
 
54
 
 
55
/** @struct mwSametimeGroup
 
56
 
 
57
    Represents a group in a buddy list */
 
58
struct mwSametimeGroup;
 
59
 
 
60
 
 
61
/** @struct mwSametimeUser
 
62
 
 
63
    Represents a user in a group in a buddy list */
 
64
struct mwSametimeUser;
 
65
 
 
66
 
 
67
/** Create a new list */
 
68
struct mwSametimeList *mwSametimeList_new();
 
69
 
 
70
 
 
71
/** Free the list, all of its groups, and all of the groups' members */
 
72
void mwSametimeList_free(struct mwSametimeList *l);
 
73
 
 
74
 
 
75
/** Load a sametime list from a buffer. The list must be encapsulated
 
76
    as a string (eg, the first two bytes in the buffer should be the
 
77
    length of the string) */
 
78
void mwSametimeList_get(struct mwGetBuffer *b, struct mwSametimeList *l);
 
79
 
 
80
 
 
81
/** Write a sametime list onto a buffer. The list will be encapsulated
 
82
    in a string (the first two bytes written will be the length of the
 
83
    rest of the written list data) */
 
84
void mwSametimeList_put(struct mwPutBuffer *b, struct mwSametimeList *l);
 
85
 
 
86
 
 
87
/** convert a plain string into a sametime list */
 
88
struct mwSametimeList *mwSametimeList_load(const char *str);
 
89
 
 
90
 
 
91
/** convert a sametime list into a string */
 
92
char *mwSametimeList_store(struct mwSametimeList *l);
 
93
 
 
94
 
 
95
void mwSametimeList_setMajor(struct mwSametimeList *l, guint v);
 
96
 
 
97
 
 
98
guint mwSametimeList_getMajor(struct mwSametimeList *l);
 
99
 
 
100
 
 
101
void mwSametimeList_setMinor(struct mwSametimeList *l, guint v);
 
102
 
 
103
 
 
104
guint mwSametimeList_getMinor(struct mwSametimeList *l);
 
105
 
 
106
 
 
107
void mwSametimeList_setMicro(struct mwSametimeList *l, guint v);
 
108
 
 
109
 
 
110
guint mwSametimeList_getMicro(struct mwSametimeList *l);
 
111
 
 
112
 
 
113
/** Get a GList snapshot of the groups in a list */
 
114
GList *mwSametimeList_getGroups(struct mwSametimeList *l);
 
115
 
 
116
 
 
117
struct mwSametimeGroup *
 
118
mwSametimeList_findGroup(struct mwSametimeList *l,
 
119
                         const char *name);
 
120
 
 
121
 
 
122
/** Create a new group in a list */
 
123
struct mwSametimeGroup *
 
124
mwSametimeGroup_new(struct mwSametimeList *l,
 
125
                    enum mwSametimeGroupType type,
 
126
                    const char *name);
 
127
 
 
128
 
 
129
/** Remove a group from its list, and free it. Also frees all users
 
130
    contained in the group */
 
131
void mwSametimeGroup_free(struct mwSametimeGroup *g);
 
132
 
 
133
 
 
134
enum mwSametimeGroupType mwSametimeGroup_getType(struct mwSametimeGroup *g);
 
135
 
 
136
 
 
137
const char *mwSametimeGroup_getName(struct mwSametimeGroup *g);
 
138
 
 
139
 
 
140
void mwSametimeGroup_setAlias(struct mwSametimeGroup *g,
 
141
                              const char *alias);
 
142
 
 
143
 
 
144
const char *mwSametimeGroup_getAlias(struct mwSametimeGroup *g);
 
145
 
 
146
 
 
147
void mwSametimeGroup_setOpen(struct mwSametimeGroup *g, gboolean open);
 
148
 
 
149
 
 
150
gboolean mwSametimeGroup_isOpen(struct mwSametimeGroup *g);
 
151
 
 
152
 
 
153
struct mwSametimeList *mwSametimeGroup_getList(struct mwSametimeGroup *g);
 
154
 
 
155
 
 
156
/** Get a GList snapshot of the users in a list */
 
157
GList *mwSametimeGroup_getUsers(struct mwSametimeGroup *g);
 
158
 
 
159
 
 
160
struct mwSametimeUser *
 
161
mwSametimeGroup_findUser(struct mwSametimeGroup *g,
 
162
                         struct mwIdBlock *user);
 
163
 
 
164
 
 
165
/** Create a user in a group */
 
166
struct mwSametimeUser *
 
167
mwSametimeUser_new(struct mwSametimeGroup *g,
 
168
                   enum mwSametimeUserType type,
 
169
                   struct mwIdBlock *user);
 
170
 
 
171
 
 
172
/** Remove user from its group, and free it */
 
173
void mwSametimeUser_free(struct mwSametimeUser *u);
 
174
 
 
175
 
 
176
struct mwSametimeGroup *mwSametimeUser_getGroup(struct mwSametimeUser *u);
 
177
 
 
178
 
 
179
enum mwSametimeUserType mwSametimeUser_getType(struct mwSametimeUser *u);
 
180
 
 
181
 
 
182
const char *mwSametimeUser_getUser(struct mwSametimeUser *u);
 
183
 
 
184
 
 
185
const char *mwSametimeUser_getCommunity(struct mwSametimeUser *u);
 
186
 
 
187
 
 
188
void mwSametimeUser_setShortName(struct mwSametimeUser *u, const char *name);
 
189
 
 
190
 
 
191
const char *mwSametimeUser_getShortName(struct mwSametimeUser *u);
 
192
 
 
193
 
 
194
void mwSametimeUser_setAlias(struct mwSametimeUser *u, const char *alias);
 
195
 
 
196
 
 
197
const char *mwSametimeUser_getAlias(struct mwSametimeUser *u);
 
198
 
 
199
 
 
200
#endif