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
00044 typedef QMap<QCString, int> AppPresence;
00045 typedef QDict<AppPresence> PresenceMap;
00046 typedef QMap<int, QString> PresenceStringMap;
00047
00068 class KIMPROXY_EXPORT KIMProxy : public QObject, virtual public KIMProxyIface
00069 {
00070 Q_OBJECT
00071
00072 template<class> friend class KStaticDeleter;
00073 ~KIMProxy();
00074
00075 public:
00085 static KIMProxy * instance( DCOPClient * client );
00086
00092 bool initialize();
00093
00099 QStringList allContacts();
00100
00106 QStringList reachableContacts();
00107
00113 QStringList onlineContacts();
00114
00120 QStringList fileTransferContacts();
00121
00127 bool isPresent( const QString& uid );
00128
00135 QString displayName( const QString& uid );
00136
00142 int presenceNumeric( const QString& uid );
00143
00149 QString presenceString( const QString& uid );
00150
00156 QPixmap presenceIcon( const QString& uid );
00157
00163 bool canReceiveFiles( const QString & uid );
00164
00170 bool canRespond( const QString & uid );
00171
00179 QString locate( const QString & contactId, const QString & protocol );
00180
00186 QString context( const QString & uid );
00187
00192 void chatWithContact( const QString& uid );
00193
00201 void messageContact( const QString& uid, const QString& message );
00202
00210 void sendFile(const QString &uid, const KURL &sourceURL, const QString &altFileName = QString::null, uint fileSize = 0);
00211
00218 bool addContact( const QString &contactId, const QString &protocol );
00219
00224 bool imAppsAvailable();
00225
00230 bool startPreferredApp();
00231
00235 void contactPresenceChanged( QString uid, QCString appId, int presence );
00236
00237 public slots:
00238 void registeredToDCOP( const QCString& appId );
00239 void unregisteredFromDCOP( const QCString& appId );
00240 signals:
00245 void sigContactPresenceChanged( const QString &uid );
00246
00251 void sigPresenceInfoExpired();
00252 protected:
00256 void pollAll( const QString &uid );
00257
00261 bool updatePresence( const QString &uid, const QCString &appId, int presence );
00262
00266 QString preferredApp();
00267
00271 KIMIface_stub * stubForUid( const QString &uid );
00272
00277 KIMIface_stub * stubForProtocol( const QString &protocol );
00278
00279 private:
00280
00281
00282 QDict<KIMIface_stub> m_im_client_stubs;
00283
00284
00285 PresenceMap m_presence_map;
00286
00287
00288 QPtrDict<PresenceStringMap> m_client_presence_strings;
00289 DCOPClient *m_dc;
00290 bool m_apps_available;
00291 bool m_initialized;
00295 KIMProxy( DCOPClient * client);
00296 static KIMProxy * s_instance;
00297 };
00298
00299 #endif
00300
This file is part of the documentation for interfaces Library Version 3.3.90.