KinesisManagerStatus StreamerNode::Initialize()

in kinesis_video_streamer/src/streamer.cpp [39:78]


    KinesisManagerStatus StreamerNode::Initialize(std::shared_ptr<Aws::Client::Ros2NodeParameterReader> parameter_reader,
                                                  std::shared_ptr<RosStreamSubscriptionInstaller> subscription_installer)
    {
        parameter_reader_ = parameter_reader;
        subscription_installer_ = subscription_installer;
        /* Log4cplus setup for the Kinesis Producer SDK */
        std::string log4cplus_config;
        parameter_reader_->ReadParam(
                GetKinesisVideoParameter(kStreamParameters.log4cplus_config), log4cplus_config);
        if (!log4cplus_config.empty()) {
            log4cplus::PropertyConfigurator::doConfigure(log4cplus_config);
        } else {
            log4cplus::BasicConfigurator configurator;
            configurator.configure();
        }

        Aws::Client::ClientConfigurationProvider configuration_provider(parameter_reader_);
        Aws::Client::ClientConfiguration aws_sdk_config =
                configuration_provider.GetClientConfiguration();
        /* Set up subscription callbacks */
        if (!subscription_installer_->SetDefaultCallbacks()) {
            AWS_LOG_FATAL(__func__, "Failed to set up subscription callbacks.");
            return KINESIS_MANAGER_STATUS_ERROR_BASE;
        }
        auto kinesis_client = std::unique_ptr<KinesisClient>(
                Aws::New<Aws::Kinesis::KinesisClientFacade>(__func__, aws_sdk_config));
        stream_manager_ = std::make_shared<KinesisStreamManager>(
                parameter_reader_.get(), &stream_definition_provider_, subscription_installer_.get(),
                std::move(kinesis_client));
        subscription_installer_->set_stream_manager(stream_manager_.get());
        /* Initialization of video producer */
        KinesisManagerStatus initialize_video_producer_result =
                stream_manager_->InitializeVideoProducer(aws_sdk_config.region.c_str());
        if (KINESIS_MANAGER_STATUS_FAILED(initialize_video_producer_result)) {
            AWS_LOGSTREAM_FATAL(__func__, "Failed to initialize video producer. Error code: "
                    << initialize_video_producer_result);
            return initialize_video_producer_result;
        }
        return KINESIS_MANAGER_STATUS_SUCCESS;
    }