/* */ #ifndef _D_PEER_MESSAGE_H_ #define _D_PEER_MESSAGE_H_ #include "common.h" #include "Logger.h" #include "Peer.h" #include "Piece.h" #include "SharedHandle.h" #include class PeerInteraction; class PeerMessage { protected: bool inProgress; bool invalidate; bool uploading; int cuid; PeerHandle peer; PeerInteraction* peerInteraction; const Logger* logger; public: PeerMessage(); virtual ~PeerMessage() {} bool isInProgress() const { return inProgress; } bool isInvalidate() const { return invalidate; } bool isUploading() const { return uploading; } int getCuid() const { return cuid; } void setCuid(int cuid) { this->cuid = cuid; } PeerHandle getPeer() const { return this->peer; } void setPeer(const PeerHandle& peer) { this->peer = peer; } PeerInteraction* getPeerInteraction() const { return peerInteraction; } void setPeerInteraction(PeerInteraction* peerInteraction) { this->peerInteraction = peerInteraction; } virtual int getId() const = 0; virtual void receivedAction() = 0; virtual void send() = 0; virtual void check() const {} virtual string toString() const = 0; virtual void onPush() {} virtual void onChoked() {} virtual void onCanceled(int index, int begin, int blockLength) {} virtual void onAbortPiece(const Piece& piece) {} }; typedef SharedHandle PeerMessageHandle; #endif // _D_PEER_MESSAGE_H_