00001
00023 #ifndef _TelepathyQt4_outgoing_file_transfer_channel_h_HEADER_GUARD_
00024 #define _TelepathyQt4_outgoing_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 OutgoingFileTransferChannel : public FileTransferChannel
00038 {
00039 Q_OBJECT
00040 Q_DISABLE_COPY(OutgoingFileTransferChannel)
00041
00042 public:
00043 static const Feature FeatureCore;
00044
00045 static OutgoingFileTransferChannelPtr create(const ConnectionPtr &connection,
00046 const QString &objectPath, const QVariantMap &immutableProperties);
00047
00048 virtual ~OutgoingFileTransferChannel();
00049
00050 PendingOperation *provideFile(QIODevice *input);
00051
00052 protected:
00053 OutgoingFileTransferChannel(const ConnectionPtr &connection,
00054 const QString &objectPath,
00055 const QVariantMap &immutableProperties,
00056 const Feature &coreFeature = OutgoingFileTransferChannel::FeatureCore);
00057
00058 private Q_SLOTS:
00059 TELEPATHY_QT4_NO_EXPORT void onProvideFileFinished(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 onInputAboutToClose();
00065 TELEPATHY_QT4_NO_EXPORT void doTransfer();
00066
00067 private:
00068 TELEPATHY_QT4_NO_EXPORT void connectToHost();
00069 TELEPATHY_QT4_NO_EXPORT void setFinished();
00070
00071 struct Private;
00072 friend struct Private;
00073 Private *mPriv;
00074 };
00075
00076 }
00077
00078 #endif