HttpClient.cpp 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /**
  2. * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
  3. * SPDX-License-Identifier: Apache-2.0.
  4. */
  5. #include <aws/core/http/HttpClient.h>
  6. #include <aws/core/http/HttpRequest.h>
  7. using namespace Aws;
  8. using namespace Aws::Http;
  9. HttpClient::HttpClient() :
  10. m_disableRequestProcessing( false ),
  11. m_requestProcessingSignalLock(),
  12. m_requestProcessingSignal()
  13. {
  14. }
  15. void HttpClient::DisableRequestProcessing()
  16. {
  17. m_disableRequestProcessing = true;
  18. m_requestProcessingSignal.notify_all();
  19. }
  20. void HttpClient::EnableRequestProcessing()
  21. {
  22. m_disableRequestProcessing = false;
  23. }
  24. bool HttpClient::IsRequestProcessingEnabled() const
  25. {
  26. return m_disableRequestProcessing.load() == false;
  27. }
  28. void HttpClient::RetryRequestSleep(std::chrono::milliseconds sleepTime)
  29. {
  30. std::unique_lock< std::mutex > signalLocker(m_requestProcessingSignalLock);
  31. m_requestProcessingSignal.wait_for(signalLocker, sleepTime, [this](){ return m_disableRequestProcessing.load() == true; });
  32. }
  33. bool HttpClient::ContinueRequest(const Aws::Http::HttpRequest& request) const
  34. {
  35. if (request.GetContinueRequestHandler())
  36. {
  37. return request.GetContinueRequestHandler()(&request);
  38. }
  39. return true;
  40. }