Audacity 3.2.0
Classes | Functions
audacity::cloud::audiocom::sync::anonymous_namespace{ResumedSnaphotUploadOperation.cpp} Namespace Reference

Classes

class  ResumedSnaphotUploadOperation
 

Functions

bool IsUrlExpired (const std::string &url)
 

Function Documentation

◆ IsUrlExpired()

bool audacity::cloud::audiocom::sync::anonymous_namespace{ResumedSnaphotUploadOperation.cpp}::IsUrlExpired ( const std::string &  url)

Definition at line 44 of file ResumedSnaphotUploadOperation.cpp.

45{
46 const auto parsedUri = ParseUri(url);
47 const auto parsedQuery = ParseUriQuery(parsedUri.Query);
48
49 const auto amzDateIt = parsedQuery.find("X-Amz-Date");
50
51 if (amzDateIt == parsedQuery.end())
52 return false;
53
54 SystemTime time;
55
56 if (!ParseISO8601Date(std::string(amzDateIt->second), &time))
57 return false;
58
59 const auto amzExpiresIt = parsedQuery.find("X-Amz-Expires");
60
61 if (amzExpiresIt == parsedQuery.end())
62 return false;
63
64 int64_t expiresSeconds;
65
66 auto expiresParseResult = FromChars(
67 amzExpiresIt->second.data(),
68 amzExpiresIt->second.data() + amzExpiresIt->second.size(),
69 expiresSeconds);
70
71 if (expiresParseResult.ec != std::errc {})
72 return false;
73
74 return (time + std::chrono::seconds { expiresSeconds }) <
75 std::chrono::system_clock::now();
76}
FromCharsResult FromChars(const char *buffer, const char *last, float &value) noexcept
Parse a string into a single precision floating point value, always uses the dot as decimal.
Definition: FromChars.cpp:153
QueryFields ParseUriQuery(std::string_view query, std::string_view delimiter) noexcept
Parses URI query and returns QueryFields structure with parsed fields.
Definition: UriParser.cpp:59
UriFields ParseUri(std::string_view uri) noexcept
Definition: UriParser.cpp:9
bool ParseISO8601Date(const std::string &dateString, SystemTime *time)
std::chrono::system_clock::time_point SystemTime

References FromChars(), audacity::ParseISO8601Date(), ParseUri(), and ParseUriQuery().

Referenced by audacity::cloud::audiocom::sync::anonymous_namespace{ResumedSnaphotUploadOperation.cpp}::ResumedSnaphotUploadOperation::Perform().

Here is the call graph for this function:
Here is the caller graph for this function: