kimproxy.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef KIMPROXY_H
00025 #define KIMPROXY_H
00026
00027 #include <qdict.h>
00028 #include <qmap.h>
00029 #include <qptrdict.h>
00030 #include <qstringlist.h>
00031
00032
00033 #define IM_SERVICE_TYPE "DCOP/InstantMessenger"
00034 #define IM_CLIENT_PREFERENCES_FILE "default_components"
00035 #define IM_CLIENT_PREFERENCES_SECTION "InstantMessenger"
00036 #define IM_CLIENT_PREFERENCES_ENTRY "imClient"
00037
00038 #include "kimproxyiface.h"
00039
00040 class DCOPClient;
00041 class KIMIface_stub;
00042 class KURL;
00043 class ContactPresenceListCurrent;
00044
00046 typedef QMap<QCString, int> AppPresence;
00047 typedef QDict<AppPresence> PresenceMap;
00049 typedef QMap<QString, ContactPresenceListCurrent> PresenceStringMap;
00050
00071 class KIMPROXY_EXPORT KIMProxy : public QObject, virtual public KIMProxyIface
00072 {
00073 Q_OBJECT
00074 struct Private;
00075
00076 template<class> friend class KStaticDeleter;
00077 ~KIMProxy();
00078
00079 public:
00089 static KIMProxy * instance( DCOPClient * client );
00090
00096 bool initialize();
00097
00103 QStringList allContacts();
00104
00110 QStringList reachableContacts();
00111
00117 QStringList onlineContacts();
00118
00124 QStringList fileTransferContacts();
00125
00131 bool isPresent( const QString& uid );
00132
00139 QString displayName( const QString& uid );
00140
00146 int presenceNumeric( const QString& uid );
00147
00153 QString presenceString( const QString& uid );
00154
00160 QPixmap presenceIcon( const QString& uid );
00161
00167 bool canReceiveFiles( const QString & uid );
00168
00174 bool canRespond( const QString & uid );
00175
00183 QString locate( const QString & contactId, const QString & protocol );
00184
00190 QString context( const QString & uid );
00191
00196 void chatWithContact( const QString& uid );
00197
00205 void messageContact( const QString& uid, const QString& message );
00206
00214 void sendFile(const QString &uid, const KURL &sourceURL, const QString &altFileName = QString::null, uint fileSize = 0);
00215
00222 bool addContact( const QString &contactId, const QString &protocol );
00223
00228 bool imAppsAvailable();
00229
00234 bool startPreferredApp();
00235
00239 void contactPresenceChanged( QString uid, QCString appId, int presence );
00240
00241 public slots:
00242 void registeredToDCOP( const QCString& appId );
00243 void unregisteredFromDCOP( const QCString& appId );
00244 signals:
00249 void sigContactPresenceChanged( const QString &uid );
00250
00255 void sigPresenceInfoExpired();
00256 protected:
00260 void pollApp( const QCString & appId );
00264 void pollAll( const QString &uid );
00265
00269 bool updatePresence( const QString &uid, const QCString &appId, int presence );
00270
00274 QString preferredApp();
00275
00279 KIMIface_stub * stubForUid( const QString &uid );
00280
00285 KIMIface_stub * stubForProtocol( const QString &protocol );
00286
00287 private:
00288
00289
00290 QDict<KIMIface_stub> m_im_client_stubs;
00291
00292
00293 PresenceMap m_presence_map;
00294
00295
00296
00297 QPtrDict<int> m_client_presence_strings;
00298 Private * d;
00299 bool m_apps_available;
00300 bool m_initialized;
00304 KIMProxy( DCOPClient * client);
00305 static KIMProxy * s_instance;
00306 };
00307
00308 #endif
00309
This file is part of the documentation for interfaces Library Version 3.4.0.