00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _MW_ST_LIST_H
00022 #define _MW_ST_LIST_H
00023
00024
00032 #include <glib.h>
00033 #include <glib/glist.h>
00034 #include "mw_common.h"
00035
00036
00037 #ifdef __cplusplus
00038 extern "C" {
00039 #endif
00040
00041
00042 #define ST_LIST_MAJOR 3
00043 #define ST_LIST_MINOR 1
00044 #define ST_LIST_MICRO 3
00045
00046
00047 enum mwSametimeGroupType {
00048 mwSametimeGroup_NORMAL = 1,
00049 mwSametimeGroup_DYNAMIC = 2,
00050 mwSametimeGroup_UNKNOWN = 0,
00051 };
00052
00053
00054 enum mwSametimeUserType {
00055 mwSametimeUser_NORMAL = 1,
00056 mwSametimeUser_EXTERNAL = 2,
00057 mwSametimeUser_UNKNOWN = 0,
00058 };
00059
00060
00064 struct mwSametimeList;
00065
00066
00070 struct mwSametimeGroup;
00071
00072
00076 struct mwSametimeUser;
00077
00078
00080 struct mwSametimeList *mwSametimeList_new();
00081
00082
00084 void mwSametimeList_free(struct mwSametimeList *l);
00085
00086
00090 void mwSametimeList_get(struct mwGetBuffer *b, struct mwSametimeList *l);
00091
00092
00096 void mwSametimeList_put(struct mwPutBuffer *b, struct mwSametimeList *l);
00097
00098
00100 struct mwSametimeList *mwSametimeList_load(const char *str);
00101
00102
00104 char *mwSametimeList_store(struct mwSametimeList *l);
00105
00106
00107 void mwSametimeList_setMajor(struct mwSametimeList *l, guint v);
00108
00109
00110 guint mwSametimeList_getMajor(struct mwSametimeList *l);
00111
00112
00113 void mwSametimeList_setMinor(struct mwSametimeList *l, guint v);
00114
00115
00116 guint mwSametimeList_getMinor(struct mwSametimeList *l);
00117
00118
00119 void mwSametimeList_setMicro(struct mwSametimeList *l, guint v);
00120
00121
00122 guint mwSametimeList_getMicro(struct mwSametimeList *l);
00123
00124
00126 GList *mwSametimeList_getGroups(struct mwSametimeList *l);
00127
00128
00129 struct mwSametimeGroup *
00130 mwSametimeList_findGroup(struct mwSametimeList *l,
00131 const char *name);
00132
00133
00135 struct mwSametimeGroup *
00136 mwSametimeGroup_new(struct mwSametimeList *l,
00137 enum mwSametimeGroupType type,
00138 const char *name);
00139
00140
00143 void mwSametimeGroup_free(struct mwSametimeGroup *g);
00144
00145
00146 enum mwSametimeGroupType mwSametimeGroup_getType(struct mwSametimeGroup *g);
00147
00148
00149 const char *mwSametimeGroup_getName(struct mwSametimeGroup *g);
00150
00151
00152 void mwSametimeGroup_setAlias(struct mwSametimeGroup *g,
00153 const char *alias);
00154
00155
00156 const char *mwSametimeGroup_getAlias(struct mwSametimeGroup *g);
00157
00158
00159 void mwSametimeGroup_setOpen(struct mwSametimeGroup *g, gboolean open);
00160
00161
00162 gboolean mwSametimeGroup_isOpen(struct mwSametimeGroup *g);
00163
00164
00165 struct mwSametimeList *mwSametimeGroup_getList(struct mwSametimeGroup *g);
00166
00167
00169 GList *mwSametimeGroup_getUsers(struct mwSametimeGroup *g);
00170
00171
00172 struct mwSametimeUser *
00173 mwSametimeGroup_findUser(struct mwSametimeGroup *g,
00174 struct mwIdBlock *user);
00175
00176
00178 struct mwSametimeUser *
00179 mwSametimeUser_new(struct mwSametimeGroup *g,
00180 enum mwSametimeUserType type,
00181 struct mwIdBlock *user);
00182
00183
00185 void mwSametimeUser_free(struct mwSametimeUser *u);
00186
00187
00188 struct mwSametimeGroup *mwSametimeUser_getGroup(struct mwSametimeUser *u);
00189
00190
00191 enum mwSametimeUserType mwSametimeUser_getType(struct mwSametimeUser *u);
00192
00193
00194 const char *mwSametimeUser_getUser(struct mwSametimeUser *u);
00195
00196
00197 const char *mwSametimeUser_getCommunity(struct mwSametimeUser *u);
00198
00199
00200 void mwSametimeUser_setShortName(struct mwSametimeUser *u, const char *name);
00201
00202
00203 const char *mwSametimeUser_getShortName(struct mwSametimeUser *u);
00204
00205
00206 void mwSametimeUser_setAlias(struct mwSametimeUser *u, const char *alias);
00207
00208
00209 const char *mwSametimeUser_getAlias(struct mwSametimeUser *u);
00210
00211
00212
00213 #ifdef __cplusplus
00214 }
00215 #endif
00216
00217
00218 #endif