From 602782bdc4e7f097029f9a5aac58a7870b223463 Mon Sep 17 00:00:00 2001 From: SergeyRyabinin Date: Mon, 24 Feb 2025 19:42:29 +0000 Subject: [PATCH] Code generation example --- .../kinesis/model/SubscribeToShardHandler.h | 1 + .../kinesis/model/SubscribeToShardRequest.h | 2 +- .../source/KinesisClient.cpp | 11 ++ .../model/InvokeWithResponseStreamHandler.h | 1 + .../model/InvokeWithResponseStreamRequest.h | 2 +- .../source/LambdaClient.cpp | 11 ++ .../model/InvokeWithResponseStreamRequest.cpp | 7 - .../model/StartConversationHandler.h | 1 + .../model/StartConversationRequest.h | 2 +- .../source/LexRuntimeV2Client.cpp | 33 ++--- .../source/model/StartConversationRequest.cpp | 7 - .../aws/s3/model/SelectObjectContentHandler.h | 1 + .../aws/s3/model/SelectObjectContentRequest.h | 2 +- ...tCallAnalyticsStreamTranscriptionHandler.h | 1 + ...tCallAnalyticsStreamTranscriptionRequest.h | 2 +- .../model/StartMedicalScribeStreamHandler.h | 1 + .../model/StartMedicalScribeStreamRequest.h | 2 +- .../StartMedicalStreamTranscriptionHandler.h | 1 + .../StartMedicalStreamTranscriptionRequest.h | 2 +- .../model/StartStreamTranscriptionHandler.h | 1 + .../model/StartStreamTranscriptionRequest.h | 2 +- .../TranscribeStreamingServiceClient.cpp | 129 +++++++----------- ...allAnalyticsStreamTranscriptionRequest.cpp | 7 - .../model/StartMedicalScribeStreamRequest.cpp | 7 - ...StartMedicalStreamTranscriptionRequest.cpp | 7 - .../model/StartStreamTranscriptionRequest.cpp | 7 - 26 files changed, 100 insertions(+), 150 deletions(-) diff --git a/generated/src/aws-cpp-sdk-kinesis/include/aws/kinesis/model/SubscribeToShardHandler.h b/generated/src/aws-cpp-sdk-kinesis/include/aws/kinesis/model/SubscribeToShardHandler.h index cd9eb85e942..eefdd76000d 100644 --- a/generated/src/aws-cpp-sdk-kinesis/include/aws/kinesis/model/SubscribeToShardHandler.h +++ b/generated/src/aws-cpp-sdk-kinesis/include/aws/kinesis/model/SubscribeToShardHandler.h @@ -36,6 +36,7 @@ namespace Model public: AWS_KINESIS_API SubscribeToShardHandler(); AWS_KINESIS_API SubscribeToShardHandler& operator=(const SubscribeToShardHandler&) = default; + AWS_KINESIS_API SubscribeToShardHandler(const SubscribeToShardHandler&) = default; AWS_KINESIS_API virtual void OnEvent() override; diff --git a/generated/src/aws-cpp-sdk-kinesis/include/aws/kinesis/model/SubscribeToShardRequest.h b/generated/src/aws-cpp-sdk-kinesis/include/aws/kinesis/model/SubscribeToShardRequest.h index 61fdc22b84a..8414ab359ac 100644 --- a/generated/src/aws-cpp-sdk-kinesis/include/aws/kinesis/model/SubscribeToShardRequest.h +++ b/generated/src/aws-cpp-sdk-kinesis/include/aws/kinesis/model/SubscribeToShardRequest.h @@ -45,7 +45,7 @@ namespace Model /** * Underlying Event Stream Handler which is used to define callback functions. */ - inline const SubscribeToShardHandler& GetEventStreamHandler() const { return m_handler; } + inline SubscribeToShardHandler& GetEventStreamHandler() { return m_handler; } /** * Underlying Event Stream Handler which is used to define callback functions. diff --git a/generated/src/aws-cpp-sdk-kinesis/source/KinesisClient.cpp b/generated/src/aws-cpp-sdk-kinesis/source/KinesisClient.cpp index 81f1df790c1..d21f3893c51 100644 --- a/generated/src/aws-cpp-sdk-kinesis/source/KinesisClient.cpp +++ b/generated/src/aws-cpp-sdk-kinesis/source/KinesisClient.cpp @@ -836,6 +836,17 @@ SubscribeToShardOutcome KinesisClient::SubscribeToShard(SubscribeToShardRequest& request.SetResponseStreamFactory( [&] { request.GetEventStreamDecoder().Reset(); return Aws::New(ALLOCATION_TAG, request.GetEventStreamDecoder()); } ); + if (!request.GetHeadersReceivedEventHandler()) { + request.SetHeadersReceivedEventHandler([&request](const Http::HttpRequest*, Http::HttpResponse* response) { + if (!response) { + AWS_LOGSTREAM_FATAL("SubscribeToShard", "Unexpected response nullptr!"); + return; + } + if (const auto initialResponseHandler = request.GetEventStreamHandler().GetInitialResponseCallbackEx()) { + initialResponseHandler({response->GetHeaders()}, Utils::Event::InitialResponseType::ON_RESPONSE); + } + }); + } return SubscribeToShardOutcome(MakeRequestDeserialize(&request, request.GetServiceRequestName(), Aws::Http::HttpMethod::HTTP_POST, [&](Aws::Endpoint::AWSEndpoint& resolvedEndpoint) -> void { AWS_UNREFERENCED_PARAM(resolvedEndpoint); })); diff --git a/generated/src/aws-cpp-sdk-lambda/include/aws/lambda/model/InvokeWithResponseStreamHandler.h b/generated/src/aws-cpp-sdk-lambda/include/aws/lambda/model/InvokeWithResponseStreamHandler.h index 5b41b78e5db..79a8d979a34 100644 --- a/generated/src/aws-cpp-sdk-lambda/include/aws/lambda/model/InvokeWithResponseStreamHandler.h +++ b/generated/src/aws-cpp-sdk-lambda/include/aws/lambda/model/InvokeWithResponseStreamHandler.h @@ -39,6 +39,7 @@ namespace Model public: AWS_LAMBDA_API InvokeWithResponseStreamHandler(); AWS_LAMBDA_API InvokeWithResponseStreamHandler& operator=(const InvokeWithResponseStreamHandler&) = default; + AWS_LAMBDA_API InvokeWithResponseStreamHandler(const InvokeWithResponseStreamHandler&) = default; AWS_LAMBDA_API virtual void OnEvent() override; diff --git a/generated/src/aws-cpp-sdk-lambda/include/aws/lambda/model/InvokeWithResponseStreamRequest.h b/generated/src/aws-cpp-sdk-lambda/include/aws/lambda/model/InvokeWithResponseStreamRequest.h index 973b314a2e6..aea8b983708 100644 --- a/generated/src/aws-cpp-sdk-lambda/include/aws/lambda/model/InvokeWithResponseStreamRequest.h +++ b/generated/src/aws-cpp-sdk-lambda/include/aws/lambda/model/InvokeWithResponseStreamRequest.h @@ -51,7 +51,7 @@ namespace Model /** * Underlying Event Stream Handler which is used to define callback functions. */ - inline const InvokeWithResponseStreamHandler& GetEventStreamHandler() const { return m_handler; } + inline InvokeWithResponseStreamHandler& GetEventStreamHandler() { return m_handler; } /** * Underlying Event Stream Handler which is used to define callback functions. diff --git a/generated/src/aws-cpp-sdk-lambda/source/LambdaClient.cpp b/generated/src/aws-cpp-sdk-lambda/source/LambdaClient.cpp index 4a1fb0d4660..21439111b02 100644 --- a/generated/src/aws-cpp-sdk-lambda/source/LambdaClient.cpp +++ b/generated/src/aws-cpp-sdk-lambda/source/LambdaClient.cpp @@ -1467,6 +1467,17 @@ InvokeWithResponseStreamOutcome LambdaClient::InvokeWithResponseStream(InvokeWit request.SetResponseStreamFactory( [&] { request.GetEventStreamDecoder().Reset(); return Aws::New(ALLOCATION_TAG, request.GetEventStreamDecoder()); } ); + if (!request.GetHeadersReceivedEventHandler()) { + request.SetHeadersReceivedEventHandler([&request](const Http::HttpRequest*, Http::HttpResponse* response) { + if (!response) { + AWS_LOGSTREAM_FATAL("InvokeWithResponseStream", "Unexpected response nullptr!"); + return; + } + if (const auto initialResponseHandler = request.GetEventStreamHandler().GetInitialResponseCallbackEx()) { + initialResponseHandler({response->GetHeaders()}, Utils::Event::InitialResponseType::ON_RESPONSE); + } + }); + } return InvokeWithResponseStreamOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_POST)); }, TracingUtils::SMITHY_CLIENT_DURATION_METRIC, diff --git a/generated/src/aws-cpp-sdk-lambda/source/model/InvokeWithResponseStreamRequest.cpp b/generated/src/aws-cpp-sdk-lambda/source/model/InvokeWithResponseStreamRequest.cpp index 904b05ca0f8..faaf20708eb 100644 --- a/generated/src/aws-cpp-sdk-lambda/source/model/InvokeWithResponseStreamRequest.cpp +++ b/generated/src/aws-cpp-sdk-lambda/source/model/InvokeWithResponseStreamRequest.cpp @@ -27,13 +27,6 @@ InvokeWithResponseStreamRequest::InvokeWithResponseStreamRequest() : m_qualifierHasBeenSet(false), m_handler(), m_decoder(Aws::Utils::Event::EventStreamDecoder(&m_handler)) { - AmazonWebServiceRequest::SetHeadersReceivedEventHandler([this](const Http::HttpRequest*, Http::HttpResponse* response) - { - auto& initialResponseHandler = m_handler.GetInitialResponseCallbackEx(); - if (initialResponseHandler) { - initialResponseHandler(InvokeWithResponseStreamInitialResponse(response->GetHeaders()), Utils::Event::InitialResponseType::ON_RESPONSE); - } - }); } diff --git a/generated/src/aws-cpp-sdk-lexv2-runtime/include/aws/lexv2-runtime/model/StartConversationHandler.h b/generated/src/aws-cpp-sdk-lexv2-runtime/include/aws/lexv2-runtime/model/StartConversationHandler.h index 36ef2ee1d75..38b6d81fa05 100644 --- a/generated/src/aws-cpp-sdk-lexv2-runtime/include/aws/lexv2-runtime/model/StartConversationHandler.h +++ b/generated/src/aws-cpp-sdk-lexv2-runtime/include/aws/lexv2-runtime/model/StartConversationHandler.h @@ -51,6 +51,7 @@ namespace Model public: AWS_LEXRUNTIMEV2_API StartConversationHandler(); AWS_LEXRUNTIMEV2_API StartConversationHandler& operator=(const StartConversationHandler&) = default; + AWS_LEXRUNTIMEV2_API StartConversationHandler(const StartConversationHandler&) = default; AWS_LEXRUNTIMEV2_API virtual void OnEvent() override; diff --git a/generated/src/aws-cpp-sdk-lexv2-runtime/include/aws/lexv2-runtime/model/StartConversationRequest.h b/generated/src/aws-cpp-sdk-lexv2-runtime/include/aws/lexv2-runtime/model/StartConversationRequest.h index 15b75d7a00e..6d539fa1be8 100644 --- a/generated/src/aws-cpp-sdk-lexv2-runtime/include/aws/lexv2-runtime/model/StartConversationRequest.h +++ b/generated/src/aws-cpp-sdk-lexv2-runtime/include/aws/lexv2-runtime/model/StartConversationRequest.h @@ -50,7 +50,7 @@ namespace Model /** * Underlying Event Stream Handler which is used to define callback functions. */ - inline const StartConversationHandler& GetEventStreamHandler() const { return m_handler; } + inline StartConversationHandler& GetEventStreamHandler() { return m_handler; } /** * Underlying Event Stream Handler which is used to define callback functions. diff --git a/generated/src/aws-cpp-sdk-lexv2-runtime/source/LexRuntimeV2Client.cpp b/generated/src/aws-cpp-sdk-lexv2-runtime/source/LexRuntimeV2Client.cpp index 11ab6a4a9c8..fe1ab75f019 100644 --- a/generated/src/aws-cpp-sdk-lexv2-runtime/source/LexRuntimeV2Client.cpp +++ b/generated/src/aws-cpp-sdk-lexv2-runtime/source/LexRuntimeV2Client.cpp @@ -17,6 +17,7 @@ #include #include #include +#include #include #include @@ -502,29 +503,21 @@ void LexRuntimeV2Client::StartConversationAsync(Model::StartConversationRequest& endpointResolutionOutcome.GetResult().AddPathSegments("/sessions/"); endpointResolutionOutcome.GetResult().AddPathSegment(request.GetSessionId()); endpointResolutionOutcome.GetResult().AddPathSegments("/conversation"); - request.SetResponseStreamFactory( - [&] { request.GetEventStreamDecoder().Reset(); return Aws::New(ALLOCATION_TAG, request.GetEventStreamDecoder()); } - ); auto eventEncoderStream = Aws::MakeShared(ALLOCATION_TAG); eventEncoderStream->SetSigner(GetSignerByName(Aws::Auth::EVENTSTREAM_SIGV4_SIGNER)); - request.SetRequestEventStream(eventEncoderStream); // this becomes the body of the request - auto sem = Aws::MakeShared(ALLOCATION_TAG, 0, 1); - request.SetRequestSignedHandler([eventEncoderStream, sem](const Aws::Http::HttpRequest& httpRequest) { eventEncoderStream->SetSignatureSeed(Aws::Client::GetAuthorizationHeader(httpRequest)); sem->ReleaseAll(); }); + auto requestCopy = Aws::MakeShared("StartConversation", request); + requestCopy->SetRequestEventStream(eventEncoderStream); // this becomes the body of the request + request.SetRequestEventStream(eventEncoderStream); - m_clientConfiguration.executor->Submit([this, endpointResolutionOutcome, &request, handler, handlerContext] () mutable { - JsonOutcome outcome = MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::EVENTSTREAM_SIGV4_SIGNER); - if(outcome.IsSuccess()) - { - handler(this, request, StartConversationOutcome(NoResult()), handlerContext); - } - else - { - request.GetRequestEventStream()->Close(); - handler(this, request, StartConversationOutcome(outcome.GetError()), handlerContext); - } - return StartConversationOutcome(NoResult()); - }); + auto asyncTask = CreateBidirectionalEventStreamTask(this, + endpointResolutionOutcome.GetResultWithOwnership(), + requestCopy, + handler, + handlerContext, + eventEncoderStream); + auto sem = asyncTask.GetSemaphore(); + m_clientConfiguration.executor->Submit(std::move(asyncTask)); sem->WaitOne(); - streamReadyHandler(*request.GetRequestEventStream()); + streamReadyHandler(*eventEncoderStream); } diff --git a/generated/src/aws-cpp-sdk-lexv2-runtime/source/model/StartConversationRequest.cpp b/generated/src/aws-cpp-sdk-lexv2-runtime/source/model/StartConversationRequest.cpp index 983700d6c19..ad42f06fc8e 100644 --- a/generated/src/aws-cpp-sdk-lexv2-runtime/source/model/StartConversationRequest.cpp +++ b/generated/src/aws-cpp-sdk-lexv2-runtime/source/model/StartConversationRequest.cpp @@ -23,13 +23,6 @@ StartConversationRequest::StartConversationRequest() : m_conversationModeHasBeenSet(false), m_handler(), m_decoder(Aws::Utils::Event::EventStreamDecoder(&m_handler)) { - AmazonWebServiceRequest::SetHeadersReceivedEventHandler([this](const Http::HttpRequest*, Http::HttpResponse* response) - { - auto& initialResponseHandler = m_handler.GetInitialResponseCallbackEx(); - if (initialResponseHandler) { - initialResponseHandler(StartConversationInitialResponse(response->GetHeaders()), Utils::Event::InitialResponseType::ON_RESPONSE); - } - }); } std::shared_ptr StartConversationRequest::GetBody() const diff --git a/generated/src/aws-cpp-sdk-s3/include/aws/s3/model/SelectObjectContentHandler.h b/generated/src/aws-cpp-sdk-s3/include/aws/s3/model/SelectObjectContentHandler.h index ed40ef5305a..37d5133ab8b 100644 --- a/generated/src/aws-cpp-sdk-s3/include/aws/s3/model/SelectObjectContentHandler.h +++ b/generated/src/aws-cpp-sdk-s3/include/aws/s3/model/SelectObjectContentHandler.h @@ -46,6 +46,7 @@ namespace Model public: AWS_S3_API SelectObjectContentHandler(); AWS_S3_API SelectObjectContentHandler& operator=(const SelectObjectContentHandler&) = default; + AWS_S3_API SelectObjectContentHandler(const SelectObjectContentHandler&) = default; AWS_S3_API virtual void OnEvent() override; diff --git a/generated/src/aws-cpp-sdk-s3/include/aws/s3/model/SelectObjectContentRequest.h b/generated/src/aws-cpp-sdk-s3/include/aws/s3/model/SelectObjectContentRequest.h index 6b7a8e3a5a9..e70b464faf8 100644 --- a/generated/src/aws-cpp-sdk-s3/include/aws/s3/model/SelectObjectContentRequest.h +++ b/generated/src/aws-cpp-sdk-s3/include/aws/s3/model/SelectObjectContentRequest.h @@ -72,7 +72,7 @@ namespace Model /** * Underlying Event Stream Handler which is used to define callback functions. */ - inline const SelectObjectContentHandler& GetEventStreamHandler() const { return m_handler; } + inline SelectObjectContentHandler& GetEventStreamHandler() { return m_handler; } /** * Underlying Event Stream Handler which is used to define callback functions. diff --git a/generated/src/aws-cpp-sdk-transcribestreaming/include/aws/transcribestreaming/model/StartCallAnalyticsStreamTranscriptionHandler.h b/generated/src/aws-cpp-sdk-transcribestreaming/include/aws/transcribestreaming/model/StartCallAnalyticsStreamTranscriptionHandler.h index 55dfa9fa06b..ff937ac44e1 100644 --- a/generated/src/aws-cpp-sdk-transcribestreaming/include/aws/transcribestreaming/model/StartCallAnalyticsStreamTranscriptionHandler.h +++ b/generated/src/aws-cpp-sdk-transcribestreaming/include/aws/transcribestreaming/model/StartCallAnalyticsStreamTranscriptionHandler.h @@ -39,6 +39,7 @@ namespace Model public: AWS_TRANSCRIBESTREAMINGSERVICE_API StartCallAnalyticsStreamTranscriptionHandler(); AWS_TRANSCRIBESTREAMINGSERVICE_API StartCallAnalyticsStreamTranscriptionHandler& operator=(const StartCallAnalyticsStreamTranscriptionHandler&) = default; + AWS_TRANSCRIBESTREAMINGSERVICE_API StartCallAnalyticsStreamTranscriptionHandler(const StartCallAnalyticsStreamTranscriptionHandler&) = default; AWS_TRANSCRIBESTREAMINGSERVICE_API virtual void OnEvent() override; diff --git a/generated/src/aws-cpp-sdk-transcribestreaming/include/aws/transcribestreaming/model/StartCallAnalyticsStreamTranscriptionRequest.h b/generated/src/aws-cpp-sdk-transcribestreaming/include/aws/transcribestreaming/model/StartCallAnalyticsStreamTranscriptionRequest.h index c53ecf34906..615c0d78f76 100644 --- a/generated/src/aws-cpp-sdk-transcribestreaming/include/aws/transcribestreaming/model/StartCallAnalyticsStreamTranscriptionRequest.h +++ b/generated/src/aws-cpp-sdk-transcribestreaming/include/aws/transcribestreaming/model/StartCallAnalyticsStreamTranscriptionRequest.h @@ -55,7 +55,7 @@ namespace Model /** * Underlying Event Stream Handler which is used to define callback functions. */ - inline const StartCallAnalyticsStreamTranscriptionHandler& GetEventStreamHandler() const { return m_handler; } + inline StartCallAnalyticsStreamTranscriptionHandler& GetEventStreamHandler() { return m_handler; } /** * Underlying Event Stream Handler which is used to define callback functions. diff --git a/generated/src/aws-cpp-sdk-transcribestreaming/include/aws/transcribestreaming/model/StartMedicalScribeStreamHandler.h b/generated/src/aws-cpp-sdk-transcribestreaming/include/aws/transcribestreaming/model/StartMedicalScribeStreamHandler.h index a7eb6a3e7ee..84b89487d87 100644 --- a/generated/src/aws-cpp-sdk-transcribestreaming/include/aws/transcribestreaming/model/StartMedicalScribeStreamHandler.h +++ b/generated/src/aws-cpp-sdk-transcribestreaming/include/aws/transcribestreaming/model/StartMedicalScribeStreamHandler.h @@ -36,6 +36,7 @@ namespace Model public: AWS_TRANSCRIBESTREAMINGSERVICE_API StartMedicalScribeStreamHandler(); AWS_TRANSCRIBESTREAMINGSERVICE_API StartMedicalScribeStreamHandler& operator=(const StartMedicalScribeStreamHandler&) = default; + AWS_TRANSCRIBESTREAMINGSERVICE_API StartMedicalScribeStreamHandler(const StartMedicalScribeStreamHandler&) = default; AWS_TRANSCRIBESTREAMINGSERVICE_API virtual void OnEvent() override; diff --git a/generated/src/aws-cpp-sdk-transcribestreaming/include/aws/transcribestreaming/model/StartMedicalScribeStreamRequest.h b/generated/src/aws-cpp-sdk-transcribestreaming/include/aws/transcribestreaming/model/StartMedicalScribeStreamRequest.h index 1b26a887777..478dd264d6c 100644 --- a/generated/src/aws-cpp-sdk-transcribestreaming/include/aws/transcribestreaming/model/StartMedicalScribeStreamRequest.h +++ b/generated/src/aws-cpp-sdk-transcribestreaming/include/aws/transcribestreaming/model/StartMedicalScribeStreamRequest.h @@ -51,7 +51,7 @@ namespace Model /** * Underlying Event Stream Handler which is used to define callback functions. */ - inline const StartMedicalScribeStreamHandler& GetEventStreamHandler() const { return m_handler; } + inline StartMedicalScribeStreamHandler& GetEventStreamHandler() { return m_handler; } /** * Underlying Event Stream Handler which is used to define callback functions. diff --git a/generated/src/aws-cpp-sdk-transcribestreaming/include/aws/transcribestreaming/model/StartMedicalStreamTranscriptionHandler.h b/generated/src/aws-cpp-sdk-transcribestreaming/include/aws/transcribestreaming/model/StartMedicalStreamTranscriptionHandler.h index 867a30aa2cc..f0edc0e154e 100644 --- a/generated/src/aws-cpp-sdk-transcribestreaming/include/aws/transcribestreaming/model/StartMedicalStreamTranscriptionHandler.h +++ b/generated/src/aws-cpp-sdk-transcribestreaming/include/aws/transcribestreaming/model/StartMedicalStreamTranscriptionHandler.h @@ -36,6 +36,7 @@ namespace Model public: AWS_TRANSCRIBESTREAMINGSERVICE_API StartMedicalStreamTranscriptionHandler(); AWS_TRANSCRIBESTREAMINGSERVICE_API StartMedicalStreamTranscriptionHandler& operator=(const StartMedicalStreamTranscriptionHandler&) = default; + AWS_TRANSCRIBESTREAMINGSERVICE_API StartMedicalStreamTranscriptionHandler(const StartMedicalStreamTranscriptionHandler&) = default; AWS_TRANSCRIBESTREAMINGSERVICE_API virtual void OnEvent() override; diff --git a/generated/src/aws-cpp-sdk-transcribestreaming/include/aws/transcribestreaming/model/StartMedicalStreamTranscriptionRequest.h b/generated/src/aws-cpp-sdk-transcribestreaming/include/aws/transcribestreaming/model/StartMedicalStreamTranscriptionRequest.h index 72b403a7969..b060ebde144 100644 --- a/generated/src/aws-cpp-sdk-transcribestreaming/include/aws/transcribestreaming/model/StartMedicalStreamTranscriptionRequest.h +++ b/generated/src/aws-cpp-sdk-transcribestreaming/include/aws/transcribestreaming/model/StartMedicalStreamTranscriptionRequest.h @@ -54,7 +54,7 @@ namespace Model /** * Underlying Event Stream Handler which is used to define callback functions. */ - inline const StartMedicalStreamTranscriptionHandler& GetEventStreamHandler() const { return m_handler; } + inline StartMedicalStreamTranscriptionHandler& GetEventStreamHandler() { return m_handler; } /** * Underlying Event Stream Handler which is used to define callback functions. diff --git a/generated/src/aws-cpp-sdk-transcribestreaming/include/aws/transcribestreaming/model/StartStreamTranscriptionHandler.h b/generated/src/aws-cpp-sdk-transcribestreaming/include/aws/transcribestreaming/model/StartStreamTranscriptionHandler.h index f358cc78fc6..c2be97e9e19 100644 --- a/generated/src/aws-cpp-sdk-transcribestreaming/include/aws/transcribestreaming/model/StartStreamTranscriptionHandler.h +++ b/generated/src/aws-cpp-sdk-transcribestreaming/include/aws/transcribestreaming/model/StartStreamTranscriptionHandler.h @@ -36,6 +36,7 @@ namespace Model public: AWS_TRANSCRIBESTREAMINGSERVICE_API StartStreamTranscriptionHandler(); AWS_TRANSCRIBESTREAMINGSERVICE_API StartStreamTranscriptionHandler& operator=(const StartStreamTranscriptionHandler&) = default; + AWS_TRANSCRIBESTREAMINGSERVICE_API StartStreamTranscriptionHandler(const StartStreamTranscriptionHandler&) = default; AWS_TRANSCRIBESTREAMINGSERVICE_API virtual void OnEvent() override; diff --git a/generated/src/aws-cpp-sdk-transcribestreaming/include/aws/transcribestreaming/model/StartStreamTranscriptionRequest.h b/generated/src/aws-cpp-sdk-transcribestreaming/include/aws/transcribestreaming/model/StartStreamTranscriptionRequest.h index fe07e47c2c2..7d868b2ab0a 100644 --- a/generated/src/aws-cpp-sdk-transcribestreaming/include/aws/transcribestreaming/model/StartStreamTranscriptionRequest.h +++ b/generated/src/aws-cpp-sdk-transcribestreaming/include/aws/transcribestreaming/model/StartStreamTranscriptionRequest.h @@ -55,7 +55,7 @@ namespace Model /** * Underlying Event Stream Handler which is used to define callback functions. */ - inline const StartStreamTranscriptionHandler& GetEventStreamHandler() const { return m_handler; } + inline StartStreamTranscriptionHandler& GetEventStreamHandler() { return m_handler; } /** * Underlying Event Stream Handler which is used to define callback functions. diff --git a/generated/src/aws-cpp-sdk-transcribestreaming/source/TranscribeStreamingServiceClient.cpp b/generated/src/aws-cpp-sdk-transcribestreaming/source/TranscribeStreamingServiceClient.cpp index 9cefc6ae051..d50e38dad0b 100644 --- a/generated/src/aws-cpp-sdk-transcribestreaming/source/TranscribeStreamingServiceClient.cpp +++ b/generated/src/aws-cpp-sdk-transcribestreaming/source/TranscribeStreamingServiceClient.cpp @@ -17,6 +17,7 @@ #include #include #include +#include #include #include @@ -243,31 +244,23 @@ void TranscribeStreamingServiceClient::StartCallAnalyticsStreamTranscriptionAsyn return; } endpointResolutionOutcome.GetResult().AddPathSegments("/call-analytics-stream-transcription"); - request.SetResponseStreamFactory( - [&] { request.GetEventStreamDecoder().Reset(); return Aws::New(ALLOCATION_TAG, request.GetEventStreamDecoder()); } - ); auto eventEncoderStream = Aws::MakeShared(ALLOCATION_TAG); eventEncoderStream->SetSigner(GetSignerByName(Aws::Auth::EVENTSTREAM_SIGV4_SIGNER)); - request.SetAudioStream(eventEncoderStream); // this becomes the body of the request - auto sem = Aws::MakeShared(ALLOCATION_TAG, 0, 1); - request.SetRequestSignedHandler([eventEncoderStream, sem](const Aws::Http::HttpRequest& httpRequest) { eventEncoderStream->SetSignatureSeed(Aws::Client::GetAuthorizationHeader(httpRequest)); sem->ReleaseAll(); }); + auto requestCopy = Aws::MakeShared("StartCallAnalyticsStreamTranscription", request); + requestCopy->SetAudioStream(eventEncoderStream); // this becomes the body of the request + request.SetAudioStream(eventEncoderStream); - m_clientConfiguration.executor->Submit([this, endpointResolutionOutcome, &request, handler, handlerContext] () mutable { - JsonOutcome outcome = MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::EVENTSTREAM_SIGV4_SIGNER); - if(outcome.IsSuccess()) - { - handler(this, request, StartCallAnalyticsStreamTranscriptionOutcome(NoResult()), handlerContext); - } - else - { - request.GetAudioStream()->Close(); - handler(this, request, StartCallAnalyticsStreamTranscriptionOutcome(outcome.GetError()), handlerContext); - } - return StartCallAnalyticsStreamTranscriptionOutcome(NoResult()); - }); + auto asyncTask = CreateBidirectionalEventStreamTask(this, + endpointResolutionOutcome.GetResultWithOwnership(), + requestCopy, + handler, + handlerContext, + eventEncoderStream); + auto sem = asyncTask.GetSemaphore(); + m_clientConfiguration.executor->Submit(std::move(asyncTask)); sem->WaitOne(); - streamReadyHandler(*request.GetAudioStream()); + streamReadyHandler(*eventEncoderStream); } void TranscribeStreamingServiceClient::StartMedicalScribeStreamAsync(Model::StartMedicalScribeStreamRequest& request, const StartMedicalScribeStreamStreamReadyHandler& streamReadyHandler, @@ -309,31 +302,23 @@ void TranscribeStreamingServiceClient::StartMedicalScribeStreamAsync(Model::Star return; } endpointResolutionOutcome.GetResult().AddPathSegments("/medical-scribe-stream"); - request.SetResponseStreamFactory( - [&] { request.GetEventStreamDecoder().Reset(); return Aws::New(ALLOCATION_TAG, request.GetEventStreamDecoder()); } - ); auto eventEncoderStream = Aws::MakeShared(ALLOCATION_TAG); eventEncoderStream->SetSigner(GetSignerByName(Aws::Auth::EVENTSTREAM_SIGV4_SIGNER)); - request.SetInputStream(eventEncoderStream); // this becomes the body of the request - auto sem = Aws::MakeShared(ALLOCATION_TAG, 0, 1); - request.SetRequestSignedHandler([eventEncoderStream, sem](const Aws::Http::HttpRequest& httpRequest) { eventEncoderStream->SetSignatureSeed(Aws::Client::GetAuthorizationHeader(httpRequest)); sem->ReleaseAll(); }); + auto requestCopy = Aws::MakeShared("StartMedicalScribeStream", request); + requestCopy->SetInputStream(eventEncoderStream); // this becomes the body of the request + request.SetInputStream(eventEncoderStream); - m_clientConfiguration.executor->Submit([this, endpointResolutionOutcome, &request, handler, handlerContext] () mutable { - JsonOutcome outcome = MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::EVENTSTREAM_SIGV4_SIGNER); - if(outcome.IsSuccess()) - { - handler(this, request, StartMedicalScribeStreamOutcome(NoResult()), handlerContext); - } - else - { - request.GetInputStream()->Close(); - handler(this, request, StartMedicalScribeStreamOutcome(outcome.GetError()), handlerContext); - } - return StartMedicalScribeStreamOutcome(NoResult()); - }); + auto asyncTask = CreateBidirectionalEventStreamTask(this, + endpointResolutionOutcome.GetResultWithOwnership(), + requestCopy, + handler, + handlerContext, + eventEncoderStream); + auto sem = asyncTask.GetSemaphore(); + m_clientConfiguration.executor->Submit(std::move(asyncTask)); sem->WaitOne(); - streamReadyHandler(*request.GetInputStream()); + streamReadyHandler(*eventEncoderStream); } void TranscribeStreamingServiceClient::StartMedicalStreamTranscriptionAsync(Model::StartMedicalStreamTranscriptionRequest& request, const StartMedicalStreamTranscriptionStreamReadyHandler& streamReadyHandler, @@ -387,31 +372,23 @@ void TranscribeStreamingServiceClient::StartMedicalStreamTranscriptionAsync(Mode return; } endpointResolutionOutcome.GetResult().AddPathSegments("/medical-stream-transcription"); - request.SetResponseStreamFactory( - [&] { request.GetEventStreamDecoder().Reset(); return Aws::New(ALLOCATION_TAG, request.GetEventStreamDecoder()); } - ); auto eventEncoderStream = Aws::MakeShared(ALLOCATION_TAG); eventEncoderStream->SetSigner(GetSignerByName(Aws::Auth::EVENTSTREAM_SIGV4_SIGNER)); - request.SetAudioStream(eventEncoderStream); // this becomes the body of the request - auto sem = Aws::MakeShared(ALLOCATION_TAG, 0, 1); - request.SetRequestSignedHandler([eventEncoderStream, sem](const Aws::Http::HttpRequest& httpRequest) { eventEncoderStream->SetSignatureSeed(Aws::Client::GetAuthorizationHeader(httpRequest)); sem->ReleaseAll(); }); + auto requestCopy = Aws::MakeShared("StartMedicalStreamTranscription", request); + requestCopy->SetAudioStream(eventEncoderStream); // this becomes the body of the request + request.SetAudioStream(eventEncoderStream); - m_clientConfiguration.executor->Submit([this, endpointResolutionOutcome, &request, handler, handlerContext] () mutable { - JsonOutcome outcome = MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::EVENTSTREAM_SIGV4_SIGNER); - if(outcome.IsSuccess()) - { - handler(this, request, StartMedicalStreamTranscriptionOutcome(NoResult()), handlerContext); - } - else - { - request.GetAudioStream()->Close(); - handler(this, request, StartMedicalStreamTranscriptionOutcome(outcome.GetError()), handlerContext); - } - return StartMedicalStreamTranscriptionOutcome(NoResult()); - }); + auto asyncTask = CreateBidirectionalEventStreamTask(this, + endpointResolutionOutcome.GetResultWithOwnership(), + requestCopy, + handler, + handlerContext, + eventEncoderStream); + auto sem = asyncTask.GetSemaphore(); + m_clientConfiguration.executor->Submit(std::move(asyncTask)); sem->WaitOne(); - streamReadyHandler(*request.GetAudioStream()); + streamReadyHandler(*eventEncoderStream); } void TranscribeStreamingServiceClient::StartStreamTranscriptionAsync(Model::StartStreamTranscriptionRequest& request, const StartStreamTranscriptionStreamReadyHandler& streamReadyHandler, @@ -447,29 +424,21 @@ void TranscribeStreamingServiceClient::StartStreamTranscriptionAsync(Model::Star return; } endpointResolutionOutcome.GetResult().AddPathSegments("/stream-transcription"); - request.SetResponseStreamFactory( - [&] { request.GetEventStreamDecoder().Reset(); return Aws::New(ALLOCATION_TAG, request.GetEventStreamDecoder()); } - ); auto eventEncoderStream = Aws::MakeShared(ALLOCATION_TAG); eventEncoderStream->SetSigner(GetSignerByName(Aws::Auth::EVENTSTREAM_SIGV4_SIGNER)); - request.SetAudioStream(eventEncoderStream); // this becomes the body of the request - auto sem = Aws::MakeShared(ALLOCATION_TAG, 0, 1); - request.SetRequestSignedHandler([eventEncoderStream, sem](const Aws::Http::HttpRequest& httpRequest) { eventEncoderStream->SetSignatureSeed(Aws::Client::GetAuthorizationHeader(httpRequest)); sem->ReleaseAll(); }); + auto requestCopy = Aws::MakeShared("StartStreamTranscription", request); + requestCopy->SetAudioStream(eventEncoderStream); // this becomes the body of the request + request.SetAudioStream(eventEncoderStream); - m_clientConfiguration.executor->Submit([this, endpointResolutionOutcome, &request, handler, handlerContext] () mutable { - JsonOutcome outcome = MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::EVENTSTREAM_SIGV4_SIGNER); - if(outcome.IsSuccess()) - { - handler(this, request, StartStreamTranscriptionOutcome(NoResult()), handlerContext); - } - else - { - request.GetAudioStream()->Close(); - handler(this, request, StartStreamTranscriptionOutcome(outcome.GetError()), handlerContext); - } - return StartStreamTranscriptionOutcome(NoResult()); - }); + auto asyncTask = CreateBidirectionalEventStreamTask(this, + endpointResolutionOutcome.GetResultWithOwnership(), + requestCopy, + handler, + handlerContext, + eventEncoderStream); + auto sem = asyncTask.GetSemaphore(); + m_clientConfiguration.executor->Submit(std::move(asyncTask)); sem->WaitOne(); - streamReadyHandler(*request.GetAudioStream()); + streamReadyHandler(*eventEncoderStream); } diff --git a/generated/src/aws-cpp-sdk-transcribestreaming/source/model/StartCallAnalyticsStreamTranscriptionRequest.cpp b/generated/src/aws-cpp-sdk-transcribestreaming/source/model/StartCallAnalyticsStreamTranscriptionRequest.cpp index d507a3bc58e..cfc39bd86b9 100644 --- a/generated/src/aws-cpp-sdk-transcribestreaming/source/model/StartCallAnalyticsStreamTranscriptionRequest.cpp +++ b/generated/src/aws-cpp-sdk-transcribestreaming/source/model/StartCallAnalyticsStreamTranscriptionRequest.cpp @@ -38,13 +38,6 @@ StartCallAnalyticsStreamTranscriptionRequest::StartCallAnalyticsStreamTranscript m_piiEntityTypesHasBeenSet(false), m_handler(), m_decoder(Aws::Utils::Event::EventStreamDecoder(&m_handler)) { - AmazonWebServiceRequest::SetHeadersReceivedEventHandler([this](const Http::HttpRequest*, Http::HttpResponse* response) - { - auto& initialResponseHandler = m_handler.GetInitialResponseCallbackEx(); - if (initialResponseHandler) { - initialResponseHandler(StartCallAnalyticsStreamTranscriptionInitialResponse(response->GetHeaders()), Utils::Event::InitialResponseType::ON_RESPONSE); - } - }); } std::shared_ptr StartCallAnalyticsStreamTranscriptionRequest::GetBody() const diff --git a/generated/src/aws-cpp-sdk-transcribestreaming/source/model/StartMedicalScribeStreamRequest.cpp b/generated/src/aws-cpp-sdk-transcribestreaming/source/model/StartMedicalScribeStreamRequest.cpp index 72935af7d56..57a2afea5ca 100644 --- a/generated/src/aws-cpp-sdk-transcribestreaming/source/model/StartMedicalScribeStreamRequest.cpp +++ b/generated/src/aws-cpp-sdk-transcribestreaming/source/model/StartMedicalScribeStreamRequest.cpp @@ -24,13 +24,6 @@ StartMedicalScribeStreamRequest::StartMedicalScribeStreamRequest() : m_mediaEncodingHasBeenSet(false), m_handler(), m_decoder(Aws::Utils::Event::EventStreamDecoder(&m_handler)) { - AmazonWebServiceRequest::SetHeadersReceivedEventHandler([this](const Http::HttpRequest*, Http::HttpResponse* response) - { - auto& initialResponseHandler = m_handler.GetInitialResponseCallbackEx(); - if (initialResponseHandler) { - initialResponseHandler(StartMedicalScribeStreamInitialResponse(response->GetHeaders()), Utils::Event::InitialResponseType::ON_RESPONSE); - } - }); } std::shared_ptr StartMedicalScribeStreamRequest::GetBody() const diff --git a/generated/src/aws-cpp-sdk-transcribestreaming/source/model/StartMedicalStreamTranscriptionRequest.cpp b/generated/src/aws-cpp-sdk-transcribestreaming/source/model/StartMedicalStreamTranscriptionRequest.cpp index 1c34bcb2f38..b694ac2fc9c 100644 --- a/generated/src/aws-cpp-sdk-transcribestreaming/source/model/StartMedicalStreamTranscriptionRequest.cpp +++ b/generated/src/aws-cpp-sdk-transcribestreaming/source/model/StartMedicalStreamTranscriptionRequest.cpp @@ -37,13 +37,6 @@ StartMedicalStreamTranscriptionRequest::StartMedicalStreamTranscriptionRequest() m_contentIdentificationTypeHasBeenSet(false), m_handler(), m_decoder(Aws::Utils::Event::EventStreamDecoder(&m_handler)) { - AmazonWebServiceRequest::SetHeadersReceivedEventHandler([this](const Http::HttpRequest*, Http::HttpResponse* response) - { - auto& initialResponseHandler = m_handler.GetInitialResponseCallbackEx(); - if (initialResponseHandler) { - initialResponseHandler(StartMedicalStreamTranscriptionInitialResponse(response->GetHeaders()), Utils::Event::InitialResponseType::ON_RESPONSE); - } - }); } std::shared_ptr StartMedicalStreamTranscriptionRequest::GetBody() const diff --git a/generated/src/aws-cpp-sdk-transcribestreaming/source/model/StartStreamTranscriptionRequest.cpp b/generated/src/aws-cpp-sdk-transcribestreaming/source/model/StartStreamTranscriptionRequest.cpp index 8b8f76bb898..800d83347f4 100644 --- a/generated/src/aws-cpp-sdk-transcribestreaming/source/model/StartStreamTranscriptionRequest.cpp +++ b/generated/src/aws-cpp-sdk-transcribestreaming/source/model/StartStreamTranscriptionRequest.cpp @@ -53,13 +53,6 @@ StartStreamTranscriptionRequest::StartStreamTranscriptionRequest() : m_vocabularyFilterNamesHasBeenSet(false), m_handler(), m_decoder(Aws::Utils::Event::EventStreamDecoder(&m_handler)) { - AmazonWebServiceRequest::SetHeadersReceivedEventHandler([this](const Http::HttpRequest*, Http::HttpResponse* response) - { - auto& initialResponseHandler = m_handler.GetInitialResponseCallbackEx(); - if (initialResponseHandler) { - initialResponseHandler(StartStreamTranscriptionInitialResponse(response->GetHeaders()), Utils::Event::InitialResponseType::ON_RESPONSE); - } - }); } std::shared_ptr StartStreamTranscriptionRequest::GetBody() const