int main(int argc, char* argv[]) { // expect one argument if (argc != 2) { std::cerr << "usage: " << argv[0] << " url-list-file" << std::endl; return 1; } // this example program downloads all urls in the text file argv[1] to the current directory char* url_file_name = argv[1]; // start by creating an io_service object boost::asio::io_service io_service; // construct an instance of curl::multi curl::multi manager(io_service); // treat each line in url_file_name as url and start a download from it std::ifstream url_file(url_file_name); while (!url_file.eof()) { std::string url; std::getline(url_file, url); start_download(manager, url); } // let Boost.Asio do its magic io_service.run(); std::cout << "All downloads completed" << std::endl; return 0; }
url url_general (string name, int type= URL_SYSTEM) { if (starts (name, "local:")) return url_local (name (6, N (name))); if (starts (name, "file://")) return url_file (name (7, N (name))); if (starts (name, "http://")) return url_http (name (7, N (name))); if (starts (name, "https://")) return url_https (name (8, N (name))); if (starts (name, "ftp://")) return url_ftp (name (6, N (name))); if (starts (name, "tmfs://")) return url_tmfs (name (7, N (name))); if (starts (name, "//")) return url_blank (name (2, N (name))); if (heuristic_is_path (name, type)) return url_path (name, type); if (heuristic_is_default (name, type)) return url_default (name, type); if (heuristic_is_mingw_default (name, type)) return url_mingw_default (name, type); if (heuristic_is_http (name)) return url_http (name); if (heuristic_is_ftp (name)) return url_ftp (name); return url_get_name (name, type); }