/* */ #ifndef _D_DEFAULT_PEER_STORAGE_H_ #define _D_DEFAULT_PEER_STORAGE_H_ #include "PeerStorage.h" #include "BtContext.h" #include "Option.h" #include "Logger.h" #include "BtRuntime.h" #define MAX_PEER_LIST_SIZE 60 #define MAX_PEER_ERROR 5 class DefaultPeerStorage : public PeerStorage { private: BtContextHandle btContext; const Option* option; Peers peers; int maxPeerListSize; Logger* logger; BtRuntimeHandle btRuntime; long long int removedPeerSessionDownloadLength; long long int removedPeerSessionUploadLength; public: DefaultPeerStorage(BtContextHandle btContext, const Option* option); virtual ~DefaultPeerStorage(); void setBtRuntime(const BtRuntimeHandle& btRuntime) { this->btRuntime = btRuntime; } BtRuntimeHandle getBtRuntime() const { return btRuntime; } virtual bool addPeer(const PeerHandle& peer); int countPeer() const; virtual PeerHandle getUnusedPeer(); PeerHandle getPeer(const string& ipaddr, int port) const; virtual void addPeer(const Peers& peers); virtual const Peers& getPeers(); virtual bool isPeerAvailable(); virtual Peers getActivePeers(); virtual TransferStat calculateStat(); void setMaxPeerListSize(int size) { this->maxPeerListSize = size; } int getMaxPeerListSize() const { return maxPeerListSize; } void deleteUnusedPeer(int delSize); }; #endif // _D_DEFAULT_PEER_STORAGE_H_