/* */ #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; Peers incomingPeers; 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); virtual bool addIncomingPeer(const PeerHandle& peer); int32_t 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(); virtual void returnPeer(const PeerHandle& peer); void setMaxPeerListSize(int size) { this->maxPeerListSize = size; } int getMaxPeerListSize() const { return maxPeerListSize; } void deleteUnusedPeer(int delSize); void onErasingPeer(const PeerHandle& peer); const Peers& getIncomingPeers() const { return incomingPeers; } }; #endif // _D_DEFAULT_PEER_STORAGE_H_