00001
00023 #ifndef _TelepathyQt4_connection_factory_h_HEADER_GUARD_
00024 #define _TelepathyQt4_connection_factory_h_HEADER_GUARD_
00025
00026 #ifndef IN_TELEPATHY_QT4_HEADER
00027 #error IN_TELEPATHY_QT4_HEADER
00028 #endif
00029
00030 #include <TelepathyQt4/Global>
00031 #include <TelepathyQt4/SharedPtr>
00032 #include <TelepathyQt4/Types>
00033
00034 #include <TelepathyQt4/Feature>
00035 #include <TelepathyQt4/FixedFeatureFactory>
00036
00037
00038 #include <QtGlobal>
00039
00040 #include <QString>
00041
00042 class QDBusConnection;
00043
00044 namespace Tp
00045 {
00046
00047 class PendingReady;
00048
00049 class TELEPATHY_QT4_EXPORT ConnectionFactory : public FixedFeatureFactory
00050 {
00051 public:
00052 static ConnectionFactoryPtr create(const QDBusConnection &bus,
00053 const Features &features = Features());
00054
00055 virtual ~ConnectionFactory();
00056
00057 PendingReady *proxy(const QString &busName, const QString &objectPath,
00058 const ChannelFactoryConstPtr &chanFactory,
00059 const ContactFactoryConstPtr &contactFactory) const;
00060
00061 protected:
00062 ConnectionFactory(const QDBusConnection &bus, const Features &features);
00063
00064 virtual ConnectionPtr construct(const QString &busName, const QString &objectPath,
00065 const ChannelFactoryConstPtr &chanFactory,
00066 const ContactFactoryConstPtr &contactFactory) const;
00067 virtual QString finalBusNameFrom(const QString &uniqueOrWellKnown) const;
00068
00069
00070
00071 private:
00072 struct Private;
00073 Private *mPriv;
00074 };
00075
00076 }
00077
00078 #endif