Skip to content

Commit e780241

Browse files
committed
streaming updates
1 parent 615c99a commit e780241

File tree

11 files changed

+40
-46
lines changed

11 files changed

+40
-46
lines changed

generated/src/aws-cpp-sdk-qbusiness/include/aws/qbusiness/model/ChatInputStream.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ namespace Model
2828
* href="http://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/ChatInputStream">AWS
2929
* API Reference</a></p>
3030
*/
31-
class AWS_QBUSINESS_API ChatInputStream : public Aws::Utils::Event::SmithyEventEncoderStream<smithy::AwsCredentialIdentityBase>
31+
class AWS_QBUSINESS_API ChatInputStream : public Aws::Utils::Event::SmithyEventEncoderStream
3232
{
3333
public:
3434
ChatInputStream& WriteConfigurationEvent(const ConfigurationEvent& value)

generated/src/aws-cpp-sdk-transcribestreaming/include/aws/transcribestreaming/model/AudioStream.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ namespace Model
2525
* href="http://docs.aws.amazon.com/goto/WebAPI/transcribe-streaming-2017-10-26/AudioStream">AWS
2626
* API Reference</a></p>
2727
*/
28-
class AWS_TRANSCRIBESTREAMINGSERVICE_API AudioStream : public Aws::Utils::Event::SmithyEventEncoderStream<smithy::AwsCredentialIdentityBase>
28+
class AWS_TRANSCRIBESTREAMINGSERVICE_API AudioStream : public Aws::Utils::Event::SmithyEventEncoderStream
2929
{
3030
public:
3131
AudioStream& WriteAudioEvent(const AudioEvent& value)

src/aws-cpp-sdk-core/include/aws/core/auth/signer/AWSAuthBearerSigner.h

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -97,11 +97,9 @@ namespace Aws
9797
return PresignRequest(ioRequest, expirationInSeconds);
9898
}
9999

100-
std::shared_ptr<Aws::Auth::AWSBearerTokenProviderBase> BearerTokenProvider() const
101-
{
102-
return m_bearerTokenProvider;
103-
}
104-
protected:
100+
std::shared_ptr<Aws::Auth::AWSBearerTokenProviderBase> BearerTokenProvider() const { return m_bearerTokenProvider; }
101+
102+
protected:
105103
std::shared_ptr<Aws::Auth::AWSBearerTokenProviderBase> m_bearerTokenProvider;
106104
};
107105

src/aws-cpp-sdk-core/include/aws/core/utils/event/EventEncoderStream.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,12 +75,12 @@ namespace Aws
7575
EventStreamEncoder m_encoder;
7676
};
7777

78-
template <typename IdentityT>
7978
class AWS_CORE_API SmithyEventEncoderStream : public EventEncoderStream {
8079
public:
8180
explicit SmithyEventEncoderStream(size_t bufferSize = DEFAULT_BUF_SIZE) : EventEncoderStream(bufferSize) {}
8281
virtual ~SmithyEventEncoderStream() {}
83-
void SetSigner(std::shared_ptr<smithy::AwsSignerBase<IdentityT> > signer, Aws::UniquePtr<IdentityT> identity) {
82+
void SetSigner(std::shared_ptr<smithy::AwsSignerBase<smithy::AwsCredentialIdentityBase> > signer,
83+
Aws::UniquePtr<smithy::AwsCredentialIdentityBase> identity) {
8484
m_evtEncoder.SetSigner(signer, std::move(identity));
8585
}
8686
void SetSignatureSeed(const Aws::String& seed) override { m_evtEncoder.SetSignatureSeed(seed); }
@@ -89,7 +89,7 @@ namespace Aws
8989
Aws::Vector<unsigned char> EncodeAndSign(const Aws::Utils::Event::Message& msg) override {
9090
return m_evtEncoder.EncodeAndSign(msg);
9191
}
92-
SmithyEventStreamEncoder<IdentityT> m_evtEncoder;
92+
SmithyEventStreamEncoder<smithy::AwsCredentialIdentityBase> m_evtEncoder;
9393
};
9494
} // namespace Event
9595
}

src/aws-cpp-sdk-core/include/smithy/client/AwsSmithyClient.h

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -131,9 +131,10 @@ namespace client
131131
return m_serializer->Deserialize(std::move(httpResponseOutcome), GetServiceClientName(), requestName);
132132
}
133133

134-
ResponseT MakeEventStreamRequestDeserialize(Aws::AmazonWebServiceRequest const* const request, const char* requestName,
135-
Aws::Http::HttpMethod method, EndpointUpdateCallback&& endpointCallback,
136-
std::shared_ptr<Aws::Utils::Event::EventEncoderStream> eventEncoderStream_sp) const {
134+
ResponseT MakeEventStreamRequestDeserialize(
135+
Aws::AmazonWebServiceRequest const* const request, const char* requestName, Aws::Http::HttpMethod method,
136+
EndpointUpdateCallback&& endpointCallback,
137+
std::shared_ptr<Aws::Utils::Event::SmithyEventEncoderStream> eventEncoderStream_sp) const {
137138
std::shared_ptr<Aws::Utils::Threading::Executor> pExecutor =
138139
Aws::MakeShared<Aws::Utils::Threading::SameThreadExecutor>("AwsSmithyClient");
139140
assert(pExecutor);
@@ -149,8 +150,9 @@ namespace client
149150
}
150151

151152
protected:
152-
void SetSignerInEventStreamRequest(std::shared_ptr<AwsSmithyClientAsyncRequestContext>& pRequestCtx,
153-
std::shared_ptr<Aws::Utils::Event::EventEncoderStream>& eventEncoderStreamSp) const override {
153+
void SetSignerInEventStreamRequest(
154+
std::shared_ptr<AwsSmithyClientAsyncRequestContext>& pRequestCtx,
155+
std::shared_ptr<Aws::Utils::Event::SmithyEventEncoderStream>& eventEncoderStreamSp) const override {
154156
if (pRequestCtx && pRequestCtx->m_pRequest && eventEncoderStreamSp) {
155157
if (AwsClientRequestSigning<AuthSchemesVariantT>::SetSignerInEventStream(eventEncoderStreamSp, pRequestCtx->m_authSchemeOption,
156158
m_authSchemes)) {

src/aws-cpp-sdk-core/include/smithy/client/AwsSmithyClientBase.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ namespace client
135135
void MakeRequestAsync(Aws::AmazonWebServiceRequest const* const request, const char* requestName, Aws::Http::HttpMethod method,
136136
EndpointUpdateCallback&& endpointCallback, ResponseHandlerFunc&& responseHandler,
137137
std::shared_ptr<Aws::Utils::Threading::Executor> pExecutor,
138-
std::shared_ptr<Aws::Utils::Event::EventEncoderStream> eventEncoderStream_sp = nullptr) const;
138+
std::shared_ptr<Aws::Utils::Event::SmithyEventEncoderStream> eventEncoderStream_sp = nullptr) const;
139139

140140
HttpResponseOutcome MakeRequestSync(Aws::AmazonWebServiceRequest const* const request, const char* requestName,
141141
Aws::Http::HttpMethod method, EndpointUpdateCallback&& endpointCallback) const;
@@ -164,7 +164,7 @@ namespace client
164164

165165
protected:
166166
virtual void SetSignerInEventStreamRequest(std::shared_ptr<AwsSmithyClientAsyncRequestContext>&,
167-
std::shared_ptr<Aws::Utils::Event::EventEncoderStream>&) const {};
167+
std::shared_ptr<Aws::Utils::Event::SmithyEventEncoderStream>&) const {};
168168
Aws::UniquePtr<Aws::Client::ClientConfiguration> m_clientConfig;
169169
Aws::String m_serviceName;
170170
Aws::String m_userAgent;

src/aws-cpp-sdk-core/include/smithy/client/common/AwsSmithyRequestSigning.h

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
#include <aws/core/utils/memory/stl/AWSMap.h>
2020

2121
#include <cassert>
22+
#include <smithy/identity/auth/built-in/SigV4AuthScheme.h>
2223

2324

2425
namespace smithy
@@ -80,7 +81,7 @@ namespace smithy
8081
return visitor.m_resultShouldWait;
8182
}
8283

83-
static bool SetSignerInEventStream(std::shared_ptr<Aws::Utils::Event::EventEncoderStream> eventEncoderStreamSp,
84+
static bool SetSignerInEventStream(std::shared_ptr<Aws::Utils::Event::SmithyEventEncoderStream> eventEncoderStreamSp,
8485
const AuthSchemeOption& authSchemeOption,
8586
const Aws::UnorderedMap<Aws::String, AuthSchemesVariantT>& authSchemes) {
8687
bool result = false;
@@ -197,7 +198,7 @@ namespace smithy
197198
<< ", while client time is "
198199
<< DateTime::Now().ToGmtString(DateFormat::RFC822));
199200
auto diff = DateTime::Diff(m_serverTime, signingTimestamp);
200-
//only try again if clock skew was the cause of the error.
201+
// only try again if clock skew was the cause of the error.
201202
if (diff >= TIME_DIFF_MAX || diff <= TIME_DIFF_MIN) {
202203
diff = DateTime::Diff(m_serverTime, DateTime::Now());
203204
AWS_LOGSTREAM_INFO(AWS_SMITHY_CLIENT_SIGNING_TAG,
@@ -213,22 +214,23 @@ namespace smithy
213214
};
214215

215216
struct EventStreamSignerVisitor {
216-
explicit EventStreamSignerVisitor(std::shared_ptr<Aws::Utils::Event::EventEncoderStream> evSp,
217+
explicit EventStreamSignerVisitor(std::shared_ptr<Aws::Utils::Event::SmithyEventEncoderStream> evSp,
217218
const AuthSchemeOption& targetAuthSchemeOption)
218219
: m_eventEncoderStreamSp(evSp), m_targetAuthSchemeOption(targetAuthSchemeOption) {}
219220

220-
std::shared_ptr<Aws::Utils::Event::EventEncoderStream> m_eventEncoderStreamSp;
221+
std::shared_ptr<Aws::Utils::Event::SmithyEventEncoderStream> m_eventEncoderStreamSp;
221222
const AuthSchemeOption& m_targetAuthSchemeOption;
222223

223224
template <typename AuthSchemeAlternativeT>
224-
void operator()(AuthSchemeAlternativeT& authScheme) {
225+
void operator()(AuthSchemeAlternativeT&) {}
226+
227+
template <>
228+
void operator()<smithy::SigV4AuthScheme>(smithy::SigV4AuthScheme& authScheme) {
225229
// Auth Scheme Variant alternative contains the requested auth option
226230
assert(strcmp(authScheme.schemeId, m_targetAuthSchemeOption.schemeId) == 0);
227-
228-
using IdentityT = typename std::remove_reference<decltype(authScheme)>::type::IdentityT;
231+
using IdentityT = smithy::SigV4AuthScheme::IdentityT;
229232
using IdentityResolver = IdentityResolverBase<IdentityT>;
230233
using Signer = AwsSignerBase<IdentityT>;
231-
232234
std::shared_ptr<Signer> signer = authScheme.signer(m_targetAuthSchemeOption.isEventStreaming);
233235
if (!signer) {
234236
AWS_LOGSTREAM_ERROR(AWS_SMITHY_CLIENT_SIGNING_TAG, "Failed to adjust signing clock skew. Signer is null.");
@@ -251,8 +253,7 @@ namespace smithy
251253
}
252254

253255
// typecast to streaming type as we know this visitor is for smithy types
254-
(std::dynamic_pointer_cast<Aws::Utils::Event::SmithyEventEncoderStream<IdentityT>>(m_eventEncoderStreamSp))
255-
->SetSigner(signer, std::move(identityResult.GetResultWithOwnership()));
256+
m_eventEncoderStreamSp->SetSigner(signer, std::move(identityResult.GetResultWithOwnership()));
256257
}
257258
};
258259
};

src/aws-cpp-sdk-core/include/smithy/identity/resolver/AwsBearerTokenIdentityResolver.h

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66

77
#include <aws/core/auth/bearer-token-provider/AWSBearerTokenProviderBase.h>
88
#include <aws/core/auth/bearer-token-provider/SSOBearerTokenProvider.h>
9-
#include <smithy/identity/identity/AwsBearerTokenIdentity.h>
10-
#include <smithy/identity/resolver/AwsIdentityResolverBase.h>
119
#include <aws/core/auth/signer-provider/BearerTokenAuthSignerProvider.h>
1210
#include <aws/core/auth/signer/AWSAuthBearerSigner.h>
11+
#include <smithy/identity/identity/AwsBearerTokenIdentity.h>
12+
#include <smithy/identity/resolver/AwsIdentityResolverBase.h>
1313
namespace smithy
1414
{
1515

@@ -32,17 +32,11 @@ class AwsBearerTokenIdentityResolver
3232
{
3333
}
3434

35-
AwsBearerTokenIdentityResolver(
36-
const Aws::Auth::BearerTokenAuthSignerProvider& bearerTokenProvider
37-
)
38-
{
39-
auto signer = bearerTokenProvider.GetSigner(Aws::Auth::BEARER_SIGNER);
40-
if(signer)
41-
{
42-
m_providerChainLegacy.emplace_back(
43-
std::dynamic_pointer_cast<Aws::Client::AWSAuthBearerSigner>(signer)->BearerTokenProvider()
44-
);
45-
}
35+
AwsBearerTokenIdentityResolver(const Aws::Auth::BearerTokenAuthSignerProvider &bearerTokenProvider) {
36+
auto signer = bearerTokenProvider.GetSigner(Aws::Auth::BEARER_SIGNER);
37+
if (signer) {
38+
m_providerChainLegacy.emplace_back(std::dynamic_pointer_cast<Aws::Client::AWSAuthBearerSigner>(signer)->BearerTokenProvider());
39+
}
4640
}
4741

4842
ResolveIdentityFutureOutcome
@@ -100,9 +94,8 @@ class DefaultAwsBearerTokenIdentityResolver
10094
virtual ~DefaultAwsBearerTokenIdentityResolver() = default;
10195

10296
DefaultAwsBearerTokenIdentityResolver()
103-
: AwsBearerTokenIdentityResolver(
104-
Aws::Vector<std::shared_ptr<Aws::Auth::AWSBearerTokenProviderBase>>{Aws::MakeShared<Aws::Auth::SSOBearerTokenProvider>(
105-
"SSOBearerTokenProvider")}){};
97+
: AwsBearerTokenIdentityResolver(Aws::Vector<std::shared_ptr<Aws::Auth::AWSBearerTokenProviderBase>>{
98+
Aws::MakeShared<Aws::Auth::SSOBearerTokenProvider>("SSOBearerTokenProvider")}){};
10699
};
107100
const char
108101
AwsBearerTokenIdentityResolver::BEARER_TOKEN_PROVIDER_CHAIN_LOG_TAG[] =

src/aws-cpp-sdk-core/include/smithy/identity/resolver/built-in/DefaultAwsCredentialIdentityResolver.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
#include <aws/core/auth/AWSCredentials.h>
1010
#include <aws/core/auth/AWSCredentialsProviderChain.h>
11-
11+
#include <smithy/identity/auth/AuthSchemeResolverBase.h>
1212
namespace smithy {
1313
constexpr char ALLOC_ID[] = "DefaultAwsCredentialIdentityResolver";
1414
/**

src/aws-cpp-sdk-core/source/smithy/client/AwsSmithyClientBase.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ void AwsSmithyClientBase::MakeRequestAsync(Aws::AmazonWebServiceRequest const* c
100100
Aws::Http::HttpMethod method, EndpointUpdateCallback&& endpointCallback,
101101
ResponseHandlerFunc&& responseHandler,
102102
std::shared_ptr<Aws::Utils::Threading::Executor> pExecutor,
103-
std::shared_ptr<Aws::Utils::Event::EventEncoderStream> eventEncoderStreamSp) const {
103+
std::shared_ptr<Aws::Utils::Event::SmithyEventEncoderStream> eventEncoderStreamSp) const {
104104
if (!responseHandler) {
105105
assert(!"Missing a mandatory response handler!");
106106
AWS_LOGSTREAM_FATAL(AWS_SMITHY_CLIENT_LOG, "Unable to continue AWSClient request: response handler is missing!");

tools/code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/smithy/SmithyEventStreamHeader.vm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ namespace Model
4040
* $shape.documentation
4141
*/
4242
#end
43-
class $typeInfo.exportValue $typeInfo.className : public Aws::Utils::Event::SmithyEventEncoderStream<smithy::AwsCredentialIdentityBase>
43+
class $typeInfo.exportValue $typeInfo.className : public Aws::Utils::Event::SmithyEventEncoderStream
4444
{
4545
public:
4646
#foreach($entry in $shape.members.entrySet())

0 commit comments

Comments
 (0)