From 3f5712629da0eef4bf58d389674666bf56f78e70 Mon Sep 17 00:00:00 2001 From: Bret Ambrose Date: Mon, 18 Apr 2022 10:12:54 -0700 Subject: [PATCH] Initial backwards-incompatible refactor of GG IPC to support safer object lifetimes (#377) --- .../aws/eventstreamrpc/EventStreamClient.h | 10 +- eventstream_rpc/source/EventStreamClient.cpp | 10 +- eventstream_rpc/tests/EchoTestRpcClient.cpp | 76 +--- eventstream_rpc/tests/EchoTestRpcModel.cpp | 24 +- .../tests/EventStreamClientTest.cpp | 72 ++-- .../tests/include/awstest/EchoTestRpcClient.h | 19 +- .../tests/include/awstest/EchoTestRpcModel.h | 16 - .../aws/greengrass/GreengrassCoreIpcClient.h | 89 ++-- .../aws/greengrass/GreengrassCoreIpcModel.h | 40 -- .../source/GreengrassCoreIpcClient.cpp | 387 +++++------------- .../source/GreengrassCoreIpcModel.cpp | 60 +-- 11 files changed, 198 insertions(+), 605 deletions(-) diff --git a/eventstream_rpc/include/aws/eventstreamrpc/EventStreamClient.h b/eventstream_rpc/include/aws/eventstreamrpc/EventStreamClient.h index d9b8dd80d..91de97ded 100644 --- a/eventstream_rpc/include/aws/eventstreamrpc/EventStreamClient.h +++ b/eventstream_rpc/include/aws/eventstreamrpc/EventStreamClient.h @@ -492,12 +492,16 @@ namespace Aws public: ClientOperation( ClientConnection &connection, - StreamResponseHandler *streamHandler, + std::shared_ptr streamHandler, const OperationModelContext &operationModelContext, Crt::Allocator *allocator) noexcept; ~ClientOperation() noexcept; + ClientOperation(const ClientOperation &clientOperation) noexcept = delete; - ClientOperation(ClientOperation &&clientOperation) noexcept; + ClientOperation(ClientOperation &&clientOperation) noexcept = delete; + bool operator=(const ClientOperation &clientOperation) noexcept = delete; + bool operator=(ClientOperation &&clientOperation) noexcept = delete; + std::future Close(OnMessageFlushCallback onMessageFlushCallback = nullptr) noexcept; std::future GetOperationResult() noexcept; @@ -547,7 +551,7 @@ namespace Aws uint32_t m_messageCount; Crt::Allocator *m_allocator; - StreamResponseHandler *m_streamHandler; + std::shared_ptr m_streamHandler; ClientContinuation m_clientContinuation; /* This mutex protects m_resultReceived & m_closeState. */ std::mutex m_continuationMutex; diff --git a/eventstream_rpc/source/EventStreamClient.cpp b/eventstream_rpc/source/EventStreamClient.cpp index 30a858d8b..ca11230be 100644 --- a/eventstream_rpc/source/EventStreamClient.cpp +++ b/eventstream_rpc/source/EventStreamClient.cpp @@ -1110,7 +1110,7 @@ namespace Aws ClientOperation::ClientOperation( ClientConnection &connection, - StreamResponseHandler *streamHandler, + std::shared_ptr streamHandler, const OperationModelContext &operationModelContext, Crt::Allocator *allocator) noexcept : m_operationModelContext(operationModelContext), m_messageCount(0), m_allocator(allocator), @@ -1119,14 +1119,6 @@ namespace Aws { } - ClientOperation::ClientOperation(ClientOperation &&rhs) noexcept - : m_operationModelContext(rhs.m_operationModelContext), m_messageCount(std::move(rhs.m_messageCount)), - m_allocator(std::move(rhs.m_allocator)), m_streamHandler(rhs.m_streamHandler), - m_clientContinuation(std::move(rhs.m_clientContinuation)), - m_initialResponsePromise(std::move(rhs.m_initialResponsePromise)) - { - } - ClientOperation::~ClientOperation() noexcept { Close().wait(); diff --git a/eventstream_rpc/tests/EchoTestRpcClient.cpp b/eventstream_rpc/tests/EchoTestRpcClient.cpp index f08bd59ee..95b6dcbd6 100644 --- a/eventstream_rpc/tests/EchoTestRpcClient.cpp +++ b/eventstream_rpc/tests/EchoTestRpcClient.cpp @@ -24,90 +24,50 @@ namespace Awstest EchoTestRpcClient::~EchoTestRpcClient() noexcept { Close(); } - GetAllProductsOperation EchoTestRpcClient::NewGetAllProducts() noexcept + std::shared_ptr EchoTestRpcClient::NewGetAllProducts() noexcept { - return GetAllProductsOperation( - m_connection, m_echoTestRpcServiceModel.m_getAllProductsOperationContext, m_allocator); + return Aws::Crt::MakeShared( + m_allocator, m_connection, m_echoTestRpcServiceModel.m_getAllProductsOperationContext, m_allocator); } - std::unique_ptr EchoTestRpcClient::NewPtrGetAllProducts() noexcept + std::shared_ptr EchoTestRpcClient::NewCauseServiceError() noexcept { - return std::unique_ptr(Aws::Crt::New( - m_allocator, m_connection, m_echoTestRpcServiceModel.m_getAllProductsOperationContext, m_allocator)); + return Aws::Crt::MakeShared( + m_allocator, m_connection, m_echoTestRpcServiceModel.m_causeServiceErrorOperationContext, m_allocator); } - CauseServiceErrorOperation EchoTestRpcClient::NewCauseServiceError() noexcept - { - return CauseServiceErrorOperation( - m_connection, m_echoTestRpcServiceModel.m_causeServiceErrorOperationContext, m_allocator); - } - - std::unique_ptr EchoTestRpcClient::NewPtrCauseServiceError() noexcept - { - return std::unique_ptr(Aws::Crt::New( - m_allocator, m_connection, m_echoTestRpcServiceModel.m_causeServiceErrorOperationContext, m_allocator)); - } - - CauseStreamServiceToErrorOperation EchoTestRpcClient::NewCauseStreamServiceToError( - CauseStreamServiceToErrorStreamHandler &streamHandler) noexcept - { - return CauseStreamServiceToErrorOperation( - m_connection, - &streamHandler, - m_echoTestRpcServiceModel.m_causeStreamServiceToErrorOperationContext, - m_allocator); - } - - std::unique_ptr EchoTestRpcClient::NewPtrCauseStreamServiceToError( + std::shared_ptr EchoTestRpcClient::NewCauseStreamServiceToError( std::shared_ptr streamHandler) noexcept { - return std::unique_ptr(Aws::Crt::New( + return Aws::Crt::MakeShared( m_allocator, m_connection, std::move(streamHandler), m_echoTestRpcServiceModel.m_causeStreamServiceToErrorOperationContext, - m_allocator)); - } - - EchoStreamMessagesOperation EchoTestRpcClient::NewEchoStreamMessages( - EchoStreamMessagesStreamHandler &streamHandler) noexcept - { - return EchoStreamMessagesOperation( - m_connection, &streamHandler, m_echoTestRpcServiceModel.m_echoStreamMessagesOperationContext, m_allocator); + m_allocator); } - std::unique_ptr EchoTestRpcClient::NewPtrEchoStreamMessages( + std::shared_ptr EchoTestRpcClient::NewEchoStreamMessages( std::shared_ptr streamHandler) noexcept { - return std::unique_ptr(Aws::Crt::New( + return Aws::Crt::MakeShared( m_allocator, m_connection, std::move(streamHandler), m_echoTestRpcServiceModel.m_echoStreamMessagesOperationContext, - m_allocator)); - } - - EchoMessageOperation EchoTestRpcClient::NewEchoMessage() noexcept - { - return EchoMessageOperation(m_connection, m_echoTestRpcServiceModel.m_echoMessageOperationContext, m_allocator); - } - - std::unique_ptr EchoTestRpcClient::NewPtrEchoMessage() noexcept - { - return std::unique_ptr(Aws::Crt::New( - m_allocator, m_connection, m_echoTestRpcServiceModel.m_echoMessageOperationContext, m_allocator)); + m_allocator); } - GetAllCustomersOperation EchoTestRpcClient::NewGetAllCustomers() noexcept + std::shared_ptr EchoTestRpcClient::NewEchoMessage() noexcept { - return GetAllCustomersOperation( - m_connection, m_echoTestRpcServiceModel.m_getAllCustomersOperationContext, m_allocator); + return Aws::Crt::MakeShared( + m_allocator, m_connection, m_echoTestRpcServiceModel.m_echoMessageOperationContext, m_allocator); } - std::unique_ptr EchoTestRpcClient::NewPtrGetAllCustomers() noexcept + std::shared_ptr EchoTestRpcClient::NewGetAllCustomers() noexcept { - return std::unique_ptr(Aws::Crt::New( - m_allocator, m_connection, m_echoTestRpcServiceModel.m_getAllCustomersOperationContext, m_allocator)); + return Aws::Crt::MakeShared( + m_allocator, m_connection, m_echoTestRpcServiceModel.m_getAllCustomersOperationContext, m_allocator); } } // namespace Awstest diff --git a/eventstream_rpc/tests/EchoTestRpcModel.cpp b/eventstream_rpc/tests/EchoTestRpcModel.cpp index 3d9791e76..3fbcd8c61 100644 --- a/eventstream_rpc/tests/EchoTestRpcModel.cpp +++ b/eventstream_rpc/tests/EchoTestRpcModel.cpp @@ -1141,22 +1141,12 @@ namespace Awstest std::launch::deferred, [this]() { return CauseStreamServiceToErrorResult(GetOperationResult().get()); }); } - CauseStreamServiceToErrorOperation::CauseStreamServiceToErrorOperation( - ClientConnection &connection, - CauseStreamServiceToErrorStreamHandler *streamHandler, - const CauseStreamServiceToErrorOperationContext &operationContext, - Aws::Crt::Allocator *allocator) noexcept - : ClientOperation(connection, streamHandler, operationContext, allocator) - { - } - CauseStreamServiceToErrorOperation::CauseStreamServiceToErrorOperation( ClientConnection &connection, std::shared_ptr streamHandler, const CauseStreamServiceToErrorOperationContext &operationContext, Aws::Crt::Allocator *allocator) noexcept - : ClientOperation(connection, streamHandler.get(), operationContext, allocator), - pinnedHandler(std::move(streamHandler)) + : ClientOperation(connection, streamHandler, operationContext, allocator) { } @@ -1238,22 +1228,12 @@ namespace Awstest std::launch::deferred, [this]() { return EchoStreamMessagesResult(GetOperationResult().get()); }); } - EchoStreamMessagesOperation::EchoStreamMessagesOperation( - ClientConnection &connection, - EchoStreamMessagesStreamHandler *streamHandler, - const EchoStreamMessagesOperationContext &operationContext, - Aws::Crt::Allocator *allocator) noexcept - : ClientOperation(connection, streamHandler, operationContext, allocator) - { - } - EchoStreamMessagesOperation::EchoStreamMessagesOperation( ClientConnection &connection, std::shared_ptr streamHandler, const EchoStreamMessagesOperationContext &operationContext, Aws::Crt::Allocator *allocator) noexcept - : ClientOperation(connection, streamHandler.get(), operationContext, allocator), - pinnedHandler(std::move(streamHandler)) + : ClientOperation(connection, streamHandler, operationContext, allocator) { } diff --git a/eventstream_rpc/tests/EventStreamClientTest.cpp b/eventstream_rpc/tests/EventStreamClientTest.cpp index 788aab933..232afc202 100644 --- a/eventstream_rpc/tests/EventStreamClientTest.cpp +++ b/eventstream_rpc/tests/EventStreamClientTest.cpp @@ -181,9 +181,9 @@ static int s_TestOperationWhileDisconnected(struct aws_allocator *allocator, voi Aws::Crt::String expectedMessage("l33t"); messageData.SetStringMessage(expectedMessage); echoMessageRequest.SetMessage(messageData); - auto requestFuture = echoMessage.Activate(echoMessageRequest, s_onMessageFlush); + auto requestFuture = echoMessage->Activate(echoMessageRequest, s_onMessageFlush); ASSERT_TRUE(requestFuture.get().baseStatus == EVENT_STREAM_RPC_CONNECTION_CLOSED); - auto result = echoMessage.GetOperationResult().get(); + auto result = echoMessage->GetOperationResult().get(); ASSERT_FALSE(result); auto error = result.GetRpcError(); ASSERT_TRUE(error.baseStatus == EVENT_STREAM_RPC_CONNECTION_CLOSED); @@ -218,9 +218,9 @@ static int s_TestEchoOperation(struct aws_allocator *allocator, void *ctx) auto echoMessage = client.NewEchoMessage(); messageData.SetStringMessage(expectedMessage); echoMessageRequest.SetMessage(messageData); - auto requestFuture = echoMessage.Activate(echoMessageRequest, s_onMessageFlush); + auto requestFuture = echoMessage->Activate(echoMessageRequest, s_onMessageFlush); requestFuture.wait(); - auto result = echoMessage.GetResult().get(); + auto result = echoMessage->GetResult().get(); ASSERT_TRUE(result); auto response = result.GetOperationResponse(); ASSERT_NOT_NULL(response); @@ -240,9 +240,9 @@ static int s_TestEchoOperation(struct aws_allocator *allocator, void *ctx) Aws::Crt::String expectedMessage("l33t"); messageData.SetStringMessage(expectedMessage); echoMessageRequest.SetMessage(messageData); - auto requestFuture = echoMessage.Activate(echoMessageRequest, s_onMessageFlush); + auto requestFuture = echoMessage->Activate(echoMessageRequest, s_onMessageFlush); ASSERT_TRUE(requestFuture.get().baseStatus == EVENT_STREAM_RPC_CONNECTION_CLOSED); - auto result = echoMessage.GetOperationResult().get(); + auto result = echoMessage->GetOperationResult().get(); ASSERT_FALSE(result); auto error = result.GetRpcError(); ASSERT_TRUE(error.baseStatus == EVENT_STREAM_RPC_CONNECTION_CLOSED); @@ -257,14 +257,14 @@ static int s_TestEchoOperation(struct aws_allocator *allocator, void *ctx) auto echoMessage = client.NewEchoMessage(); messageData.SetStringMessage(expectedMessage); echoMessageRequest.SetMessage(messageData); - auto requestFuture = echoMessage.Activate(echoMessageRequest, s_onMessageFlush); - requestFuture = echoMessage.Activate(echoMessageRequest, s_onMessageFlush); + auto requestFuture = echoMessage->Activate(echoMessageRequest, s_onMessageFlush); + requestFuture = echoMessage->Activate(echoMessageRequest, s_onMessageFlush); MessageData differentMessage; differentMessage.SetBooleanMessage(true); echoMessageRequest.SetMessage(differentMessage); - requestFuture = echoMessage.Activate(echoMessageRequest, s_onMessageFlush); + requestFuture = echoMessage->Activate(echoMessageRequest, s_onMessageFlush); requestFuture.wait(); - auto result = echoMessage.GetResult().get(); + auto result = echoMessage->GetResult().get(); ASSERT_TRUE(result); auto response = result.GetOperationResponse(); ASSERT_NOT_NULL(response); @@ -280,17 +280,17 @@ static int s_TestEchoOperation(struct aws_allocator *allocator, void *ctx) auto echoMessage = client.NewEchoMessage(); messageData.SetStringMessage(expectedMessage); echoMessageRequest.SetMessage(messageData); - auto requestFuture = echoMessage.Activate(echoMessageRequest, s_onMessageFlush); - requestFuture = echoMessage.Activate(echoMessageRequest, s_onMessageFlush); + auto requestFuture = echoMessage->Activate(echoMessageRequest, s_onMessageFlush); + requestFuture = echoMessage->Activate(echoMessageRequest, s_onMessageFlush); MessageData differentMessage; differentMessage.SetBooleanMessage(true); echoMessageRequest.SetMessage(differentMessage); - requestFuture = echoMessage.Activate(echoMessageRequest, s_onMessageFlush); + requestFuture = echoMessage->Activate(echoMessageRequest, s_onMessageFlush); requestFuture.wait(); - echoMessage.Close().wait(); - echoMessage.Close().wait(); - echoMessage.Close().wait(); - echoMessage.Close().wait(); + echoMessage->Close().wait(); + echoMessage->Close().wait(); + echoMessage->Close().wait(); + echoMessage->Close().wait(); } /* Close without waiting on activation or close futures. */ @@ -302,16 +302,16 @@ static int s_TestEchoOperation(struct aws_allocator *allocator, void *ctx) auto echoMessage = client.NewEchoMessage(); messageData.SetStringMessage(expectedMessage); echoMessageRequest.SetMessage(messageData); - auto requestFuture = echoMessage.Activate(echoMessageRequest, s_onMessageFlush); - requestFuture = echoMessage.Activate(echoMessageRequest, s_onMessageFlush); + auto requestFuture = echoMessage->Activate(echoMessageRequest, s_onMessageFlush); + requestFuture = echoMessage->Activate(echoMessageRequest, s_onMessageFlush); MessageData differentMessage; differentMessage.SetBooleanMessage(true); echoMessageRequest.SetMessage(differentMessage); - echoMessage.Activate(echoMessageRequest, s_onMessageFlush); - echoMessage.Close(); - echoMessage.Close(); - echoMessage.Close(); - echoMessage.Close(); + echoMessage->Activate(echoMessageRequest, s_onMessageFlush); + echoMessage->Close(); + echoMessage->Close(); + echoMessage->Close(); + echoMessage->Close(); } /* Close without waiting for TERMINATE_STREAM to flush then immediately trying to activate. */ @@ -323,15 +323,15 @@ static int s_TestEchoOperation(struct aws_allocator *allocator, void *ctx) auto echoMessage = client.NewEchoMessage(); messageData.SetStringMessage(expectedMessage); echoMessageRequest.SetMessage(messageData); - auto requestFuture = echoMessage.Activate(echoMessageRequest, s_onMessageFlush); - requestFuture = echoMessage.Activate(echoMessageRequest, s_onMessageFlush); + auto requestFuture = echoMessage->Activate(echoMessageRequest, s_onMessageFlush); + requestFuture = echoMessage->Activate(echoMessageRequest, s_onMessageFlush); MessageData differentMessage; differentMessage.SetBooleanMessage(true); echoMessageRequest.SetMessage(differentMessage); - requestFuture = echoMessage.Activate(echoMessageRequest, s_onMessageFlush); + requestFuture = echoMessage->Activate(echoMessageRequest, s_onMessageFlush); requestFuture.wait(); - auto closeFuture = echoMessage.Close(); - requestFuture = echoMessage.Activate(echoMessageRequest, s_onMessageFlush); + auto closeFuture = echoMessage->Close(); + requestFuture = echoMessage->Activate(echoMessageRequest, s_onMessageFlush); closeFuture.wait(); requestFuture.wait(); } @@ -349,9 +349,9 @@ static int s_TestEchoOperation(struct aws_allocator *allocator, void *ctx) ASSERT_TRUE(failedStatus.get().baseStatus == EVENT_STREAM_RPC_CONNECTION_ALREADY_ESTABLISHED); auto echoMessage = client.NewEchoMessage(); echoMessageRequest.SetMessage(messageData); - auto requestFuture = echoMessage.Activate(echoMessageRequest, s_onMessageFlush); + auto requestFuture = echoMessage->Activate(echoMessageRequest, s_onMessageFlush); requestFuture.wait(); - auto result = echoMessage.GetResult().get(); + auto result = echoMessage->GetResult().get(); ASSERT_TRUE(result); auto response = result.GetOperationResponse(); ASSERT_NOT_NULL(response); @@ -368,9 +368,9 @@ static int s_TestEchoOperation(struct aws_allocator *allocator, void *ctx) ASSERT_TRUE(connectedStatus.get().baseStatus == EVENT_STREAM_RPC_CONNECTION_ALREADY_ESTABLISHED); auto echoMessage = client.NewEchoMessage(); echoMessageRequest.SetMessage(messageData); - auto requestFuture = echoMessage.Activate(echoMessageRequest, s_onMessageFlush); + auto requestFuture = echoMessage->Activate(echoMessageRequest, s_onMessageFlush); requestFuture.wait(); - auto result = echoMessage.GetResult().get(); + auto result = echoMessage->GetResult().get(); ASSERT_TRUE(result); auto response = result.GetOperationResponse(); ASSERT_NOT_NULL(response); @@ -510,8 +510,8 @@ static int s_TestStressClient(struct aws_allocator *allocator, void *ctx) auto echoMessage = client.NewEchoMessage(); messageData.SetStringMessage(expectedMessage); echoMessageRequest.SetMessage(messageData); - auto requestStatus = echoMessage.Activate(echoMessageRequest, s_onMessageFlush).get(); - auto resultFuture = echoMessage.GetResult(); + auto requestStatus = echoMessage->Activate(echoMessageRequest, s_onMessageFlush).get(); + auto resultFuture = echoMessage->GetResult(); /* The response may never arrive depending on how many ongoing requests are made * so in case of timeout, assume success. */ std::future_status status = resultFuture.wait_for(std::chrono::seconds(5)); @@ -519,7 +519,7 @@ static int s_TestStressClient(struct aws_allocator *allocator, void *ctx) { return AWS_OP_SUCCESS; } - auto result = echoMessage.GetResult().get(); + auto result = echoMessage->GetResult().get(); ASSERT_TRUE(result); auto response = result.GetOperationResponse(); ASSERT_NOT_NULL(response); diff --git a/eventstream_rpc/tests/include/awstest/EchoTestRpcClient.h b/eventstream_rpc/tests/include/awstest/EchoTestRpcClient.h index 0fd82b71d..d1e54db99 100644 --- a/eventstream_rpc/tests/include/awstest/EchoTestRpcClient.h +++ b/eventstream_rpc/tests/include/awstest/EchoTestRpcClient.h @@ -40,26 +40,19 @@ namespace Awstest const ConnectionConfig &connectionConfig = DefaultConnectionConfig()) noexcept; bool IsConnected() const noexcept { return m_connection.IsOpen(); } void Close() noexcept; - GetAllProductsOperation NewGetAllProducts() noexcept; - std::unique_ptr NewPtrGetAllProducts() noexcept; + std::shared_ptr NewGetAllProducts() noexcept; - CauseServiceErrorOperation NewCauseServiceError() noexcept; - std::unique_ptr NewPtrCauseServiceError() noexcept; + std::shared_ptr NewCauseServiceError() noexcept; - CauseStreamServiceToErrorOperation NewCauseStreamServiceToError( - CauseStreamServiceToErrorStreamHandler &streamHandler) noexcept; - std::unique_ptr NewPtrCauseStreamServiceToError( + std::shared_ptr NewCauseStreamServiceToError( std::shared_ptr streamHandler) noexcept; - EchoStreamMessagesOperation NewEchoStreamMessages(EchoStreamMessagesStreamHandler &streamHandler) noexcept; - std::unique_ptr NewPtrEchoStreamMessages( + std::shared_ptr NewEchoStreamMessages( std::shared_ptr streamHandler) noexcept; - EchoMessageOperation NewEchoMessage() noexcept; - std::unique_ptr NewPtrEchoMessage() noexcept; + std::shared_ptr NewEchoMessage() noexcept; - GetAllCustomersOperation NewGetAllCustomers() noexcept; - std::unique_ptr NewPtrGetAllCustomers() noexcept; + std::shared_ptr NewGetAllCustomers() noexcept; ~EchoTestRpcClient() noexcept; diff --git a/eventstream_rpc/tests/include/awstest/EchoTestRpcModel.h b/eventstream_rpc/tests/include/awstest/EchoTestRpcModel.h index 31daffdd6..45e15eb27 100644 --- a/eventstream_rpc/tests/include/awstest/EchoTestRpcModel.h +++ b/eventstream_rpc/tests/include/awstest/EchoTestRpcModel.h @@ -725,11 +725,6 @@ namespace Awstest class CauseStreamServiceToErrorOperation : public ClientOperation { public: - CauseStreamServiceToErrorOperation( - ClientConnection &connection, - CauseStreamServiceToErrorStreamHandler *streamHandler, - const CauseStreamServiceToErrorOperationContext &operationContext, - Aws::Crt::Allocator *allocator = Aws::Crt::g_allocator) noexcept; CauseStreamServiceToErrorOperation( ClientConnection &connection, std::shared_ptr streamHandler, @@ -754,9 +749,6 @@ namespace Awstest protected: Aws::Crt::String GetModelName() const noexcept override; - - private: - std::shared_ptr pinnedHandler; }; class EchoStreamMessagesStreamHandler : public StreamResponseHandler @@ -841,11 +833,6 @@ namespace Awstest class EchoStreamMessagesOperation : public ClientOperation { public: - EchoStreamMessagesOperation( - ClientConnection &connection, - EchoStreamMessagesStreamHandler *streamHandler, - const EchoStreamMessagesOperationContext &operationContext, - Aws::Crt::Allocator *allocator = Aws::Crt::g_allocator) noexcept; EchoStreamMessagesOperation( ClientConnection &connection, std::shared_ptr streamHandler, @@ -869,9 +856,6 @@ namespace Awstest protected: Aws::Crt::String GetModelName() const noexcept override; - - private: - std::shared_ptr pinnedHandler; }; class EchoMessageOperationContext : public OperationModelContext diff --git a/greengrass_ipc/include/aws/greengrass/GreengrassCoreIpcClient.h b/greengrass_ipc/include/aws/greengrass/GreengrassCoreIpcClient.h index 1134c464d..f54165344 100644 --- a/greengrass_ipc/include/aws/greengrass/GreengrassCoreIpcClient.h +++ b/greengrass_ipc/include/aws/greengrass/GreengrassCoreIpcClient.h @@ -42,98 +42,67 @@ namespace Aws const ConnectionConfig &connectionConfig = DefaultConnectionConfig()) noexcept; bool IsConnected() const noexcept { return m_connection.IsOpen(); } void Close() noexcept; - SubscribeToIoTCoreOperation NewSubscribeToIoTCore(SubscribeToIoTCoreStreamHandler &streamHandler) noexcept; - std::unique_ptr NewPtrSubscribeToIoTCore( + std::shared_ptr NewSubscribeToIoTCore( std::shared_ptr streamHandler) noexcept; - ResumeComponentOperation NewResumeComponent() noexcept; - std::unique_ptr NewPtrResumeComponent() noexcept; + std::shared_ptr NewResumeComponent() noexcept; - PublishToIoTCoreOperation NewPublishToIoTCore() noexcept; - std::unique_ptr NewPtrPublishToIoTCore() noexcept; + std::shared_ptr NewPublishToIoTCore() noexcept; - SubscribeToConfigurationUpdateOperation NewSubscribeToConfigurationUpdate( - SubscribeToConfigurationUpdateStreamHandler &streamHandler) noexcept; - std::unique_ptr NewPtrSubscribeToConfigurationUpdate( + std::shared_ptr NewSubscribeToConfigurationUpdate( std::shared_ptr streamHandler) noexcept; - DeleteThingShadowOperation NewDeleteThingShadow() noexcept; - std::unique_ptr NewPtrDeleteThingShadow() noexcept; + std::shared_ptr NewDeleteThingShadow() noexcept; - DeferComponentUpdateOperation NewDeferComponentUpdate() noexcept; - std::unique_ptr NewPtrDeferComponentUpdate() noexcept; + std::shared_ptr NewDeferComponentUpdate() noexcept; - SubscribeToValidateConfigurationUpdatesOperation NewSubscribeToValidateConfigurationUpdates( - SubscribeToValidateConfigurationUpdatesStreamHandler &streamHandler) noexcept; - std::unique_ptr - NewPtrSubscribeToValidateConfigurationUpdates( + std::shared_ptr + NewSubscribeToValidateConfigurationUpdates( std::shared_ptr streamHandler) noexcept; - GetConfigurationOperation NewGetConfiguration() noexcept; - std::unique_ptr NewPtrGetConfiguration() noexcept; + std::shared_ptr NewGetConfiguration() noexcept; - SubscribeToTopicOperation NewSubscribeToTopic(SubscribeToTopicStreamHandler &streamHandler) noexcept; - std::unique_ptr NewPtrSubscribeToTopic( + std::shared_ptr NewSubscribeToTopic( std::shared_ptr streamHandler) noexcept; - GetComponentDetailsOperation NewGetComponentDetails() noexcept; - std::unique_ptr NewPtrGetComponentDetails() noexcept; + std::shared_ptr NewGetComponentDetails() noexcept; - PublishToTopicOperation NewPublishToTopic() noexcept; - std::unique_ptr NewPtrPublishToTopic() noexcept; + std::shared_ptr NewPublishToTopic() noexcept; - ListComponentsOperation NewListComponents() noexcept; - std::unique_ptr NewPtrListComponents() noexcept; + std::shared_ptr NewListComponents() noexcept; - CreateDebugPasswordOperation NewCreateDebugPassword() noexcept; - std::unique_ptr NewPtrCreateDebugPassword() noexcept; + std::shared_ptr NewCreateDebugPassword() noexcept; - GetThingShadowOperation NewGetThingShadow() noexcept; - std::unique_ptr NewPtrGetThingShadow() noexcept; + std::shared_ptr NewGetThingShadow() noexcept; - SendConfigurationValidityReportOperation NewSendConfigurationValidityReport() noexcept; - std::unique_ptr NewPtrSendConfigurationValidityReport() noexcept; + std::shared_ptr NewSendConfigurationValidityReport() noexcept; - UpdateThingShadowOperation NewUpdateThingShadow() noexcept; - std::unique_ptr NewPtrUpdateThingShadow() noexcept; + std::shared_ptr NewUpdateThingShadow() noexcept; - UpdateConfigurationOperation NewUpdateConfiguration() noexcept; - std::unique_ptr NewPtrUpdateConfiguration() noexcept; + std::shared_ptr NewUpdateConfiguration() noexcept; - ValidateAuthorizationTokenOperation NewValidateAuthorizationToken() noexcept; - std::unique_ptr NewPtrValidateAuthorizationToken() noexcept; + std::shared_ptr NewValidateAuthorizationToken() noexcept; - RestartComponentOperation NewRestartComponent() noexcept; - std::unique_ptr NewPtrRestartComponent() noexcept; + std::shared_ptr NewRestartComponent() noexcept; - GetLocalDeploymentStatusOperation NewGetLocalDeploymentStatus() noexcept; - std::unique_ptr NewPtrGetLocalDeploymentStatus() noexcept; + std::shared_ptr NewGetLocalDeploymentStatus() noexcept; - GetSecretValueOperation NewGetSecretValue() noexcept; - std::unique_ptr NewPtrGetSecretValue() noexcept; + std::shared_ptr NewGetSecretValue() noexcept; - UpdateStateOperation NewUpdateState() noexcept; - std::unique_ptr NewPtrUpdateState() noexcept; + std::shared_ptr NewUpdateState() noexcept; - ListNamedShadowsForThingOperation NewListNamedShadowsForThing() noexcept; - std::unique_ptr NewPtrListNamedShadowsForThing() noexcept; + std::shared_ptr NewListNamedShadowsForThing() noexcept; - SubscribeToComponentUpdatesOperation NewSubscribeToComponentUpdates( - SubscribeToComponentUpdatesStreamHandler &streamHandler) noexcept; - std::unique_ptr NewPtrSubscribeToComponentUpdates( + std::shared_ptr NewSubscribeToComponentUpdates( std::shared_ptr streamHandler) noexcept; - ListLocalDeploymentsOperation NewListLocalDeployments() noexcept; - std::unique_ptr NewPtrListLocalDeployments() noexcept; + std::shared_ptr NewListLocalDeployments() noexcept; - StopComponentOperation NewStopComponent() noexcept; - std::unique_ptr NewPtrStopComponent() noexcept; + std::shared_ptr NewStopComponent() noexcept; - PauseComponentOperation NewPauseComponent() noexcept; - std::unique_ptr NewPtrPauseComponent() noexcept; + std::shared_ptr NewPauseComponent() noexcept; - CreateLocalDeploymentOperation NewCreateLocalDeployment() noexcept; - std::unique_ptr NewPtrCreateLocalDeployment() noexcept; + std::shared_ptr NewCreateLocalDeployment() noexcept; ~GreengrassCoreIpcClient() noexcept; diff --git a/greengrass_ipc/include/aws/greengrass/GreengrassCoreIpcModel.h b/greengrass_ipc/include/aws/greengrass/GreengrassCoreIpcModel.h index f9cfb9891..380eaecfa 100644 --- a/greengrass_ipc/include/aws/greengrass/GreengrassCoreIpcModel.h +++ b/greengrass_ipc/include/aws/greengrass/GreengrassCoreIpcModel.h @@ -2700,11 +2700,6 @@ namespace Aws class SubscribeToIoTCoreOperation : public ClientOperation { public: - SubscribeToIoTCoreOperation( - ClientConnection &connection, - SubscribeToIoTCoreStreamHandler *streamHandler, - const SubscribeToIoTCoreOperationContext &operationContext, - Aws::Crt::Allocator *allocator = Aws::Crt::g_allocator) noexcept; SubscribeToIoTCoreOperation( ClientConnection &connection, std::shared_ptr streamHandler, @@ -2728,9 +2723,6 @@ namespace Aws protected: Aws::Crt::String GetModelName() const noexcept override; - - private: - std::shared_ptr pinnedHandler; }; class ResumeComponentOperationContext : public OperationModelContext @@ -2969,11 +2961,6 @@ namespace Aws class SubscribeToConfigurationUpdateOperation : public ClientOperation { public: - SubscribeToConfigurationUpdateOperation( - ClientConnection &connection, - SubscribeToConfigurationUpdateStreamHandler *streamHandler, - const SubscribeToConfigurationUpdateOperationContext &operationContext, - Aws::Crt::Allocator *allocator = Aws::Crt::g_allocator) noexcept; SubscribeToConfigurationUpdateOperation( ClientConnection &connection, std::shared_ptr streamHandler, @@ -2998,9 +2985,6 @@ namespace Aws protected: Aws::Crt::String GetModelName() const noexcept override; - - private: - std::shared_ptr pinnedHandler; }; class DeleteThingShadowOperationContext : public OperationModelContext @@ -3232,11 +3216,6 @@ namespace Aws class SubscribeToValidateConfigurationUpdatesOperation : public ClientOperation { public: - SubscribeToValidateConfigurationUpdatesOperation( - ClientConnection &connection, - SubscribeToValidateConfigurationUpdatesStreamHandler *streamHandler, - const SubscribeToValidateConfigurationUpdatesOperationContext &operationContext, - Aws::Crt::Allocator *allocator = Aws::Crt::g_allocator) noexcept; SubscribeToValidateConfigurationUpdatesOperation( ClientConnection &connection, std::shared_ptr streamHandler, @@ -3262,9 +3241,6 @@ namespace Aws protected: Aws::Crt::String GetModelName() const noexcept override; - - private: - std::shared_ptr pinnedHandler; }; class GetConfigurationOperationContext : public OperationModelContext @@ -3446,11 +3422,6 @@ namespace Aws class SubscribeToTopicOperation : public ClientOperation { public: - SubscribeToTopicOperation( - ClientConnection &connection, - SubscribeToTopicStreamHandler *streamHandler, - const SubscribeToTopicOperationContext &operationContext, - Aws::Crt::Allocator *allocator = Aws::Crt::g_allocator) noexcept; SubscribeToTopicOperation( ClientConnection &connection, std::shared_ptr streamHandler, @@ -3474,9 +3445,6 @@ namespace Aws protected: Aws::Crt::String GetModelName() const noexcept override; - - private: - std::shared_ptr pinnedHandler; }; class GetComponentDetailsOperationContext : public OperationModelContext @@ -4510,11 +4478,6 @@ namespace Aws class SubscribeToComponentUpdatesOperation : public ClientOperation { public: - SubscribeToComponentUpdatesOperation( - ClientConnection &connection, - SubscribeToComponentUpdatesStreamHandler *streamHandler, - const SubscribeToComponentUpdatesOperationContext &operationContext, - Aws::Crt::Allocator *allocator = Aws::Crt::g_allocator) noexcept; SubscribeToComponentUpdatesOperation( ClientConnection &connection, std::shared_ptr streamHandler, @@ -4539,9 +4502,6 @@ namespace Aws protected: Aws::Crt::String GetModelName() const noexcept override; - - private: - std::shared_ptr pinnedHandler; }; class ListLocalDeploymentsOperationContext : public OperationModelContext diff --git a/greengrass_ipc/source/GreengrassCoreIpcClient.cpp b/greengrass_ipc/source/GreengrassCoreIpcClient.cpp index 69b71f8d4..7bbf33849 100644 --- a/greengrass_ipc/source/GreengrassCoreIpcClient.cpp +++ b/greengrass_ipc/source/GreengrassCoreIpcClient.cpp @@ -48,468 +48,269 @@ namespace Aws GreengrassCoreIpcClient::~GreengrassCoreIpcClient() noexcept { Close(); } - SubscribeToIoTCoreOperation GreengrassCoreIpcClient::NewSubscribeToIoTCore( - SubscribeToIoTCoreStreamHandler &streamHandler) noexcept - { - return SubscribeToIoTCoreOperation( - m_connection, - &streamHandler, - m_greengrassCoreIpcServiceModel.m_subscribeToIoTCoreOperationContext, - m_allocator); - } - - std::unique_ptr GreengrassCoreIpcClient::NewPtrSubscribeToIoTCore( + std::shared_ptr GreengrassCoreIpcClient::NewSubscribeToIoTCore( std::shared_ptr streamHandler) noexcept { - return std::unique_ptr(Aws::Crt::New( + return Aws::Crt::MakeShared( m_allocator, m_connection, std::move(streamHandler), m_greengrassCoreIpcServiceModel.m_subscribeToIoTCoreOperationContext, - m_allocator)); - } - - ResumeComponentOperation GreengrassCoreIpcClient::NewResumeComponent() noexcept - { - return ResumeComponentOperation( - m_connection, m_greengrassCoreIpcServiceModel.m_resumeComponentOperationContext, m_allocator); + m_allocator); } - std::unique_ptr GreengrassCoreIpcClient::NewPtrResumeComponent() noexcept + std::shared_ptr GreengrassCoreIpcClient::NewResumeComponent() noexcept { - return std::unique_ptr(Aws::Crt::New( + return Aws::Crt::MakeShared( m_allocator, m_connection, m_greengrassCoreIpcServiceModel.m_resumeComponentOperationContext, - m_allocator)); - } - - PublishToIoTCoreOperation GreengrassCoreIpcClient::NewPublishToIoTCore() noexcept - { - return PublishToIoTCoreOperation( - m_connection, m_greengrassCoreIpcServiceModel.m_publishToIoTCoreOperationContext, m_allocator); + m_allocator); } - std::unique_ptr GreengrassCoreIpcClient::NewPtrPublishToIoTCore() noexcept + std::shared_ptr GreengrassCoreIpcClient::NewPublishToIoTCore() noexcept { - return std::unique_ptr(Aws::Crt::New( + return Aws::Crt::MakeShared( m_allocator, m_connection, m_greengrassCoreIpcServiceModel.m_publishToIoTCoreOperationContext, - m_allocator)); + m_allocator); } - SubscribeToConfigurationUpdateOperation GreengrassCoreIpcClient::NewSubscribeToConfigurationUpdate( - SubscribeToConfigurationUpdateStreamHandler &streamHandler) noexcept + std::shared_ptr GreengrassCoreIpcClient:: + NewSubscribeToConfigurationUpdate( + std::shared_ptr streamHandler) noexcept { - return SubscribeToConfigurationUpdateOperation( + return Aws::Crt::MakeShared( + m_allocator, m_connection, - &streamHandler, + std::move(streamHandler), m_greengrassCoreIpcServiceModel.m_subscribeToConfigurationUpdateOperationContext, m_allocator); } - std::unique_ptr GreengrassCoreIpcClient:: - NewPtrSubscribeToConfigurationUpdate( - std::shared_ptr streamHandler) noexcept - { - return std::unique_ptr( - Aws::Crt::New( - m_allocator, - m_connection, - std::move(streamHandler), - m_greengrassCoreIpcServiceModel.m_subscribeToConfigurationUpdateOperationContext, - m_allocator)); - } - - DeleteThingShadowOperation GreengrassCoreIpcClient::NewDeleteThingShadow() noexcept + std::shared_ptr GreengrassCoreIpcClient::NewDeleteThingShadow() noexcept { - return DeleteThingShadowOperation( - m_connection, m_greengrassCoreIpcServiceModel.m_deleteThingShadowOperationContext, m_allocator); - } - - std::unique_ptr GreengrassCoreIpcClient::NewPtrDeleteThingShadow() noexcept - { - return std::unique_ptr(Aws::Crt::New( + return Aws::Crt::MakeShared( m_allocator, m_connection, m_greengrassCoreIpcServiceModel.m_deleteThingShadowOperationContext, - m_allocator)); - } - - DeferComponentUpdateOperation GreengrassCoreIpcClient::NewDeferComponentUpdate() noexcept - { - return DeferComponentUpdateOperation( - m_connection, m_greengrassCoreIpcServiceModel.m_deferComponentUpdateOperationContext, m_allocator); + m_allocator); } - std::unique_ptr GreengrassCoreIpcClient::NewPtrDeferComponentUpdate() noexcept + std::shared_ptr GreengrassCoreIpcClient::NewDeferComponentUpdate() noexcept { - return std::unique_ptr(Aws::Crt::New( + return Aws::Crt::MakeShared( m_allocator, m_connection, m_greengrassCoreIpcServiceModel.m_deferComponentUpdateOperationContext, - m_allocator)); + m_allocator); } - SubscribeToValidateConfigurationUpdatesOperation GreengrassCoreIpcClient:: + std::shared_ptr GreengrassCoreIpcClient:: NewSubscribeToValidateConfigurationUpdates( - SubscribeToValidateConfigurationUpdatesStreamHandler &streamHandler) noexcept + std::shared_ptr streamHandler) noexcept { - return SubscribeToValidateConfigurationUpdatesOperation( + return Aws::Crt::MakeShared( + m_allocator, m_connection, - &streamHandler, + std::move(streamHandler), m_greengrassCoreIpcServiceModel.m_subscribeToValidateConfigurationUpdatesOperationContext, m_allocator); } - std::unique_ptr GreengrassCoreIpcClient:: - NewPtrSubscribeToValidateConfigurationUpdates( - std::shared_ptr streamHandler) noexcept - { - return std::unique_ptr( - Aws::Crt::New( - m_allocator, - m_connection, - std::move(streamHandler), - m_greengrassCoreIpcServiceModel.m_subscribeToValidateConfigurationUpdatesOperationContext, - m_allocator)); - } - - GetConfigurationOperation GreengrassCoreIpcClient::NewGetConfiguration() noexcept + std::shared_ptr GreengrassCoreIpcClient::NewGetConfiguration() noexcept { - return GetConfigurationOperation( - m_connection, m_greengrassCoreIpcServiceModel.m_getConfigurationOperationContext, m_allocator); - } - - std::unique_ptr GreengrassCoreIpcClient::NewPtrGetConfiguration() noexcept - { - return std::unique_ptr(Aws::Crt::New( + return Aws::Crt::MakeShared( m_allocator, m_connection, m_greengrassCoreIpcServiceModel.m_getConfigurationOperationContext, - m_allocator)); - } - - SubscribeToTopicOperation GreengrassCoreIpcClient::NewSubscribeToTopic( - SubscribeToTopicStreamHandler &streamHandler) noexcept - { - return SubscribeToTopicOperation( - m_connection, - &streamHandler, - m_greengrassCoreIpcServiceModel.m_subscribeToTopicOperationContext, m_allocator); } - std::unique_ptr GreengrassCoreIpcClient::NewPtrSubscribeToTopic( + std::shared_ptr GreengrassCoreIpcClient::NewSubscribeToTopic( std::shared_ptr streamHandler) noexcept { - return std::unique_ptr(Aws::Crt::New( + return Aws::Crt::MakeShared( m_allocator, m_connection, std::move(streamHandler), m_greengrassCoreIpcServiceModel.m_subscribeToTopicOperationContext, - m_allocator)); - } - - GetComponentDetailsOperation GreengrassCoreIpcClient::NewGetComponentDetails() noexcept - { - return GetComponentDetailsOperation( - m_connection, m_greengrassCoreIpcServiceModel.m_getComponentDetailsOperationContext, m_allocator); + m_allocator); } - std::unique_ptr GreengrassCoreIpcClient::NewPtrGetComponentDetails() noexcept + std::shared_ptr GreengrassCoreIpcClient::NewGetComponentDetails() noexcept { - return std::unique_ptr(Aws::Crt::New( + return Aws::Crt::MakeShared( m_allocator, m_connection, m_greengrassCoreIpcServiceModel.m_getComponentDetailsOperationContext, - m_allocator)); - } - - PublishToTopicOperation GreengrassCoreIpcClient::NewPublishToTopic() noexcept - { - return PublishToTopicOperation( - m_connection, m_greengrassCoreIpcServiceModel.m_publishToTopicOperationContext, m_allocator); + m_allocator); } - std::unique_ptr GreengrassCoreIpcClient::NewPtrPublishToTopic() noexcept + std::shared_ptr GreengrassCoreIpcClient::NewPublishToTopic() noexcept { - return std::unique_ptr(Aws::Crt::New( + return Aws::Crt::MakeShared( m_allocator, m_connection, m_greengrassCoreIpcServiceModel.m_publishToTopicOperationContext, - m_allocator)); - } - - ListComponentsOperation GreengrassCoreIpcClient::NewListComponents() noexcept - { - return ListComponentsOperation( - m_connection, m_greengrassCoreIpcServiceModel.m_listComponentsOperationContext, m_allocator); + m_allocator); } - std::unique_ptr GreengrassCoreIpcClient::NewPtrListComponents() noexcept + std::shared_ptr GreengrassCoreIpcClient::NewListComponents() noexcept { - return std::unique_ptr(Aws::Crt::New( + return Aws::Crt::MakeShared( m_allocator, m_connection, m_greengrassCoreIpcServiceModel.m_listComponentsOperationContext, - m_allocator)); - } - - CreateDebugPasswordOperation GreengrassCoreIpcClient::NewCreateDebugPassword() noexcept - { - return CreateDebugPasswordOperation( - m_connection, m_greengrassCoreIpcServiceModel.m_createDebugPasswordOperationContext, m_allocator); + m_allocator); } - std::unique_ptr GreengrassCoreIpcClient::NewPtrCreateDebugPassword() noexcept + std::shared_ptr GreengrassCoreIpcClient::NewCreateDebugPassword() noexcept { - return std::unique_ptr(Aws::Crt::New( + return Aws::Crt::MakeShared( m_allocator, m_connection, m_greengrassCoreIpcServiceModel.m_createDebugPasswordOperationContext, - m_allocator)); - } - - GetThingShadowOperation GreengrassCoreIpcClient::NewGetThingShadow() noexcept - { - return GetThingShadowOperation( - m_connection, m_greengrassCoreIpcServiceModel.m_getThingShadowOperationContext, m_allocator); + m_allocator); } - std::unique_ptr GreengrassCoreIpcClient::NewPtrGetThingShadow() noexcept + std::shared_ptr GreengrassCoreIpcClient::NewGetThingShadow() noexcept { - return std::unique_ptr(Aws::Crt::New( + return Aws::Crt::MakeShared( m_allocator, m_connection, m_greengrassCoreIpcServiceModel.m_getThingShadowOperationContext, - m_allocator)); + m_allocator); } - SendConfigurationValidityReportOperation GreengrassCoreIpcClient::NewSendConfigurationValidityReport() noexcept + std::shared_ptr GreengrassCoreIpcClient:: + NewSendConfigurationValidityReport() noexcept { - return SendConfigurationValidityReportOperation( + return Aws::Crt::MakeShared( + m_allocator, m_connection, m_greengrassCoreIpcServiceModel.m_sendConfigurationValidityReportOperationContext, m_allocator); } - std::unique_ptr GreengrassCoreIpcClient:: - NewPtrSendConfigurationValidityReport() noexcept - { - return std::unique_ptr( - Aws::Crt::New( - m_allocator, - m_connection, - m_greengrassCoreIpcServiceModel.m_sendConfigurationValidityReportOperationContext, - m_allocator)); - } - - UpdateThingShadowOperation GreengrassCoreIpcClient::NewUpdateThingShadow() noexcept - { - return UpdateThingShadowOperation( - m_connection, m_greengrassCoreIpcServiceModel.m_updateThingShadowOperationContext, m_allocator); - } - - std::unique_ptr GreengrassCoreIpcClient::NewPtrUpdateThingShadow() noexcept + std::shared_ptr GreengrassCoreIpcClient::NewUpdateThingShadow() noexcept { - return std::unique_ptr(Aws::Crt::New( + return Aws::Crt::MakeShared( m_allocator, m_connection, m_greengrassCoreIpcServiceModel.m_updateThingShadowOperationContext, - m_allocator)); - } - - UpdateConfigurationOperation GreengrassCoreIpcClient::NewUpdateConfiguration() noexcept - { - return UpdateConfigurationOperation( - m_connection, m_greengrassCoreIpcServiceModel.m_updateConfigurationOperationContext, m_allocator); + m_allocator); } - std::unique_ptr GreengrassCoreIpcClient::NewPtrUpdateConfiguration() noexcept + std::shared_ptr GreengrassCoreIpcClient::NewUpdateConfiguration() noexcept { - return std::unique_ptr(Aws::Crt::New( + return Aws::Crt::MakeShared( m_allocator, m_connection, m_greengrassCoreIpcServiceModel.m_updateConfigurationOperationContext, - m_allocator)); + m_allocator); } - ValidateAuthorizationTokenOperation GreengrassCoreIpcClient::NewValidateAuthorizationToken() noexcept + std::shared_ptr GreengrassCoreIpcClient:: + NewValidateAuthorizationToken() noexcept { - return ValidateAuthorizationTokenOperation( + return Aws::Crt::MakeShared( + m_allocator, m_connection, m_greengrassCoreIpcServiceModel.m_validateAuthorizationTokenOperationContext, m_allocator); } - std::unique_ptr GreengrassCoreIpcClient:: - NewPtrValidateAuthorizationToken() noexcept - { - return std::unique_ptr( - Aws::Crt::New( - m_allocator, - m_connection, - m_greengrassCoreIpcServiceModel.m_validateAuthorizationTokenOperationContext, - m_allocator)); - } - - RestartComponentOperation GreengrassCoreIpcClient::NewRestartComponent() noexcept - { - return RestartComponentOperation( - m_connection, m_greengrassCoreIpcServiceModel.m_restartComponentOperationContext, m_allocator); - } - - std::unique_ptr GreengrassCoreIpcClient::NewPtrRestartComponent() noexcept + std::shared_ptr GreengrassCoreIpcClient::NewRestartComponent() noexcept { - return std::unique_ptr(Aws::Crt::New( + return Aws::Crt::MakeShared( m_allocator, m_connection, m_greengrassCoreIpcServiceModel.m_restartComponentOperationContext, - m_allocator)); - } - - GetLocalDeploymentStatusOperation GreengrassCoreIpcClient::NewGetLocalDeploymentStatus() noexcept - { - return GetLocalDeploymentStatusOperation( - m_connection, m_greengrassCoreIpcServiceModel.m_getLocalDeploymentStatusOperationContext, m_allocator); + m_allocator); } - std::unique_ptr GreengrassCoreIpcClient:: - NewPtrGetLocalDeploymentStatus() noexcept + std::shared_ptr GreengrassCoreIpcClient:: + NewGetLocalDeploymentStatus() noexcept { - return std::unique_ptr(Aws::Crt::New( + return Aws::Crt::MakeShared( m_allocator, m_connection, m_greengrassCoreIpcServiceModel.m_getLocalDeploymentStatusOperationContext, - m_allocator)); - } - - GetSecretValueOperation GreengrassCoreIpcClient::NewGetSecretValue() noexcept - { - return GetSecretValueOperation( - m_connection, m_greengrassCoreIpcServiceModel.m_getSecretValueOperationContext, m_allocator); + m_allocator); } - std::unique_ptr GreengrassCoreIpcClient::NewPtrGetSecretValue() noexcept + std::shared_ptr GreengrassCoreIpcClient::NewGetSecretValue() noexcept { - return std::unique_ptr(Aws::Crt::New( + return Aws::Crt::MakeShared( m_allocator, m_connection, m_greengrassCoreIpcServiceModel.m_getSecretValueOperationContext, - m_allocator)); - } - - UpdateStateOperation GreengrassCoreIpcClient::NewUpdateState() noexcept - { - return UpdateStateOperation( - m_connection, m_greengrassCoreIpcServiceModel.m_updateStateOperationContext, m_allocator); - } - - std::unique_ptr GreengrassCoreIpcClient::NewPtrUpdateState() noexcept - { - return std::unique_ptr(Aws::Crt::New( - m_allocator, m_connection, m_greengrassCoreIpcServiceModel.m_updateStateOperationContext, m_allocator)); + m_allocator); } - ListNamedShadowsForThingOperation GreengrassCoreIpcClient::NewListNamedShadowsForThing() noexcept + std::shared_ptr GreengrassCoreIpcClient::NewUpdateState() noexcept { - return ListNamedShadowsForThingOperation( - m_connection, m_greengrassCoreIpcServiceModel.m_listNamedShadowsForThingOperationContext, m_allocator); + return Aws::Crt::MakeShared( + m_allocator, m_connection, m_greengrassCoreIpcServiceModel.m_updateStateOperationContext, m_allocator); } - std::unique_ptr GreengrassCoreIpcClient:: - NewPtrListNamedShadowsForThing() noexcept + std::shared_ptr GreengrassCoreIpcClient:: + NewListNamedShadowsForThing() noexcept { - return std::unique_ptr(Aws::Crt::New( + return Aws::Crt::MakeShared( m_allocator, m_connection, m_greengrassCoreIpcServiceModel.m_listNamedShadowsForThingOperationContext, - m_allocator)); + m_allocator); } - SubscribeToComponentUpdatesOperation GreengrassCoreIpcClient::NewSubscribeToComponentUpdates( - SubscribeToComponentUpdatesStreamHandler &streamHandler) noexcept + std::shared_ptr GreengrassCoreIpcClient::NewSubscribeToComponentUpdates( + std::shared_ptr streamHandler) noexcept { - return SubscribeToComponentUpdatesOperation( + return Aws::Crt::MakeShared( + m_allocator, m_connection, - &streamHandler, + std::move(streamHandler), m_greengrassCoreIpcServiceModel.m_subscribeToComponentUpdatesOperationContext, m_allocator); } - std::unique_ptr GreengrassCoreIpcClient:: - NewPtrSubscribeToComponentUpdates( - std::shared_ptr streamHandler) noexcept - { - return std::unique_ptr( - Aws::Crt::New( - m_allocator, - m_connection, - std::move(streamHandler), - m_greengrassCoreIpcServiceModel.m_subscribeToComponentUpdatesOperationContext, - m_allocator)); - } - - ListLocalDeploymentsOperation GreengrassCoreIpcClient::NewListLocalDeployments() noexcept - { - return ListLocalDeploymentsOperation( - m_connection, m_greengrassCoreIpcServiceModel.m_listLocalDeploymentsOperationContext, m_allocator); - } - - std::unique_ptr GreengrassCoreIpcClient::NewPtrListLocalDeployments() noexcept + std::shared_ptr GreengrassCoreIpcClient::NewListLocalDeployments() noexcept { - return std::unique_ptr(Aws::Crt::New( + return Aws::Crt::MakeShared( m_allocator, m_connection, m_greengrassCoreIpcServiceModel.m_listLocalDeploymentsOperationContext, - m_allocator)); - } - - StopComponentOperation GreengrassCoreIpcClient::NewStopComponent() noexcept - { - return StopComponentOperation( - m_connection, m_greengrassCoreIpcServiceModel.m_stopComponentOperationContext, m_allocator); + m_allocator); } - std::unique_ptr GreengrassCoreIpcClient::NewPtrStopComponent() noexcept + std::shared_ptr GreengrassCoreIpcClient::NewStopComponent() noexcept { - return std::unique_ptr(Aws::Crt::New( + return Aws::Crt::MakeShared( m_allocator, m_connection, m_greengrassCoreIpcServiceModel.m_stopComponentOperationContext, - m_allocator)); - } - - PauseComponentOperation GreengrassCoreIpcClient::NewPauseComponent() noexcept - { - return PauseComponentOperation( - m_connection, m_greengrassCoreIpcServiceModel.m_pauseComponentOperationContext, m_allocator); + m_allocator); } - std::unique_ptr GreengrassCoreIpcClient::NewPtrPauseComponent() noexcept + std::shared_ptr GreengrassCoreIpcClient::NewPauseComponent() noexcept { - return std::unique_ptr(Aws::Crt::New( + return Aws::Crt::MakeShared( m_allocator, m_connection, m_greengrassCoreIpcServiceModel.m_pauseComponentOperationContext, - m_allocator)); - } - - CreateLocalDeploymentOperation GreengrassCoreIpcClient::NewCreateLocalDeployment() noexcept - { - return CreateLocalDeploymentOperation( - m_connection, m_greengrassCoreIpcServiceModel.m_createLocalDeploymentOperationContext, m_allocator); + m_allocator); } - std::unique_ptr GreengrassCoreIpcClient::NewPtrCreateLocalDeployment() noexcept + std::shared_ptr GreengrassCoreIpcClient::NewCreateLocalDeployment() noexcept { - return std::unique_ptr(Aws::Crt::New( + return Aws::Crt::MakeShared( m_allocator, m_connection, m_greengrassCoreIpcServiceModel.m_createLocalDeploymentOperationContext, - m_allocator)); + m_allocator); } } // namespace Greengrass diff --git a/greengrass_ipc/source/GreengrassCoreIpcModel.cpp b/greengrass_ipc/source/GreengrassCoreIpcModel.cpp index 73d53ad9c..e444f3992 100644 --- a/greengrass_ipc/source/GreengrassCoreIpcModel.cpp +++ b/greengrass_ipc/source/GreengrassCoreIpcModel.cpp @@ -5125,22 +5125,12 @@ namespace Aws std::launch::deferred, [this]() { return SubscribeToIoTCoreResult(GetOperationResult().get()); }); } - SubscribeToIoTCoreOperation::SubscribeToIoTCoreOperation( - ClientConnection &connection, - SubscribeToIoTCoreStreamHandler *streamHandler, - const SubscribeToIoTCoreOperationContext &operationContext, - Aws::Crt::Allocator *allocator) noexcept - : ClientOperation(connection, streamHandler, operationContext, allocator) - { - } - SubscribeToIoTCoreOperation::SubscribeToIoTCoreOperation( ClientConnection &connection, std::shared_ptr streamHandler, const SubscribeToIoTCoreOperationContext &operationContext, Aws::Crt::Allocator *allocator) noexcept - : ClientOperation(connection, streamHandler.get(), operationContext, allocator), - pinnedHandler(std::move(streamHandler)) + : ClientOperation(connection, streamHandler, operationContext, allocator) { } @@ -5374,22 +5364,12 @@ namespace Aws }); } - SubscribeToConfigurationUpdateOperation::SubscribeToConfigurationUpdateOperation( - ClientConnection &connection, - SubscribeToConfigurationUpdateStreamHandler *streamHandler, - const SubscribeToConfigurationUpdateOperationContext &operationContext, - Aws::Crt::Allocator *allocator) noexcept - : ClientOperation(connection, streamHandler, operationContext, allocator) - { - } - SubscribeToConfigurationUpdateOperation::SubscribeToConfigurationUpdateOperation( ClientConnection &connection, std::shared_ptr streamHandler, const SubscribeToConfigurationUpdateOperationContext &operationContext, Aws::Crt::Allocator *allocator) noexcept - : ClientOperation(connection, streamHandler.get(), operationContext, allocator), - pinnedHandler(std::move(streamHandler)) + : ClientOperation(connection, streamHandler, operationContext, allocator) { } @@ -5620,22 +5600,12 @@ namespace Aws }); } - SubscribeToValidateConfigurationUpdatesOperation::SubscribeToValidateConfigurationUpdatesOperation( - ClientConnection &connection, - SubscribeToValidateConfigurationUpdatesStreamHandler *streamHandler, - const SubscribeToValidateConfigurationUpdatesOperationContext &operationContext, - Aws::Crt::Allocator *allocator) noexcept - : ClientOperation(connection, streamHandler, operationContext, allocator) - { - } - SubscribeToValidateConfigurationUpdatesOperation::SubscribeToValidateConfigurationUpdatesOperation( ClientConnection &connection, std::shared_ptr streamHandler, const SubscribeToValidateConfigurationUpdatesOperationContext &operationContext, Aws::Crt::Allocator *allocator) noexcept - : ClientOperation(connection, streamHandler.get(), operationContext, allocator), - pinnedHandler(std::move(streamHandler)) + : ClientOperation(connection, streamHandler, operationContext, allocator) { } @@ -5804,22 +5774,12 @@ namespace Aws std::launch::deferred, [this]() { return SubscribeToTopicResult(GetOperationResult().get()); }); } - SubscribeToTopicOperation::SubscribeToTopicOperation( - ClientConnection &connection, - SubscribeToTopicStreamHandler *streamHandler, - const SubscribeToTopicOperationContext &operationContext, - Aws::Crt::Allocator *allocator) noexcept - : ClientOperation(connection, streamHandler, operationContext, allocator) - { - } - SubscribeToTopicOperation::SubscribeToTopicOperation( ClientConnection &connection, std::shared_ptr streamHandler, const SubscribeToTopicOperationContext &operationContext, Aws::Crt::Allocator *allocator) noexcept - : ClientOperation(connection, streamHandler.get(), operationContext, allocator), - pinnedHandler(std::move(streamHandler)) + : ClientOperation(connection, streamHandler, operationContext, allocator) { } @@ -6883,22 +6843,12 @@ namespace Aws }); } - SubscribeToComponentUpdatesOperation::SubscribeToComponentUpdatesOperation( - ClientConnection &connection, - SubscribeToComponentUpdatesStreamHandler *streamHandler, - const SubscribeToComponentUpdatesOperationContext &operationContext, - Aws::Crt::Allocator *allocator) noexcept - : ClientOperation(connection, streamHandler, operationContext, allocator) - { - } - SubscribeToComponentUpdatesOperation::SubscribeToComponentUpdatesOperation( ClientConnection &connection, std::shared_ptr streamHandler, const SubscribeToComponentUpdatesOperationContext &operationContext, Aws::Crt::Allocator *allocator) noexcept - : ClientOperation(connection, streamHandler.get(), operationContext, allocator), - pinnedHandler(std::move(streamHandler)) + : ClientOperation(connection, streamHandler, operationContext, allocator) { }