aws-crt-cpp
C++ wrapper around the aws-c-* libraries. Provides Cross-Platform Transport Protocols and SSL/TLS implementations for C++.
Signing.h
Go to the documentation of this file.
1 #pragma once
2 
7 #include <aws/crt/Exports.h>
8 
9 #include <aws/auth/signing_config.h>
10 
11 #include <functional>
12 #include <memory>
13 
14 namespace Aws
15 {
16  namespace Crt
17  {
18  namespace Http
19  {
20  class HttpRequest;
21  }
22 
23  namespace Auth
24  {
29  enum class SigningConfigType
30  {
31  Aws = AWS_SIGNING_CONFIG_AWS
32  };
33 
39  std::function<void(const std::shared_ptr<Aws::Crt::Http::HttpRequest> &, int)>;
40 
46  {
47  public:
48  ISigningConfig() = default;
49  ISigningConfig(const ISigningConfig &) = delete;
50  ISigningConfig(ISigningConfig &&) = delete;
51  ISigningConfig &operator=(const ISigningConfig &) = delete;
52  ISigningConfig &operator=(ISigningConfig &&) = delete;
53 
54  virtual ~ISigningConfig() = default;
55 
60  virtual SigningConfigType GetType(void) const = 0;
61  };
62 
68  {
69  public:
70  IHttpRequestSigner() = default;
71  IHttpRequestSigner(const IHttpRequestSigner &) = delete;
73  IHttpRequestSigner &operator=(const IHttpRequestSigner &) = delete;
74  IHttpRequestSigner &operator=(IHttpRequestSigner &&) = delete;
75 
76  virtual ~IHttpRequestSigner() = default;
77 
86  virtual bool SignRequest(
87  const std::shared_ptr<Aws::Crt::Http::HttpRequest> &request,
88  const ISigningConfig &config,
89  const OnHttpRequestSigningComplete &completionCallback) = 0;
90 
94  virtual bool IsValid() const = 0;
95  };
96 
97  } // namespace Auth
98  } // namespace Crt
99 } // namespace Aws
#define AWS_CRT_CPP_API
Definition: Exports.h:36
std::function< void(const std::shared_ptr< Aws::Crt::Http::HttpRequest > &, int)> OnHttpRequestSigningComplete
Definition: Signing.h:39
Definition: Signing.h:45
SigningConfigType
Definition: Signing.h:29
Definition: Signing.h:67
Definition: Allocator.h:10