meanwhile  1.1.0
mw_srvc_im.h
Go to the documentation of this file.
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_SRVC_IM_H
22 #define _MW_SRVC_IM_H
23 
24 
36 #include <glib.h>
37 #include "mw_common.h"
38 
39 
40 #ifdef __cplusplus
41 extern "C" {
42 #endif
43 
44 
45 /* identifier for the IM service */
46 #define mwService_IM 0x00001000
47 
48 
53 struct mwServiceIm;
54 
55 
59 struct mwConversation;
60 
61 
63  mwImClient_PLAIN = 0x00000001,
64  mwImClient_NOTESBUDDY = 0x00033453,
65  mwImClient_PRECONF = 0x00000019,
66  mwImClient_UNKNOWN = 0xffffffff,
67 };
68 
69 
91 };
92 
93 
94 
101 };
102 
103 
104 #define mwConversation_isState(conv, state) \
105  (mwConversation_getState(conv) == (state))
106 
107 #define mwConversation_isClosed(conv) \
108  mwConversation_isState((conv), mwConversation_CLOSED)
109 
110 #define mwConversation_isPending(conv) \
111  mwConversation_isState((conv), mwConversation_PENDING)
112 
113 #define mwConversation_isOpen(conv) \
114  mwConversation_isState((conv), mwConversation_OPEN)
115 
116 
117 
120 struct mwImHandler {
121 
123  void (*conversation_opened)(struct mwConversation *conv);
124 
126  void (*conversation_closed)(struct mwConversation *conv, guint32 err);
127 
129  void (*conversation_recv)(struct mwConversation *conv,
130  enum mwImSendType type, gconstpointer msg);
131 
134  void (*place_invite)(struct mwConversation *conv,
135  const char *message,
136  const char *title, const char *name);
137 
139  void (*clear)(struct mwServiceIm *srvc);
140 };
141 
142 
144  struct mwImHandler *handler);
145 
146 
147 struct mwImHandler *mwServiceIm_getHandler(struct mwServiceIm *srvc);
148 
149 
153  struct mwIdBlock *target);
154 
155 
158  struct mwIdBlock *target);
159 
160 
163 gboolean mwServiceIm_supports(struct mwServiceIm *srvc,
164  enum mwImSendType type);
165 
166 
174 void mwServiceIm_setClientType(struct mwServiceIm *srvc,
175  enum mwImClientType type);
176 
177 
179 
180 
186 void mwConversation_open(struct mwConversation *conv);
187 
188 
191 void mwConversation_close(struct mwConversation *conv, guint32 err);
192 
193 
195 gboolean mwConversation_supports(struct mwConversation *conv,
196  enum mwImSendType type);
197 
198 
200 
201 
209 
210 
212 int mwConversation_send(struct mwConversation *conv,
213  enum mwImSendType type, gconstpointer send);
214 
215 
218 
219 
223 
224 
227 
228 
232  gboolean useCipher);
233 
234 
236 gboolean mwConversation_isEncrypted(struct mwConversation *conv);
237 
238 
246  gpointer data, GDestroyNotify clean);
247 
248 
254 gpointer mwConversation_getClientData(struct mwConversation *conv);
255 
256 
264 
265 
268 void mwConversation_free(struct mwConversation *conv);
269 
270 
271 #ifdef __cplusplus
272 }
273 #endif
274 
275 
276 #endif /* _MW_SRVC_IM_H */