/* */ #ifndef D_UDP_TRACKER_REQUEST_H #define D_UDP_TRACKER_REQUEST_H #include "common.h" #include #include #include "SharedHandle.h" #include "TimerA2.h" namespace aria2 { enum UDPTrackerAction { UDPT_ACT_CONNECT = 0, UDPT_ACT_ANNOUNCE = 1, UDPT_ACT_SCRAPE = 2, UDPT_ACT_ERROR = 3 }; enum UDPTrackerError { UDPT_ERR_SUCCESS, UDPT_ERR_TRACKER, UDPT_ERR_TIMEOUT, UDPT_ERR_NETWORK, UDPT_ERR_SHUTDOWN }; enum UDPTrackerState { UDPT_STA_PENDING, UDPT_STA_COMPLETE }; enum UDPTrackerEvent { UDPT_EVT_NONE = 0, UDPT_EVT_COMPLETED = 1, UDPT_EVT_STARTED = 2, UDPT_EVT_STOPPED = 3 }; struct UDPTrackerReply { int32_t action; int32_t transactionId; int32_t interval; int32_t leechers; int32_t seeders; std::vector > peers; UDPTrackerReply(); }; struct UDPTrackerRequest { std::string remoteAddr; uint16_t remotePort; int64_t connectionId; int32_t action; int32_t transactionId; std::string infohash; std::string peerId; int64_t downloaded; int64_t left; int64_t uploaded; int32_t event; uint32_t ip; uint32_t key; int32_t numWant; uint16_t port; uint16_t extensions; int state; int error; Timer dispatched; int failCount; SharedHandle reply; UDPTrackerRequest(); }; } // namespace aria2 #endif // D_UDP_TRACKER_REQUEST_H