AlexaClientSDK  3.0.0
A cross-platform, modular SDK for interacting with the Alexa Voice Service
Public Types | Public Member Functions | Static Public Attributes | Protected Attributes | List of all members
alexaClientSDK::settings::SettingsManagerBuilderBase< settings::SettingsManager< SettingsT... > > Class Template Referenceabstract

#include <SettingsManagerBuilderBase.h>

Public Types

template<size_t index>
using SettingType = typename std::tuple_element< index, std::tuple< SettingsT... > >::type
 The setting type kept at index position. More...
 
template<size_t index>
using ValueType = typename SettingType< index >::ValueType
 The setting value type kept at index position. More...
 
using SettingConfigurations = std::tuple< SettingConfiguration< SettingsT >... >
 The tuple holding the settings configuration. More...
 

Public Member Functions

virtual std::unique_ptr< settings::SettingsManager< SettingsT... > > build ()=0
 
const SettingConfigurations getConfigurations () const
 
virtual ~SettingsManagerBuilderBase ()=default
 

Static Public Attributes

static constexpr size_t NUMBER_OF_SETTINGS {sizeof...(SettingsT)}
 The number of settings supported by this builder. More...
 

Protected Attributes

SettingConfigurations m_settingConfigs
 A tuple with all setting configurations. More...
 

Detailed Description

template<typename... SettingsT>
class alexaClientSDK::settings::SettingsManagerBuilderBase< settings::SettingsManager< SettingsT... > >

Base class for SettingManagers builders.

Template Parameters
SettingsTThe types handled by the target SettingManagers.

Member Typedef Documentation

◆ SettingConfigurations

template<typename... SettingsT>
using alexaClientSDK::settings::SettingsManagerBuilderBase< settings::SettingsManager< SettingsT... > >::SettingConfigurations = std::tuple<SettingConfiguration<SettingsT>...>

The tuple holding the settings configuration.

◆ SettingType

template<typename... SettingsT>
template<size_t index>
using alexaClientSDK::settings::SettingsManagerBuilderBase< settings::SettingsManager< SettingsT... > >::SettingType = typename std::tuple_element<index, std::tuple<SettingsT...> >::type

The setting type kept at index position.

◆ ValueType

template<typename... SettingsT>
template<size_t index>
using alexaClientSDK::settings::SettingsManagerBuilderBase< settings::SettingsManager< SettingsT... > >::ValueType = typename SettingType<index>::ValueType

The setting value type kept at index position.

Constructor & Destructor Documentation

◆ ~SettingsManagerBuilderBase()

template<typename... SettingsT>
virtual alexaClientSDK::settings::SettingsManagerBuilderBase< settings::SettingsManager< SettingsT... > >::~SettingsManagerBuilderBase ( )
virtualdefault

Virtual destructor.

Member Function Documentation

◆ build()

template<typename... SettingsT>
virtual std::unique_ptr<settings::SettingsManager<SettingsT...> > alexaClientSDK::settings::SettingsManagerBuilderBase< settings::SettingsManager< SettingsT... > >::build ( )
pure virtual

Builds a SettingsManager object.

Returns
A valid pointer if the build succeeds; false otherwise.

◆ getConfigurations()

template<typename... SettingsT>
const SettingConfigurations alexaClientSDK::settings::SettingsManagerBuilderBase< settings::SettingsManager< SettingsT... > >::getConfigurations ( ) const

Gets the settings configuration.

Returns
the settings configuration.

Member Data Documentation

◆ m_settingConfigs

template<typename... SettingsT>
SettingConfigurations alexaClientSDK::settings::SettingsManagerBuilderBase< settings::SettingsManager< SettingsT... > >::m_settingConfigs
protected

A tuple with all setting configurations.

◆ NUMBER_OF_SETTINGS

template<typename... SettingsT>
constexpr size_t alexaClientSDK::settings::SettingsManagerBuilderBase< settings::SettingsManager< SettingsT... > >::NUMBER_OF_SETTINGS {sizeof...(SettingsT)}
static

The number of settings supported by this builder.


The documentation for this class was generated from the following file:

AlexaClientSDK 3.0.0 - Copyright 2016-2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0