// -*- Mode: c++-mode; c-basic-offset: 2; indent-tabs-mode: t; tab-width: 2; -*- // // Copyright (C) 2004 Grzegorz Jaskiewicz // // gadudcctransaction.cpp // // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License // as published by the Free Software Foundation; either version 2 // of the License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA // 02111-1307, USA. #ifndef GADUDCCTRANS_H #define GADUDCCTRANS_H #include #include class QSocketNotifier; class gg_dcc; class GaduAccount; class GaduContact; namespace Kopete { class Transfer; } namespace Kopete { class FileTransferInfo; } class GaduDCC; class GaduDCCTransaction: QObject { Q_OBJECT public: GaduDCCTransaction( GaduDCC*, const char* name = NULL ); ~GaduDCCTransaction(); bool setupIncoming( const unsigned int, GaduContact* ); bool setupIncoming( gg_dcc* ); bool setupOutgoing( GaduContact*, QString& ); unsigned int recvUIN(); unsigned int peerUIN(); public slots: signals: protected: protected slots: private slots: void watcher(); void slotIncomingTransferAccepted ( Kopete::Transfer*, const QString& ); void slotTransferRefused ( const Kopete::FileTransferInfo& ); void slotTransferResult(); private: void enableNotifiers( int ); void disableNotifiers(); void checkDescriptor(); void closeDCC(); void destroyNotifiers(); void createNotifiers( bool ); void askIncommingTransfer(); gg_dcc* dccSock_; QSocketNotifier* read_; QSocketNotifier* write_; GaduContact* contact; Kopete::Transfer* transfer_; long transferId_; QFile localFile_; int peer; unsigned int incoming; GaduDCC* gaduDCC_; }; #endif