/* */ #ifndef _D_BT_CONTEXT_H_ #define _D_BT_CONTEXT_H_ #include "common.h" #include "FileEntry.h" #include "AnnounceTier.h" #define INFO_HASH_LENGTH 20 #define MAX_PEER_ERROR 5 #define MAX_PEERS 55 typedef deque AnnounceTiers; class BtContext { public: virtual ~BtContext() {} enum FILE_MODE { SINGLE, MULTI }; virtual const unsigned char* getInfoHash() const = 0; virtual int getInfoHashLength() const = 0; virtual string getInfoHashAsString() const = 0; virtual string getPieceHash(int index) const = 0; virtual const Strings& getPieceHashes() const = 0; virtual long long int getTotalLength() const = 0; virtual FILE_MODE getFileMode() const = 0; virtual FileEntries getFileEntries() const = 0; virtual AnnounceTiers getAnnounceTiers() const = 0; virtual void load(const string& torrentFile) = 0; virtual string getName() const = 0; virtual int getPieceLength() const = 0; virtual int getNumPieces() const = 0; /** * Returns the peer id of localhost, 20 byte length */ virtual const unsigned char* getPeerId() = 0; }; typedef SharedHandle BtContextHandle; #endif // _D_BT_CONTEXT_H_