ClientContextParameters.cpp 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. /**
  2. * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
  3. * SPDX-License-Identifier: Apache-2.0.
  4. */
  5. #include <aws/core/endpoint/ClientContextParameters.h>
  6. namespace Aws
  7. {
  8. namespace Endpoint
  9. {
  10. const ClientContextParameters::EndpointParameter& ClientContextParameters::GetParameter(const Aws::String& name) const
  11. {
  12. const auto foundIt = std::find_if(m_params.begin(), m_params.end(),
  13. [name](const ClientContextParameters::EndpointParameter& item)
  14. {
  15. return item.GetName() == name;
  16. });
  17. if (foundIt != m_params.end())
  18. {
  19. return *foundIt;
  20. }
  21. else
  22. {
  23. static const ClientContextParameters::EndpointParameter CTX_NOT_FOUND_PARAMETER("PARAMETER_NOT_SET", false, EndpointParameter::ParameterOrigin::CLIENT_CONTEXT);
  24. return CTX_NOT_FOUND_PARAMETER;
  25. }
  26. }
  27. void ClientContextParameters::SetParameter(EndpointParameter param)
  28. {
  29. const auto foundIt = std::find_if(m_params.begin(), m_params.end(),
  30. [param](const ClientContextParameters::EndpointParameter& item)
  31. {
  32. return item.GetName() == param.GetName();
  33. });
  34. if (foundIt != m_params.end())
  35. {
  36. m_params.erase(foundIt);
  37. }
  38. m_params.emplace_back(std::move(param));
  39. }
  40. void ClientContextParameters::SetStringParameter(Aws::String name, Aws::String value)
  41. {
  42. return SetParameter(EndpointParameter(std::move(name), std::move(value), EndpointParameter::ParameterOrigin::CLIENT_CONTEXT));
  43. }
  44. void ClientContextParameters::SetBooleanParameter(Aws::String name, bool value)
  45. {
  46. return SetParameter(EndpointParameter(std::move(name), value, EndpointParameter::ParameterOrigin::CLIENT_CONTEXT));
  47. }
  48. const Aws::Vector<ClientContextParameters::EndpointParameter>& ClientContextParameters::GetAllParameters() const
  49. {
  50. return m_params;
  51. }
  52. } // namespace Endpoint
  53. } // namespace Aws