00001
00023 #ifndef _TelepathyQt4_account_factory_h_HEADER_GUARD_
00024 #define _TelepathyQt4_account_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/Account>
00035 #include <TelepathyQt4/Feature>
00036 #include <TelepathyQt4/FixedFeatureFactory>
00037
00038 class QDBusConnection;
00039
00040 namespace Tp
00041 {
00042
00043 class PendingReady;
00044
00045 class TELEPATHY_QT4_EXPORT AccountFactory : public FixedFeatureFactory
00046 {
00047 Q_OBJECT
00048 Q_DISABLE_COPY(AccountFactory)
00049
00050 public:
00051 static AccountFactoryPtr create(const QDBusConnection &bus,
00052 const Features &features = Features());
00053
00054 virtual ~AccountFactory();
00055
00056 PendingReady *proxy(const QString &busName, const QString &objectPath,
00057 const ConnectionFactoryConstPtr &connFactory,
00058 const ChannelFactoryConstPtr &chanFactory,
00059 const ContactFactoryConstPtr &contactFactory) const;
00060
00061 protected:
00062 AccountFactory(const QDBusConnection &bus, const Features &features);
00063
00064 virtual AccountPtr construct(const QString &busName, const QString &objectPath,
00065 const ConnectionFactoryConstPtr &connFactory,
00066 const ChannelFactoryConstPtr &chanFactory,
00067 const ContactFactoryConstPtr &contactFactory) const;
00068 virtual QString finalBusNameFrom(const QString &uniqueOrWellKnown) const;
00069
00070
00071
00072 private:
00073 struct Private;
00074 Private *mPriv;
00075 };
00076
00077 }
00078
00079 #endif