List<Uri> BuiltinProtocolHandlersLocal::listDir(const Uri &uri) { List<Uri> res; DIR *dir = ::opendir(uri.uri().data()); struct dirent *dirEntry; while ((dirEntry = ::readdir(dir))) { const Uri uriEnt(uri.uri(), dirEntry->d_name); res.push_back(uriEnt); } ::closedir(dir); return res; }
std::auto_ptr<Database> MongoDbClient::Get(const Uri &uri) { const MongoDbUri info(uri); if (!info.valid()) { throw std::logic_error(std::string("invalid mongodb connection string: ").append(uri.uri())); } return std::auto_ptr<Database>(new MongoDbClient(info)); }