#pragma once /** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ /* This file is generated. */ #include #include using namespace Aws::Eventstreamrpc; namespace Aws { namespace Greengrass { class DefaultConnectionConfig : public ConnectionConfig { public: DefaultConnectionConfig() noexcept; }; class GreengrassCoreIpcClient { public: GreengrassCoreIpcClient( Aws::Crt::Io::ClientBootstrap &clientBootstrap, Aws::Crt::Allocator *allocator = Aws::Crt::g_allocator) noexcept; /** * Connect the client to the server * @param lifecycleHandler An interface that is called upon when lifecycle events relating to the connection * occur. * @param connectionConfig The configuration parameters used for establishing the connection. * @return An `RpcError` that can be used to check whether the connection was established. */ std::future Connect( ConnectionLifecycleHandler &lifecycleHandler, const ConnectionConfig &connectionConfig = DefaultConnectionConfig()) noexcept; bool IsConnected() const noexcept { return m_connection.IsOpen(); } void Close() noexcept; void WithLaunchMode(std::launch mode) noexcept; std::shared_ptr NewSubscribeToIoTCore( std::shared_ptr streamHandler) noexcept; std::shared_ptr NewResumeComponent() noexcept; std::shared_ptr NewPublishToIoTCore() noexcept; std::shared_ptr NewSubscribeToConfigurationUpdate( std::shared_ptr streamHandler) noexcept; std::shared_ptr NewDeleteThingShadow() noexcept; std::shared_ptr NewPutComponentMetric() noexcept; std::shared_ptr NewDeferComponentUpdate() noexcept; std::shared_ptr NewSubscribeToValidateConfigurationUpdates( std::shared_ptr streamHandler) noexcept; std::shared_ptr NewGetConfiguration() noexcept; std::shared_ptr NewSubscribeToTopic( std::shared_ptr streamHandler) noexcept; std::shared_ptr NewGetComponentDetails() noexcept; std::shared_ptr NewGetClientDeviceAuthToken() noexcept; std::shared_ptr NewPublishToTopic() noexcept; std::shared_ptr NewSubscribeToCertificateUpdates( std::shared_ptr streamHandler) noexcept; std::shared_ptr NewVerifyClientDeviceIdentity() noexcept; std::shared_ptr NewAuthorizeClientDeviceAction() noexcept; std::shared_ptr NewListComponents() noexcept; std::shared_ptr NewCreateDebugPassword() noexcept; std::shared_ptr NewGetThingShadow() noexcept; std::shared_ptr NewSendConfigurationValidityReport() noexcept; std::shared_ptr NewUpdateThingShadow() noexcept; std::shared_ptr NewUpdateConfiguration() noexcept; std::shared_ptr NewValidateAuthorizationToken() noexcept; std::shared_ptr NewRestartComponent() noexcept; std::shared_ptr NewGetLocalDeploymentStatus() noexcept; std::shared_ptr NewGetSecretValue() noexcept; std::shared_ptr NewUpdateState() noexcept; std::shared_ptr NewCancelLocalDeployment() noexcept; std::shared_ptr NewListNamedShadowsForThing() noexcept; std::shared_ptr NewSubscribeToComponentUpdates( std::shared_ptr streamHandler) noexcept; std::shared_ptr NewListLocalDeployments() noexcept; std::shared_ptr NewStopComponent() noexcept; std::shared_ptr NewPauseComponent() noexcept; std::shared_ptr NewCreateLocalDeployment() noexcept; ~GreengrassCoreIpcClient() noexcept; private: GreengrassCoreIpcServiceModel m_greengrassCoreIpcServiceModel; ClientConnection m_connection; Aws::Crt::Io::ClientBootstrap &m_clientBootstrap; Aws::Crt::Allocator *m_allocator; MessageAmendment m_connectAmendment; std::launch m_asyncLaunchMode; }; } // namespace Greengrass } // namespace Aws