i2pd/util.h

63 lines
1.6 KiB
C
Raw Normal View History

2014-01-30 03:28:07 +00:00
#ifndef UTIL_H
#define UTIL_H
#include <map>
#include <string>
2014-10-31 18:17:52 +00:00
#include <boost/asio.hpp>
#include <boost/filesystem.hpp>
#include <boost/filesystem/fstream.hpp>
2014-01-30 03:28:07 +00:00
#define PAIRTYPE(t1, t2) std::pair<t1, t2>
2014-01-30 03:28:07 +00:00
namespace i2p
{
namespace util
{
namespace config
{
extern std::map<std::string, std::string> mapArgs;
extern std::map<std::string, std::vector<std::string> > 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
{
2014-02-01 03:51:58 +00:00
const boost::filesystem::path &GetDataDir();
2014-03-13 18:22:32 +00:00
std::string GetFullPath (const std::string& filename);
boost::filesystem::path GetDefaultDataDir();
boost::filesystem::path GetConfigFile();
void ReadConfigFile(std::map<std::string, std::string>& mapSettingsRet,
std::map<std::string, std::vector<std::string> >& mapMultiSettingsRet);
}
namespace http
{
std::string httpRequest(const std::string& address);
2014-04-17 22:54:15 +00:00
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:
2014-04-06 20:18:55 +00:00
std::string protocol_, host_, path_, query_;
2014-04-17 20:22:54 +00:00
std::string portstr_;
unsigned int port_;
std::string user_;
std::string pass_;
};
}
2014-10-31 18:17:52 +00:00
namespace net
{
int GetMTU (const boost::asio::ip::address& localAddress);
}
2014-01-30 03:28:07 +00:00
}
}
#endif