/* */ #ifndef _D_DEFAULT_EXTENSION_MESSAGE_FACTORY_H_ #define _D_DEFAULT_EXTENSION_MESSAGE_FACTORY_H_ #include "ExtensionMessageFactory.h" namespace aria2 { class PeerStorage; class Peer; class Logger; class ExtensionMessageRegistry; class DownloadContext; class BtMessageFactory; class BtMessageDispatcher; class UTMetadataRequestTracker; class BtRuntime; class DefaultExtensionMessageFactory:public ExtensionMessageFactory { private: SharedHandle _peerStorage; SharedHandle _peer; SharedHandle _registry; SharedHandle _dctx; SharedHandle _btRuntime; WeakHandle _messageFactory; WeakHandle _dispatcher; WeakHandle _tracker; Logger* _logger; public: DefaultExtensionMessageFactory(); DefaultExtensionMessageFactory (const SharedHandle& peer, const SharedHandle& registry); virtual ~DefaultExtensionMessageFactory(); virtual SharedHandle createMessage(const unsigned char* data, size_t length); void setPeerStorage(const SharedHandle& peerStorage); void setPeer(const SharedHandle& peer); void setExtensionMessageRegistry (const SharedHandle& registry) { _registry = registry; } void setDownloadContext(const SharedHandle& dctx) { _dctx = dctx; } void setBtMessageFactory(const WeakHandle& factory) { _messageFactory = factory; } void setBtMessageDispatcher(const WeakHandle& disp) { _dispatcher = disp; } void setUTMetadataRequestTracker (const WeakHandle& tracker) { _tracker = tracker; } void setBtRuntime(const SharedHandle& btRuntime) { _btRuntime = btRuntime; } }; typedef SharedHandle DefaultExtensionMessageFactoryHandle; } // namespace aria2 #endif // _D_DEFAULT_EXTENSION_MESSAGE_FACTORY_H_