// // 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 // 02110-1301, USA. #ifndef GADUDCCTRANS_H #define GADUDCCTRANS_H #include #include class TQSocketNotifier; class gg_dcc; class GaduAccount; class GaduContact; namespace Kopete { class Transfer; } namespace Kopete { class FileTransferInfo; } class GaduDCC; class GaduDCCTransaction: TQObject { Q_OBJECT public: GaduDCCTransaction( GaduDCC*, const char* name = NULL ); ~GaduDCCTransaction(); bool setupIncoming( const unsigned int, GaduContact* ); bool setupIncoming( gg_dcc* ); bool setupOutgoing( GaduContact*, TQString& ); unsigned int recvUIN(); unsigned int peerUIN(); public slots: signals: protected: protected slots: private slots: void watcher(); void slotIncomingTransferAccepted ( Kopete::Transfer*, const TQString& ); 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_; TQSocketNotifier* read_; TQSocketNotifier* write_; GaduContact* contact; Kopete::Transfer* transfer_; long transferId_; TQFile localFile_; int peer; unsigned int incoming; GaduDCC* gaduDCC_; }; #endif