16 #ifndef ALEXA_CLIENT_SDK_AVSCOMMON_UTILS_INCLUDE_AVSCOMMON_UTILS_LIBCURLUTILS_LIBCURLHTTP2REQUEST_H_ 17 #define ALEXA_CLIENT_SDK_AVSCOMMON_UTILS_INCLUDE_AVSCOMMON_UTILS_LIBCURLUTILS_LIBCURLHTTP2REQUEST_H_ 32 namespace libcurlUtils {
46 const std::shared_ptr<LibcurlSetCurlOptionsCallbackInterface>& setCurlOptionsCallback,
128 static size_t writeCallback(
char* data,
size_t size,
size_t nmemb,
void* userData);
141 static size_t headerCallback(
char* data,
size_t size,
size_t nmemb,
void* userData);
156 static size_t readCallback(
char* data,
size_t size,
size_t nmemb,
void* userData);
163 long getResponseCode();
166 std::shared_ptr<http2::HTTP2RequestSourceInterface> m_source;
169 std::shared_ptr<http2::HTTP2ResponseSinkInterface> m_sink;
172 bool m_responseCodeReported;
175 std::chrono::milliseconds m_activityTimeout;
178 std::chrono::steady_clock::time_point m_timeOfLastTransfer;
185 bool m_isIntermittentTransferExpected;
191 std::atomic_bool m_isCancelled;
194 std::chrono::milliseconds m_connectTimeout;
198 m_timeOfLastTransfer = std::chrono::steady_clock::now();
206 #endif // ALEXA_CLIENT_SDK_AVSCOMMON_UTILS_INCLUDE_AVSCOMMON_UTILS_LIBCURLUTILS_LIBCURLHTTP2REQUEST_H_ LibcurlHTTP2Request(const alexaClientSDK::avsCommon::utils::http2::HTTP2RequestConfig &config, const std::shared_ptr< LibcurlSetCurlOptionsCallbackInterface > &setCurlOptionsCallback, std::string id="")
Definition: CurlEasyHandleWrapper.h:63
Definition: HTTP2RequestConfig.h:42
::std::string string
Definition: gtest-port.h:1097
Definition: HTTP2RequestInterface.h:32
void setTimeOfLastTransfer()
Definition: LibcurlHTTP2Request.h:197
bool isIntermittentTransferExpected() const
bool hasProgressTimedOut() const
HTTP2ResponseFinishedStatus
Definition: HTTP2ResponseFinishedStatus.h:29
Whether or not curl logs should be emitted.
Definition: AVSConnectionManager.h:36
Definition: LibcurlHTTP2Request.h:34
void reportCompletion(http2::HTTP2ResponseFinishedStatus status)
void reportResponseCode()
std::string getId() const override