00001
00023 #ifndef _TelepathyQt4_file_transfer_channel_h_HEADER_GUARD_
00024 #define _TelepathyQt4_file_transfer_channel_h_HEADER_GUARD_
00025
00026 #ifndef IN_TELEPATHY_QT4_HEADER
00027 #error IN_TELEPATHY_QT4_HEADER
00028 #endif
00029
00030 #include <TelepathyQt4/Channel>
00031
00032 namespace Tp
00033 {
00034
00035 class TELEPATHY_QT4_EXPORT FileTransferChannel : public Channel
00036 {
00037 Q_OBJECT
00038 Q_DISABLE_COPY(FileTransferChannel)
00039
00040 public:
00041 static const Feature FeatureCore;
00042
00043 static FileTransferChannelPtr create(const ConnectionPtr &connection,
00044 const QString &objectPath, const QVariantMap &immutableProperties);
00045
00046 virtual ~FileTransferChannel();
00047
00048 FileTransferState state() const;
00049 FileTransferStateChangeReason stateReason() const;
00050
00051 QString fileName() const;
00052 QString contentType() const;
00053 qulonglong size() const;
00054
00055 FileHashType contentHashType() const;
00056 QString contentHash() const;
00057
00058 QString description() const;
00059
00060 QDateTime lastModificationTime() const;
00061
00062 qulonglong initialOffset() const;
00063
00064 qulonglong transferredBytes() const;
00065
00066 PendingOperation *cancel();
00067
00068 Q_SIGNALS:
00069 void stateChanged(Tp::FileTransferState state,
00070 Tp::FileTransferStateChangeReason reason);
00071 void initialOffsetDefined(qulonglong initialOffset);
00072 void transferredBytesChanged(qulonglong count);
00073
00074 protected:
00075 FileTransferChannel(const ConnectionPtr &connection, const QString &objectPath,
00076 const QVariantMap &immutableProperties,
00077 const Feature &coreFeature = FileTransferChannel::FeatureCore);
00078
00079 SupportedSocketMap availableSocketTypes() const;
00080
00081 virtual void connectToHost();
00082 bool isConnected() const;
00083 void setConnected();
00084
00085 bool isFinished() const;
00086 virtual void setFinished();
00087
00088 private Q_SLOTS:
00089 TELEPATHY_QT4_NO_EXPORT void gotProperties(QDBusPendingCallWatcher *watcher);
00090
00091 TELEPATHY_QT4_NO_EXPORT void changeState();
00092 TELEPATHY_QT4_NO_EXPORT void onStateChanged(uint state, uint stateReason);
00093 TELEPATHY_QT4_NO_EXPORT void onInitialOffsetDefined(qulonglong initialOffset);
00094 TELEPATHY_QT4_NO_EXPORT void onTransferredBytesChanged(qulonglong count);
00095
00096 private:
00097 struct Private;
00098 friend struct Private;
00099 Private *mPriv;
00100 };
00101
00102 }
00103
00104 #endif