/* Copyright 2010-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. * This file is generated */ #include #include #include namespace Aws { namespace Iotsecuretunneling { IotSecureTunnelingClient::IotSecureTunnelingClient( const std::shared_ptr &connection) : m_connection(connection) { } IotSecureTunnelingClient::operator bool() const noexcept { return m_connection && *m_connection; } int IotSecureTunnelingClient::GetLastError() const noexcept { return aws_last_error(); } bool IotSecureTunnelingClient::SubscribeToTunnelsNotify( const Aws::Iotsecuretunneling::SubscribeToTunnelsNotifyRequest &request, Aws::Crt::Mqtt::QOS qos, const OnSubscribeToTunnelsNotifyResponse &handler, const OnSubscribeComplete &onSubAck) { (void)request; auto onSubscribeComplete = [handler, onSubAck]( Aws::Crt::Mqtt::MqttConnection &, uint16_t, const Aws::Crt::String &topic, Aws::Crt::Mqtt::QOS, int errorCode) { (void)topic; if (errorCode) { handler(nullptr, errorCode); } if (onSubAck) { onSubAck(errorCode); } }; auto onSubscribePublish = [handler]( Aws::Crt::Mqtt::MqttConnection &, const Aws::Crt::String &, const Aws::Crt::ByteBuf &payload) { Aws::Crt::String objectStr(reinterpret_cast(payload.buffer), payload.len); Aws::Crt::JsonObject jsonObject(objectStr); Aws::Iotsecuretunneling::SecureTunnelingNotifyResponse response(jsonObject); handler(&response, AWS_ERROR_SUCCESS); }; Aws::Crt::StringStream subscribeTopicSStr; subscribeTopicSStr << "$aws" << "/" << "things" << "/" << *request.ThingName << "/" << "tunnels" << "/" << "notify"; return m_connection->Subscribe( subscribeTopicSStr.str().c_str(), qos, std::move(onSubscribePublish), std::move(onSubscribeComplete)) != 0; } } // namespace Iotsecuretunneling } // namespace Aws