AlexaClientSDK  3.0.0
A cross-platform, modular SDK for interacting with the Alexa Voice Service
Public Member Functions | List of all members
alexaClientSDK::avsCommon::utils::libcurlUtils::LibCurlHTTP2Connection_Test Class Reference
Inheritance diagram for alexaClientSDK::avsCommon::utils::libcurlUtils::LibCurlHTTP2Connection_Test:
Inheritance graph
[legend]
Collaboration diagram for alexaClientSDK::avsCommon::utils::libcurlUtils::LibCurlHTTP2Connection_Test:
Collaboration graph
[legend]

Public Member Functions

 LibCurlHTTP2Connection_Test ()=default
 
- Public Member Functions inherited from alexaClientSDK::avsCommon::utils::libcurlUtils::LibcurlHTTP2Connection
 ~LibcurlHTTP2Connection ()
 
std::shared_ptr< avsCommon::utils::http2::HTTP2RequestInterfacecreateAndSendRequest (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
 
- Public Member Functions inherited from alexaClientSDK::avsCommon::utils::http2::HTTP2ConnectionInterface
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 Public Member Functions inherited from alexaClientSDK::avsCommon::utils::libcurlUtils::LibcurlHTTP2Connection
static std::shared_ptr< LibcurlHTTP2Connectioncreate (const std::shared_ptr< LibcurlSetCurlOptionsCallbackInterface > &setCurlOptionsCallback=nullptr)
 
- Protected Types inherited from alexaClientSDK::avsCommon::utils::libcurlUtils::LibcurlHTTP2Connection
using ActiveStreamMap = std::map< CURL *, std::shared_ptr< LibcurlHTTP2Request > >
 
- Protected Member Functions inherited from alexaClientSDK::avsCommon::utils::libcurlUtils::LibcurlHTTP2Connection
 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< LibcurlHTTP2RequestdequeueRequest ()
 
void processNextRequest ()
 
void notifyObserversOfGoawayReceived ()
 
- Protected Attributes inherited from alexaClientSDK::avsCommon::utils::libcurlUtils::LibcurlHTTP2Connection
std::thread m_networkThread
 Main thread for this class. More...
 
std::shared_ptr< avsCommon::utils::libcurlUtils::CurlMultiHandleWrapperm_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< LibcurlSetCurlOptionsCallbackInterfacem_setCurlOptionsCallback
 The LibcurlSetCurlOptionsCallbackInterface used for this connection. More...
 

Detailed Description

Derived test class for LibCurlHTTP2Connection that is a friend class to the google test class

Constructor & Destructor Documentation

◆ LibCurlHTTP2Connection_Test()

alexaClientSDK::avsCommon::utils::libcurlUtils::LibCurlHTTP2Connection_Test::LibCurlHTTP2Connection_Test ( )
default

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

AlexaClientSDK 3.0.0 - Copyright 2016-2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0