/* */ #ifndef _D_PEER_INITIATE_CONNECTION_H_ #define _D_PEER_INITIATE_CONNECTION_H_ #include "PeerAbstractCommand.h" namespace aria2 { class RequestGroup; class BtRuntime; class PeerStorage; class PieceStorage; class PeerInitiateConnectionCommand : public PeerAbstractCommand { private: RequestGroup* _requestGroup; SharedHandle _btRuntime; SharedHandle _peerStorage; SharedHandle _pieceStorage; bool _mseHandshakeEnabled; protected: virtual bool executeInternal(); virtual bool prepareForNextPeer(time_t wait); virtual void onAbort(); virtual bool exitBeforeExecute(); public: PeerInitiateConnectionCommand(int cuid, RequestGroup* requestGroup, const SharedHandle& peer, DownloadEngine* e, const SharedHandle& btRuntime, bool mseHandshakeEnabled = true); virtual ~PeerInitiateConnectionCommand(); void setPeerStorage(const SharedHandle& peerStorage); void setPieceStorage(const SharedHandle& pieceStorage); }; } // namespace aria2 #endif // _D_PEER_INITIATE_CONNECTION_H_