00001
00023 #ifndef _TelepathyQt4_incoming_file_transfer_channel_h_HEADER_GUARD_
00024 #define _TelepathyQt4_incoming_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/FileTransferChannel>
00031
00032 #include <QAbstractSocket>
00033
00034 namespace Tp
00035 {
00036
00037 class TELEPATHY_QT4_EXPORT IncomingFileTransferChannel : public FileTransferChannel
00038 {
00039 Q_OBJECT
00040 Q_DISABLE_COPY(IncomingFileTransferChannel)
00041
00042 public:
00043 static const Feature FeatureCore;
00044
00045 static IncomingFileTransferChannelPtr create(const ConnectionPtr &connection,
00046 const QString &objectPath, const QVariantMap &immutableProperties);
00047
00048 virtual ~IncomingFileTransferChannel();
00049
00050 PendingOperation *acceptFile(qulonglong offset, QIODevice *output);
00051
00052 protected:
00053 IncomingFileTransferChannel(const ConnectionPtr &connection,
00054 const QString &objectPath,
00055 const QVariantMap &immutableProperties,
00056 const Feature &coreFeature = IncomingFileTransferChannel::FeatureCore);
00057
00058 private Q_SLOTS:
00059 TELEPATHY_QT4_NO_EXPORT void onAcceptFileFinished(Tp::PendingOperation *op);
00060
00061 TELEPATHY_QT4_NO_EXPORT void onSocketConnected();
00062 TELEPATHY_QT4_NO_EXPORT void onSocketDisconnected();
00063 TELEPATHY_QT4_NO_EXPORT void onSocketError(QAbstractSocket::SocketError error);
00064 TELEPATHY_QT4_NO_EXPORT void doTransfer();
00065
00066 private:
00067 TELEPATHY_QT4_NO_EXPORT void connectToHost();
00068 TELEPATHY_QT4_NO_EXPORT void setFinished();
00069
00070 struct Private;
00071 friend struct Private;
00072 Private *mPriv;
00073 };
00074
00075 }
00076
00077 #endif