/* */ #ifndef _D_INITIATOR_MSE_HANDSHAKE_COMMAND_H_ #define _D_INITIATOR_MSE_HANDSHAKE_COMMAND_H_ #include "PeerAbstractCommand.h" #include "RequestGroupAware.h" #include "BtContextAwareCommand.h" namespace aria2 { class MSEHandshake; class InitiatorMSEHandshakeCommand : public PeerAbstractCommand, public BtContextAwareCommand, public RequestGroupAware { public: enum Seq { INITIATOR_SEND_KEY, INITIATOR_WAIT_KEY, INITIATOR_FIND_VC_MARKER, INITIATOR_RECEIVE_PAD_D_LENGTH, INITIATOR_RECEIVE_PAD_D, }; private: Seq _sequence; MSEHandshake* _mseHandshake; protected: virtual bool executeInternal(); virtual bool prepareForNextPeer(time_t wait); virtual void onAbort(Exception* ex); virtual bool exitBeforeExecute(); public: InitiatorMSEHandshakeCommand(int32_t cuid, RequestGroup* requestGroup, const SharedHandle& peer, DownloadEngine* e, const SharedHandle& btContext, const SharedHandle& s); virtual ~InitiatorMSEHandshakeCommand(); }; } // namespace aria2 #endif // _D_INITIATOR_MSE_HANDSHAKE_COMMAND_H_