/* */ #ifndef _D_EXTENDED_MESSAGING_AWARE_H_ #define _D_EXTENDED_MESSAGING_AWARE_H_ #include "common.h" #include "BtConstants.h" #include "A2STR.h" #include namespace aria2 { class ExtendedMessagingAware { private: Extensions _extensions; public: ExtendedMessagingAware() { _extensions["ut_pex"] = 8; } virtual ~ExtendedMessagingAware() {} const Extensions& getExtensions() const { return _extensions; } uint8_t getExtensionMessageID(const std::string& name) const { Extensions::const_iterator itr = _extensions.find(name); if(itr == _extensions.end()) { return 0; } else { return (*itr).second; } } std::string getExtensionName(uint8_t id) const { for(Extensions::const_iterator itr = _extensions.begin(); itr != _extensions.end(); ++itr) { const Extensions::value_type& p = *itr; if(p.second == id) { return p.first; } } return A2STR::NIL; } void removeExtension(const std::string& name) { _extensions.erase(name); } }; } // namespace aria2 #endif // _D_EXTENDED_MESSAGING_AWARE_H_