bool IotJobsClient::SubscribeToUpdateJobExecutionAccepted()

in jobs/source/IotJobsClient.cpp [411:455]


        bool IotJobsClient::SubscribeToUpdateJobExecutionAccepted(
            const Aws::Iotjobs::UpdateJobExecutionSubscriptionRequest &request,
            Aws::Crt::Mqtt::QOS qos,
            const OnSubscribeToUpdateJobExecutionAcceptedResponse &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<char *>(payload.buffer), payload.len);
                Aws::Crt::JsonObject jsonObject(objectStr);
                Aws::Iotjobs::UpdateJobExecutionResponse response(jsonObject);
                handler(&response, AWS_ERROR_SUCCESS);
            };

            Aws::Crt::StringStream subscribeTopicSStr;
            subscribeTopicSStr << "$aws/things/" << *request.ThingName << "/jobs/" << *request.JobId
                               << "/update/accepted";

            return m_connection->Subscribe(
                       subscribeTopicSStr.str().c_str(),
                       qos,
                       std::move(onSubscribePublish),
                       std::move(onSubscribeComplete)) != 0;
        }