/* */ #ifndef _D_FEATURE_CONFIG_H_ #define _D_FEATURE_CONFIG_H_ #include "common.h" #include #include #include "SharedHandle.h" namespace aria2 { typedef std::map PortMap; typedef std::map FeatureMap; class FeatureConfig { private: static SharedHandle _featureConfig; PortMap _defaultPorts; FeatureMap _features; FeatureConfig(); public: static SharedHandle getInstance(); uint16_t getDefaultPort(const std::string& protocol) const; bool isSupported(const std::string& feature) const; std::string featureSummary() const; const FeatureMap& getFeatures() const { return _features; } static const std::string FEATURE_HTTPS; static const std::string FEATURE_BITTORRENT; static const std::string FEATURE_METALINK; static const std::string FEATURE_MESSAGE_DIGEST; static const std::string FEATURE_ASYNC_DNS; static const std::string FEATURE_XML_RPC; static const std::string FEATURE_GZIP; static const std::string FEATURE_FIREFOX3_COOKIE; }; } // namespace aria2 #endif // _D_FEATURE_CONFIG_H_