#ifndef UTIL_H #define UTIL_H #include #include #include #include #define PAIRTYPE(t1, t2) std::pair namespace i2p { namespace util { namespace config { extern std::map mapArgs; extern std::map > mapMultiArgs; void OptionParser(int argc, const char* const argv[]); int GetArg(const std::string& strArg, int nDefault); std::string GetArg(const std::string& strArg, const std::string& strDefault); const char* GetCharArg(const std::string& strArg, const std::string& nDefault); } namespace filesystem { const boost::filesystem::path &GetDataDir(); std::string GetFullPath (const std::string& filename); boost::filesystem::path GetDefaultDataDir(); boost::filesystem::path GetConfigFile(); void ReadConfigFile(std::map& mapSettingsRet, std::map >& mapMultiSettingsRet); } namespace http { std::string httpRequest(const std::string& address); int httpRequestViaI2pProxy(const std::string& address, std::string &content); // return http code struct url { url(const std::string& url_s); // omitted copy, ==, accessors, ... private: void parse(const std::string& url_s); public: std::string protocol_, host_, path_, query_; std::string portstr_; unsigned int port_; std::string user_; std::string pass_; }; } } } #endif