meanwhile: mw_srvc_im.h Source File

- Main Page
- Related Pages
- Data Structures
- Files

# mw_srvc_im.h

Go to the documentation of this file.

    00001
    00002 /*
    00003   Meanwhile - Unofficial Lotus Sametime Community Client Library
    00004   Copyright (C) 2004  Christopher (siege) O'Brien
    00005
    00006   This library is free software; you can redistribute it and/or
    00007   modify it under the terms of the GNU Library General Public
    00008   License as published by the Free Software Foundation; either
    00009   version 2 of the License, or (at your option) any later version.
    00010
    00011   This library is distributed in the hope that it will be useful,
    00012   but WITHOUT ANY WARRANTY; without even the implied warranty of
    00013   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    00014   Library General Public License for more details.
    00015
    00016   You should have received a copy of the GNU Library General Public
    00017   License along with this library; if not, write to the Free
    00018   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    00019 */
    00020
    00021 #ifndef _MW_SRVC_IM_H
    00022 #define _MW_SRVC_IM_H
    00023
    00024
    00036 #include <glib.h>
    00037 #include "mw_common.h"
    00038
    00039
    00040 #ifdef __cplusplus
    00041 extern "C" {
    00042 #endif
    00043
    00044
    00045 /* identifier for the IM service */
    00046 #define mwService_IM  0x00001000
    00047
    00048
    00053 struct mwServiceIm;
    00054
    00055
    00059 struct mwConversation;
    00060
    00061
    00062 enum mwImClientType {
    00063   mwImClient_PLAIN       = 0x00000001,
    00064   mwImClient_NOTESBUDDY  = 0x00033453,
    00065   mwImClient_PRECONF     = 0x00000019,
    00066   mwImClient_UNKNOWN     = 0xffffffff,
    00067 };
    00068
    00069
    00084 enum mwImSendType {
    00085   mwImSend_PLAIN,
    00086   mwImSend_TYPING,
    00087   mwImSend_HTML,
    00088   mwImSend_SUBJECT,
    00089   mwImSend_MIME,
    00090   mwImSend_TIMESTAMP,
    00091 };
    00092
    00093
    00094
    00096 enum mwConversationState {
    00097   mwConversation_CLOSED,
    00098   mwConversation_PENDING,
    00099   mwConversation_OPEN,
    00100   mwConversation_UNKNOWN,
    00101 };
    00102
    00103
    00104 #define mwConversation_isState(conv, state) \
    00105   (mwConversation_getState(conv) == (state))
    00106
    00107 #define mwConversation_isClosed(conv) \
    00108   mwConversation_isState((conv), mwConversation_CLOSED)
    00109
    00110 #define mwConversation_isPending(conv) \
    00111   mwConversation_isState((conv), mwConversation_PENDING)
    00112
    00113 #define mwConversation_isOpen(conv) \
    00114   mwConversation_isState((conv), mwConversation_OPEN)
    00115
    00116
    00117
    00120 struct mwImHandler {
    00121
    00123   void (*conversation_opened)(struct mwConversation *conv);
    00124
    00126   void (*conversation_closed)(struct mwConversation *conv, guint32 err);
    00127
    00129   void (*conversation_recv)(struct mwConversation *conv,
    00130                             enum mwImSendType type, gconstpointer msg);
    00131
    00134   void (*place_invite)(struct mwConversation *conv,
    00135                        const char *message,
    00136                        const char *title, const char *name);
    00137
    00139   void (*clear)(struct mwServiceIm *srvc);
    00140 };
    00141
    00142
    00143 struct mwServiceIm *mwServiceIm_new(struct mwSession *session,
    00144                                     struct mwImHandler *handler);
    00145
    00146
    00147 struct mwImHandler *mwServiceIm_getHandler(struct mwServiceIm *srvc);
    00148
    00149
    00152 struct mwConversation *mwServiceIm_getConversation(struct mwServiceIm *srvc,
    00153                                                    struct mwIdBlock *target);
    00154
    00155
    00157 struct mwConversation *mwServiceIm_findConversation(struct mwServiceIm *srvc,
    00158                                                     struct mwIdBlock *target);
    00159
    00160
    00163 gboolean mwServiceIm_supports(struct mwServiceIm *srvc,
    00164                               enum mwImSendType type);
    00165
    00166
    00174 void mwServiceIm_setClientType(struct mwServiceIm *srvc,
    00175                                enum mwImClientType type);
    00176
    00177
    00178 enum mwImClientType mwServiceIm_getClientType(struct mwServiceIm *srvc);
    00179
    00180
    00186 void mwConversation_open(struct mwConversation *conv);
    00187
    00188
    00191 void mwConversation_close(struct mwConversation *conv, guint32 err);
    00192
    00193
    00195 gboolean mwConversation_supports(struct mwConversation *conv,
    00196                                  enum mwImSendType type);
    00197
    00198
    00199 enum mwImClientType mwConversation_getClientType(struct mwConversation *conv);
    00200
    00201
    00208 enum mwConversationState mwConversation_getState(struct mwConversation *conv);
    00209
    00210
    00212 int mwConversation_send(struct mwConversation *conv,
    00213                         enum mwImSendType type, gconstpointer send);
    00214
    00215
    00217 struct mwServiceIm *mwConversation_getService(struct mwConversation *conv);
    00218
    00219
    00222 struct mwLoginInfo *mwConversation_getTargetInfo(struct mwConversation *conv);
    00223
    00224
    00226 struct mwIdBlock *mwConversation_getTarget(struct mwConversation *conv);
    00227
    00228
    00231 void mwConversation_setEncrypted(struct mwConversation *conv,
    00232                                  gboolean useCipher);
    00233
    00234
    00236 gboolean mwConversation_isEncrypted(struct mwConversation *conv);
    00237
    00238
    00245 void mwConversation_setClientData(struct mwConversation *conv,
    00246                                   gpointer data, GDestroyNotify clean);
    00247
    00248
    00254 gpointer mwConversation_getClientData(struct mwConversation *conv);
    00255
    00256
    00263 void mwConversation_removeClientData(struct mwConversation *conv);
    00264
    00265
    00268 void mwConversation_free(struct mwConversation *conv);
    00269
    00270
    00271 #ifdef __cplusplus
    00272 }
    00273 #endif
    00274
    00275
    00276 #endif /* _MW_SRVC_IM_H */