/* */ #ifndef _D_DEFAULT_BT_REQUEST_FACTORY_H_ #define _D_DEFAULT_BT_REQUEST_FACTORY_H_ #include "BtRequestFactory.h" #include "BtContext.h" #include "PieceStorage.h" #include "Piece.h" #include "Peer.h" #include "BtMessageDispatcher.h" #include "BtRegistry.h" #include "LogFactory.h" class DefaultBtRequestFactory : public BtRequestFactory { private: int cuid; BtContextHandle btContext; PieceStorageHandle pieceStorage; PeerHandle peer; BtMessageDispatcherHandle dispatcher; Pieces pieces; public: DefaultBtRequestFactory(): cuid(0), btContext(0), pieceStorage(0), peer(0), dispatcher(0) { LogFactory::getInstance()->debug("DefaultBtRequestFactory::instantiated"); } virtual ~DefaultBtRequestFactory() { LogFactory::getInstance()->debug("DefaultBtRequestFactory::deleted"); } virtual void addTargetPiece(const PieceHandle& piece) { pieces.push_back(piece); } virtual void removeTargetPiece(const PieceHandle& piece); virtual void removeAllTargetPiece(); virtual int countTargetPiece() { return pieces.size(); } virtual void removeCompletedPiece(); virtual BtMessages createRequestMessages(int max); virtual BtMessages createRequestMessagesOnEndGame(int max); Pieces& getTargetPieces() { return pieces; } void setCuid(int32_t cuid) { this->cuid = cuid; } int32_t getCuid() const { return cuid; } void setBtContext(const BtContextHandle& btContext) { this->btContext = btContext; this->pieceStorage = PIECE_STORAGE(btContext); } BtContextHandle getBtContext() const { return btContext; } PeerHandle getPeer() const { return peer; } void setPeer(const PeerHandle& peer) { this->peer = peer; } void setBtMessageDispatcher(const BtMessageDispatcherHandle& dispatcher) { this->dispatcher = dispatcher; } }; typedef SharedHandle DefaultBtRequestFactoryHandle; #endif // _D_DEFAULT_BT_REQUEST_FACTORY_H_