/* */ #ifndef _D_BITFIELD_MAN_FACTORY_H_ #define _D_BITFIELD_MAN_FACTORY_H_ #include "common.h" #include "SharedHandle.h" namespace aria2 { class Randomizer; class BitfieldMan; class BitfieldManFactory { private: static SharedHandle factory; SharedHandle randomizer; BitfieldManFactory(); public: ~BitfieldManFactory(); static SharedHandle getFactoryInstance(); BitfieldMan* createBitfieldMan(size_t blockLength, uint64_t totalLength); static void setDefaultRandomizer(const SharedHandle& randomizer); static SharedHandle getDefaultRandomizer(); void setRandomizer(const SharedHandle& randomizer); SharedHandle getRandomizer() const; }; typedef SharedHandle BitfieldManFactoryHandle; } // namespace aria2 #endif // _D_BITFIELD_MAN_FACTORY_H_