Protocols::BitTorrent::Trackers::MultiTrackerRequestSession Class Reference

#include <MultiTrackerRequestSession.h> [code]

Inherits Protocols::BitTorrent::Trackers::TrackerRequestSession.

Inheritance diagram for Protocols::BitTorrent::Trackers::MultiTrackerRequestSession:

Inheritance graph
[legend]
Collaboration diagram for Protocols::BitTorrent::Trackers::MultiTrackerRequestSession:

Collaboration graph
[legend]
List of all members.

Detailed Description

Sends requests and recieve responses from (possibly) more than one tracker.

This class is used to send tracker requests using HTTP request session to trackers specified in the ctor. After the request is sent and the HTTP response recieved, this class will handle the HTTP response header, parse the raw response body and make the parsed tracker response available to get.

Specifications of the multitracker extension can be found here: http://home.elp.rr.com/tur/multitracker-spec.txt

Note:
According to the specs above, there is an order in which the trackers will be queried specified, so only one tracker will be queried at a time. The "multi" prefix in the name class means that more than one tracker could be queried, but not concurrently!
Todo:
Add implementation and docs.

Definition at line 54 of file MultiTrackerRequestSession.h.

Public Member Functions

 MultiTrackerRequestSession (HttpRequestSession *, Torrent::AnnounceList, TrackerRequestSessionStatus *)
 ~MultiTrackerRequestSession ()
void open ()
void sendRequest (const TrackerRequest &)
void close ()
void abort ()
void httpRequestSessionEstablished ()
void httpRequestSessionError (const QString &)
void httpRequestSessionResponseHeaderRecieved (const ResponseHeader &)
void httpRequestSessionResponseBodyRecieved (const QByteArray &)
void httpRequestSessionClosing ()
void httpRequestSessionClosed ()

Private Types

enum  State { Closed }
 States. More...

Private Member Functions

CALITKO_TESTABLE MultiTrackerRequestSession (const MultiTrackerRequestSession &)
MultiTrackerRequestSessionoperator= (const MultiTrackerRequestSession &)

Private Attributes

HttpRequestSessionhttpRequestSession_
const Torrent::AnnounceList announceList_
TrackerRequestSessionStatusstatus_
State state_


Member Enumeration Documentation

enum Protocols::BitTorrent::Trackers::MultiTrackerRequestSession::State [private]
 

States.

Enumerator:
Closed 

Definition at line 80 of file MultiTrackerRequestSession.h.


Constructor & Destructor Documentation

CALITKO_TESTABLE Protocols::BitTorrent::Trackers::MultiTrackerRequestSession::MultiTrackerRequestSession const MultiTrackerRequestSession  )  [private]
 

MultiTrackerRequestSession::MultiTrackerRequestSession HttpRequestSession ,
Torrent::AnnounceList  ,
TrackerRequestSessionStatus
 

Definition at line 29 of file MultiTrackerRequestSession.cpp.

MultiTrackerRequestSession::~MultiTrackerRequestSession  ) 
 

Definition at line 40 of file MultiTrackerRequestSession.cpp.


Member Function Documentation

void MultiTrackerRequestSession::abort  )  [virtual]
 

Implements Protocols::BitTorrent::Trackers::TrackerRequestSession.

Definition at line 56 of file MultiTrackerRequestSession.cpp.

void MultiTrackerRequestSession::close  )  [virtual]
 

Implements Protocols::BitTorrent::Trackers::TrackerRequestSession.

Definition at line 52 of file MultiTrackerRequestSession.cpp.

void MultiTrackerRequestSession::httpRequestSessionClosed  ) 
 

Definition at line 82 of file MultiTrackerRequestSession.cpp.

void MultiTrackerRequestSession::httpRequestSessionClosing  ) 
 

Definition at line 78 of file MultiTrackerRequestSession.cpp.

void MultiTrackerRequestSession::httpRequestSessionError const QString &   ) 
 

Definition at line 64 of file MultiTrackerRequestSession.cpp.

void MultiTrackerRequestSession::httpRequestSessionEstablished  ) 
 

Definition at line 60 of file MultiTrackerRequestSession.cpp.

void MultiTrackerRequestSession::httpRequestSessionResponseBodyRecieved const QByteArray &   ) 
 

Definition at line 73 of file MultiTrackerRequestSession.cpp.

void MultiTrackerRequestSession::httpRequestSessionResponseHeaderRecieved const ResponseHeader  ) 
 

Definition at line 68 of file MultiTrackerRequestSession.cpp.

void MultiTrackerRequestSession::open  )  [virtual]
 

Implements Protocols::BitTorrent::Trackers::TrackerRequestSession.

Definition at line 44 of file MultiTrackerRequestSession.cpp.

MultiTrackerRequestSession& Protocols::BitTorrent::Trackers::MultiTrackerRequestSession::operator= const MultiTrackerRequestSession  )  [private]
 

void MultiTrackerRequestSession::sendRequest const TrackerRequest  )  [virtual]
 

Implements Protocols::BitTorrent::Trackers::TrackerRequestSession.

Definition at line 48 of file MultiTrackerRequestSession.cpp.


Member Data Documentation

const Torrent::AnnounceList Protocols::BitTorrent::Trackers::MultiTrackerRequestSession::announceList_ [private]
 

Definition at line 87 of file MultiTrackerRequestSession.h.

HttpRequestSession* Protocols::BitTorrent::Trackers::MultiTrackerRequestSession::httpRequestSession_ [private]
 

Definition at line 86 of file MultiTrackerRequestSession.h.

State Protocols::BitTorrent::Trackers::MultiTrackerRequestSession::state_ [private]
 

Definition at line 89 of file MultiTrackerRequestSession.h.

TrackerRequestSessionStatus* Protocols::BitTorrent::Trackers::MultiTrackerRequestSession::status_ [private]
 

Definition at line 88 of file MultiTrackerRequestSession.h.


The documentation for this class was generated from the following files: