AWS SDK for C++

AWS SDK for C++ Version 1.11.607

Loading...
Searching...
No Matches
AsyncCallerContext.h
1
6#pragma once
7
8#include <aws/core/utils/memory/stl/AWSString.h>
9
10#include <aws/crt/http/HttpRequestResponse.h>
11#include <aws/core/monitoring/MonitoringManager.h>
12
13namespace Aws
14{
15 namespace Client
16 {
17
18 class AWS_CORE_API MonitorContext{
19
20 private:
21 mutable Aws::String clientName;
22 mutable Aws::String requestName;
23 mutable Aws::Vector<void*> contexts;
24
25 public:
26 ~MonitorContext() = default;
27 MonitorContext() = default;
32
33 void StartMonitorContext(const Aws::String& client, const Aws::String& request, std::shared_ptr<Aws::Http::HttpRequest>& httpRequest) const
34 {
35 clientName = client;
36 requestName = request;
37 contexts = Aws::Monitoring::OnRequestStarted(clientName, requestName, httpRequest);
38 }
39
40 inline void OnRequestFailed(std::shared_ptr<Aws::Http::HttpRequest>& httpRequest, const Aws::Client::HttpResponseOutcome& outcome) const
41 {
42 if(!httpRequest)
43 {
44 return;
45 }
47 coreMetrics.httpClientMetrics = httpRequest->GetRequestMetrics();
48
50 clientName,
51 requestName,
52 httpRequest ,
53 outcome,
54 coreMetrics,
55 contexts);
56
57 }
58
59 inline void OnRequestSucceeded(std::shared_ptr<Aws::Http::HttpRequest> httpRequest, const Aws::Client::HttpResponseOutcome& outcome) const
60 {
61
62 if(!httpRequest)
63 {
64 return;
65 }
66
68 coreMetrics.httpClientMetrics = httpRequest->GetRequestMetrics();
69
71 clientName,
72 requestName,
73 httpRequest ,
74 outcome,
75 coreMetrics,
76 contexts);
77 }
78
79 inline void OnRetry(std::shared_ptr<Aws::Http::HttpRequest> httpRequest) const
80 {
81 if(!httpRequest)
82 {
83 return;
84 }
86 coreMetrics.httpClientMetrics = httpRequest->GetRequestMetrics();
87
89 clientName,
90 requestName,
91 httpRequest,
92 contexts);
93 }
94
95 inline void OnFinish(std::shared_ptr<Aws::Http::HttpRequest> httpRequest) const
96 {
97 if(!httpRequest)
98 {
99 return;
100 }
102 clientName,
103 requestName,
104 httpRequest ,
105 contexts);
106 }
107
108 };
109
115 class AWS_CORE_API AsyncCallerContext
116 {
117 public:
118
123
127 AsyncCallerContext(const Aws::String& uuid) : m_uuid(uuid){}
128
132 AsyncCallerContext(const char* uuid) : m_uuid(uuid) {}
133
135
139 inline const Aws::String& GetUUID() const { return m_uuid; }
140
144 inline void SetUUID(const Aws::String& value) { m_uuid = value; }
145
149 inline void SetUUID(const char* value) { m_uuid.assign(value); }
150
151 inline const MonitorContext& GetMonitorContext() const{
152 return monitorContext;
153 }
154
155 private:
156 Aws::String m_uuid;
157 mutable MonitorContext monitorContext;
158 };
159 }
160}
void SetUUID(const Aws::String &value)
const Aws::String & GetUUID() const
AsyncCallerContext(const Aws::String &uuid)
const MonitorContext & GetMonitorContext() const
void OnRetry(std::shared_ptr< Aws::Http::HttpRequest > httpRequest) const
void OnRequestSucceeded(std::shared_ptr< Aws::Http::HttpRequest > httpRequest, const Aws::Client::HttpResponseOutcome &outcome) const
MonitorContext(const MonitorContext &)=delete
void OnFinish(std::shared_ptr< Aws::Http::HttpRequest > httpRequest) const
MonitorContext & operator=(const MonitorContext &)=delete
void StartMonitorContext(const Aws::String &client, const Aws::String &request, std::shared_ptr< Aws::Http::HttpRequest > &httpRequest) const
MonitorContext(MonitorContext &&)=delete
void OnRequestFailed(std::shared_ptr< Aws::Http::HttpRequest > &httpRequest, const Aws::Client::HttpResponseOutcome &outcome) const
MonitorContext & operator=(MonitorContext &&)=delete
void OnRequestFailed(const Aws::String &serviceName, const Aws::String &requestName, const std::shared_ptr< const Aws::Http::HttpRequest > &request, const Aws::Client::HttpResponseOutcome &outcome, const CoreMetricsCollection &metricsFromCore, const Aws::Vector< void * > &contexts)
Aws::Vector< void * > OnRequestStarted(const Aws::String &serviceName, const Aws::String &requestName, const std::shared_ptr< const Aws::Http::HttpRequest > &request)
void OnRequestRetry(const Aws::String &serviceName, const Aws::String &requestName, const std::shared_ptr< const Aws::Http::HttpRequest > &request, const Aws::Vector< void * > &contexts)
void OnRequestSucceeded(const Aws::String &serviceName, const Aws::String &requestName, const std::shared_ptr< const Aws::Http::HttpRequest > &request, const Aws::Client::HttpResponseOutcome &outcome, const CoreMetricsCollection &metricsFromCore, const Aws::Vector< void * > &contexts)
void OnFinish(const Aws::String &serviceName, const Aws::String &requestName, const std::shared_ptr< const Aws::Http::HttpRequest > &request, const Aws::Vector< void * > &contexts)
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
Definition AWSString.h:97
std::vector< T, Aws::Allocator< T > > Vector
Definition AWSVector.h:17
HttpClientMetricsCollection httpClientMetrics
Definition CoreMetrics.h:22