/* */ #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: ~FeatureConfig(); static const 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