Autonomy Software C++ 24.5.1
Welcome to the Autonomy Software repository of the Mars Rover Design Team (MRDT) at Missouri University of Science and Technology (Missouri S&T)! API reference contains the source code and other resources for the development of the autonomy software for our Mars rover. The Autonomy Software project aims to compete in the University Rover Challenge (URC) by demonstrating advanced autonomous capabilities and robust navigation algorithms.
Loading...
Searching...
No Matches
duckdb::HTTPUtil Class Reference

Public Member Functions

 HTTPUtil (const HTTPUtil &other)=delete
 
HTTPUtiloperator= (const HTTPUtil &)=delete
 
virtual string GetName () const
 
virtual unique_ptr< HTTPParamsInitializeParameters (DatabaseInstance &db, const string &path)
 
virtual unique_ptr< HTTPParamsInitializeParameters (ClientContext &context, const string &path)
 
virtual unique_ptr< HTTPParamsInitializeParameters (optional_ptr< FileOpener > opener, optional_ptr< FileOpenerInfo > info)
 
virtual unique_ptr< HTTPClientInitializeClient (HTTPParams &http_params, const string &proto_host_port)
 
virtual void CloseClient (unique_ptr< HTTPClient > &&client)
 Close a client — implementations may cache it for reuse.
 
unique_ptr< HTTPResponseRequest (BaseRequest &request)
 
unique_ptr< HTTPResponseRequest (BaseRequest &request, unique_ptr< HTTPClient > &client)
 
virtual unique_ptr< HTTPResponseSendRequest (BaseRequest &request, unique_ptr< HTTPClient > &client)
 
virtual void LogRequest (BaseRequest &request, optional_ptr< HTTPResponse > response)
 

Static Public Member Functions

static HTTPUtilGet (DatabaseInstance &db)
 
static void ParseHTTPProxyHost (string &proxy_value, string &hostname_out, idx_t &port_out, idx_t default_port=80)
 
static void DecomposeURL (const string &url, string &path_out, string &proto_host_port_out)
 
static HTTPStatusCode ToStatusCode (int32_t status_code)
 
static string GetStatusMessage (HTTPStatusCode status)
 
static bool IsHTTPProtocol (const string &url)
 
static void BumpToSecureProtocol (string &url)
 
static duckdb::unique_ptr< HTTPResponseRunRequestWithRetry (const std::function< unique_ptr< HTTPResponse >(void)> &on_request, const BaseRequest &request, const std::function< void(void)> &retry_cb)
 

Member Function Documentation

◆ ToStatusCode()

HTTPStatusCode duckdb::HTTPUtil::ToStatusCode ( int32_t  status_code)
static
68147 {
68148 switch (status_code) {
68149 case 100:
68150 return HTTPStatusCode::Continue_100;
68151 case 101:
68152 return HTTPStatusCode::SwitchingProtocol_101;
68153 case 102:
68154 return HTTPStatusCode::Processing_102;
68155 case 103:
68156 return HTTPStatusCode::EarlyHints_103;
68157 case 200:
68158 return HTTPStatusCode::OK_200;
68159 case 201:
68160 return HTTPStatusCode::Created_201;
68161 case 202:
68162 return HTTPStatusCode::Accepted_202;
68163 case 203:
68164 return HTTPStatusCode::NonAuthoritativeInformation_203;
68165 case 204:
68166 return HTTPStatusCode::NoContent_204;
68167 case 205:
68168 return HTTPStatusCode::ResetContent_205;
68169 case 206:
68170 return HTTPStatusCode::PartialContent_206;
68171 case 207:
68172 return HTTPStatusCode::MultiStatus_207;
68173 case 208:
68174 return HTTPStatusCode::AlreadyReported_208;
68175 case 226:
68176 return HTTPStatusCode::IMUsed_226;
68177 case 300:
68178 return HTTPStatusCode::MultipleChoices_300;
68179 case 301:
68180 return HTTPStatusCode::MovedPermanently_301;
68181 case 302:
68182 return HTTPStatusCode::Found_302;
68183 case 303:
68184 return HTTPStatusCode::SeeOther_303;
68185 case 304:
68186 return HTTPStatusCode::NotModified_304;
68187 case 305:
68188 return HTTPStatusCode::UseProxy_305;
68189 case 306:
68190 return HTTPStatusCode::unused_306;
68191 case 307:
68192 return HTTPStatusCode::TemporaryRedirect_307;
68193 case 308:
68194 return HTTPStatusCode::PermanentRedirect_308;
68195 case 400:
68196 return HTTPStatusCode::BadRequest_400;
68197 case 401:
68198 return HTTPStatusCode::Unauthorized_401;
68199 case 402:
68200 return HTTPStatusCode::PaymentRequired_402;
68201 case 403:
68202 return HTTPStatusCode::Forbidden_403;
68203 case 404:
68204 return HTTPStatusCode::NotFound_404;
68205 case 405:
68206 return HTTPStatusCode::MethodNotAllowed_405;
68207 case 406:
68208 return HTTPStatusCode::NotAcceptable_406;
68209 case 407:
68210 return HTTPStatusCode::ProxyAuthenticationRequired_407;
68211 case 408:
68212 return HTTPStatusCode::RequestTimeout_408;
68213 case 409:
68214 return HTTPStatusCode::Conflict_409;
68215 case 410:
68216 return HTTPStatusCode::Gone_410;
68217 case 411:
68218 return HTTPStatusCode::LengthRequired_411;
68219 case 412:
68220 return HTTPStatusCode::PreconditionFailed_412;
68221 case 413:
68222 return HTTPStatusCode::PayloadTooLarge_413;
68223 case 414:
68224 return HTTPStatusCode::UriTooLong_414;
68225 case 415:
68226 return HTTPStatusCode::UnsupportedMediaType_415;
68227 case 416:
68228 return HTTPStatusCode::RangeNotSatisfiable_416;
68229 case 417:
68230 return HTTPStatusCode::ExpectationFailed_417;
68231 case 418:
68232 return HTTPStatusCode::ImATeapot_418;
68233 case 421:
68234 return HTTPStatusCode::MisdirectedRequest_421;
68235 case 422:
68236 return HTTPStatusCode::UnprocessableContent_422;
68237 case 423:
68238 return HTTPStatusCode::Locked_423;
68239 case 424:
68240 return HTTPStatusCode::FailedDependency_424;
68241 case 425:
68242 return HTTPStatusCode::TooEarly_425;
68243 case 426:
68244 return HTTPStatusCode::UpgradeRequired_426;
68245 case 428:
68246 return HTTPStatusCode::PreconditionRequired_428;
68247 case 429:
68248 return HTTPStatusCode::TooManyRequests_429;
68249 case 431:
68250 return HTTPStatusCode::RequestHeaderFieldsTooLarge_431;
68251 case 451:
68252 return HTTPStatusCode::UnavailableForLegalReasons_451;
68253 case 500:
68254 return HTTPStatusCode::InternalServerError_500;
68255 case 501:
68256 return HTTPStatusCode::NotImplemented_501;
68257 case 502:
68258 return HTTPStatusCode::BadGateway_502;
68259 case 503:
68260 return HTTPStatusCode::ServiceUnavailable_503;
68261 case 504:
68262 return HTTPStatusCode::GatewayTimeout_504;
68263 case 505:
68264 return HTTPStatusCode::HttpVersionNotSupported_505;
68265 case 506:
68266 return HTTPStatusCode::VariantAlsoNegotiates_506;
68267 case 507:
68268 return HTTPStatusCode::InsufficientStorage_507;
68269 case 508:
68270 return HTTPStatusCode::LoopDetected_508;
68271 case 510:
68272 return HTTPStatusCode::NotExtended_510;
68273 case 511:
68274 return HTTPStatusCode::NetworkAuthenticationRequired_511;
68275 default:
68276 return HTTPStatusCode::INVALID;
68277 }
68278}

◆ GetStatusMessage()

string duckdb::HTTPUtil::GetStatusMessage ( HTTPStatusCode  status)
static
68280 {
68281 switch (status) {
68282 case HTTPStatusCode::Continue_100:
68283 return "Continue";
68284 case HTTPStatusCode::SwitchingProtocol_101:
68285 return "Switching Protocol";
68286 case HTTPStatusCode::Processing_102:
68287 return "Processing";
68288 case HTTPStatusCode::EarlyHints_103:
68289 return "Early Hints";
68290 case HTTPStatusCode::OK_200:
68291 return "OK";
68292 case HTTPStatusCode::Created_201:
68293 return "Created";
68294 case HTTPStatusCode::Accepted_202:
68295 return "Accepted";
68296 case HTTPStatusCode::NonAuthoritativeInformation_203:
68297 return "Non-Authoritative Information";
68298 case HTTPStatusCode::NoContent_204:
68299 return "No Content";
68300 case HTTPStatusCode::ResetContent_205:
68301 return "Reset Content";
68302 case HTTPStatusCode::PartialContent_206:
68303 return "Partial Content";
68304 case HTTPStatusCode::MultiStatus_207:
68305 return "Multi-Status";
68306 case HTTPStatusCode::AlreadyReported_208:
68307 return "Already Reported";
68308 case HTTPStatusCode::IMUsed_226:
68309 return "IM Used";
68310 case HTTPStatusCode::MultipleChoices_300:
68311 return "Multiple Choices";
68312 case HTTPStatusCode::MovedPermanently_301:
68313 return "Moved Permanently";
68314 case HTTPStatusCode::Found_302:
68315 return "Found";
68316 case HTTPStatusCode::SeeOther_303:
68317 return "See Other";
68318 case HTTPStatusCode::NotModified_304:
68319 return "Not Modified";
68320 case HTTPStatusCode::UseProxy_305:
68321 return "Use Proxy";
68322 case HTTPStatusCode::unused_306:
68323 return "unused";
68324 case HTTPStatusCode::TemporaryRedirect_307:
68325 return "Temporary Redirect";
68326 case HTTPStatusCode::PermanentRedirect_308:
68327 return "Permanent Redirect";
68328 case HTTPStatusCode::BadRequest_400:
68329 return "Bad Request";
68330 case HTTPStatusCode::Unauthorized_401:
68331 return "Unauthorized";
68332 case HTTPStatusCode::PaymentRequired_402:
68333 return "Payment Required";
68334 case HTTPStatusCode::Forbidden_403:
68335 return "Forbidden";
68336 case HTTPStatusCode::NotFound_404:
68337 return "Not Found";
68338 case HTTPStatusCode::MethodNotAllowed_405:
68339 return "Method Not Allowed";
68340 case HTTPStatusCode::NotAcceptable_406:
68341 return "Not Acceptable";
68342 case HTTPStatusCode::ProxyAuthenticationRequired_407:
68343 return "Proxy Authentication Required";
68344 case HTTPStatusCode::RequestTimeout_408:
68345 return "Request Timeout";
68346 case HTTPStatusCode::Conflict_409:
68347 return "Conflict";
68348 case HTTPStatusCode::Gone_410:
68349 return "Gone";
68350 case HTTPStatusCode::LengthRequired_411:
68351 return "Length Required";
68352 case HTTPStatusCode::PreconditionFailed_412:
68353 return "Precondition Failed";
68354 case HTTPStatusCode::PayloadTooLarge_413:
68355 return "Payload Too Large";
68356 case HTTPStatusCode::UriTooLong_414:
68357 return "URI Too Long";
68358 case HTTPStatusCode::UnsupportedMediaType_415:
68359 return "Unsupported Media Type";
68360 case HTTPStatusCode::RangeNotSatisfiable_416:
68361 return "Range Not Satisfiable";
68362 case HTTPStatusCode::ExpectationFailed_417:
68363 return "Expectation Failed";
68364 case HTTPStatusCode::ImATeapot_418:
68365 return "I'm a teapot";
68366 case HTTPStatusCode::MisdirectedRequest_421:
68367 return "Misdirected Request";
68368 case HTTPStatusCode::UnprocessableContent_422:
68369 return "Unprocessable Content";
68370 case HTTPStatusCode::Locked_423:
68371 return "Locked";
68372 case HTTPStatusCode::FailedDependency_424:
68373 return "Failed Dependency";
68374 case HTTPStatusCode::TooEarly_425:
68375 return "Too Early";
68376 case HTTPStatusCode::UpgradeRequired_426:
68377 return "Upgrade Required";
68378 case HTTPStatusCode::PreconditionRequired_428:
68379 return "Precondition Required";
68380 case HTTPStatusCode::TooManyRequests_429:
68381 return "Too Many Requests";
68382 case HTTPStatusCode::RequestHeaderFieldsTooLarge_431:
68383 return "Request Header Fields Too Large";
68384 case HTTPStatusCode::UnavailableForLegalReasons_451:
68385 return "Unavailable For Legal Reasons";
68386 case HTTPStatusCode::NotImplemented_501:
68387 return "Not Implemented";
68388 case HTTPStatusCode::BadGateway_502:
68389 return "Bad Gateway";
68390 case HTTPStatusCode::ServiceUnavailable_503:
68391 return "Service Unavailable";
68392 case HTTPStatusCode::GatewayTimeout_504:
68393 return "Gateway Timeout";
68394 case HTTPStatusCode::HttpVersionNotSupported_505:
68395 return "HTTP Version Not Supported";
68396 case HTTPStatusCode::VariantAlsoNegotiates_506:
68397 return "Variant Also Negotiates";
68398 case HTTPStatusCode::InsufficientStorage_507:
68399 return "Insufficient Storage";
68400 case HTTPStatusCode::LoopDetected_508:
68401 return "Loop Detected";
68402 case HTTPStatusCode::NotExtended_510:
68403 return "Not Extended";
68404 case HTTPStatusCode::NetworkAuthenticationRequired_511:
68405 return "Network Authentication Required";
68406
68407 default:
68408 case HTTPStatusCode::InternalServerError_500:
68409 return "Internal Server Error";
68410 }
68411}

The documentation for this class was generated from the following file: