![]() |
AlexaClientSDK
3.0.0
A cross-platform, modular SDK for interacting with the Alexa Voice Service
|
Public Member Functions | |
LibCurlHTTP2Connection_Test ()=default | |
![]() | |
~LibcurlHTTP2Connection () | |
std::shared_ptr< avsCommon::utils::http2::HTTP2RequestInterface > | createAndSendRequest (const http2::HTTP2RequestConfig &config) override |
void | disconnect () override |
void | addObserver (std::shared_ptr< avsCommon::utils::http2::HTTP2ConnectionObserverInterface > observer) override |
void | removeObserver (std::shared_ptr< avsCommon::utils::http2::HTTP2ConnectionObserverInterface > observer) override |
![]() | |
virtual | ~HTTP2ConnectionInterface ()=default |
virtual void | addObserver (std::shared_ptr< HTTP2ConnectionObserverInterface > observer)=0 |
virtual void | removeObserver (std::shared_ptr< HTTP2ConnectionObserverInterface > observer)=0 |
Additional Inherited Members | |
![]() | |
static std::shared_ptr< LibcurlHTTP2Connection > | create (const std::shared_ptr< LibcurlSetCurlOptionsCallbackInterface > &setCurlOptionsCallback=nullptr) |
![]() | |
using | ActiveStreamMap = std::map< CURL *, std::shared_ptr< LibcurlHTTP2Request > > |
![]() | |
LibcurlHTTP2Connection (const std::shared_ptr< LibcurlSetCurlOptionsCallbackInterface > &setCurlOptionsCallback=nullptr) | |
bool | addStream (std::shared_ptr< LibcurlHTTP2Request > stream) |
bool | createMultiHandle () |
bool | releaseStream (ActiveStreamMap::iterator &iterator) |
void | networkLoop () |
bool | isStopping () |
void | setIsStopping () |
void | cleanupFinishedStreams () |
void | cleanupCancelledAndStalledStreams () |
bool | areStreamsPaused () |
void | unPauseActiveStreams () |
bool | cancelActiveStream (ActiveStreamMap::iterator &iterator) |
void | cancelActiveStreams () |
void | cancelPendingStreams () |
void | cancelAllStreams () |
std::shared_ptr< LibcurlHTTP2Request > | dequeueRequest () |
void | processNextRequest () |
void | notifyObserversOfGoawayReceived () |
![]() | |
std::thread | m_networkThread |
Main thread for this class. More... | |
std::shared_ptr< avsCommon::utils::libcurlUtils::CurlMultiHandleWrapper > | m_multi |
Represents a CURL multi handle. Intended to only be accessed by the network loop thread and in addStream . More... | |
std::mutex | m_mutex |
Serializes concurrent access to the m_requestQueue and m_isStopping members. More... | |
std::condition_variable | m_cv |
ActiveStreamMap | m_activeStreams |
std::deque< std::shared_ptr< LibcurlHTTP2Request > > | m_requestQueue |
Queue of requests send. Serialized by m_mutex . More... | |
std::mutex | m_observersMutex |
Mutex for observers. More... | |
std::unordered_set< std::shared_ptr< avsCommon::utils::http2::HTTP2ConnectionObserverInterface > > | m_observers |
Observers. More... | |
bool | m_isStopping |
Set to true when we want to exit the network loop. More... | |
std::shared_ptr< LibcurlSetCurlOptionsCallbackInterface > | m_setCurlOptionsCallback |
The LibcurlSetCurlOptionsCallbackInterface used for this connection. More... | |
Derived test class for LibCurlHTTP2Connection that is a friend class to the google test class
|
default |
AlexaClientSDK 3.0.0 - Copyright 2016-2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0