AlexaClientSDK  1.26.0
A cross-platform, modular SDK for interacting with the Alexa Voice Service
LocaleAssetsManager.h
Go to the documentation of this file.
1 /*
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License").
5  * You may not use this file except in compliance with the License.
6  * A copy of the License is located at
7  *
8  * http://aws.amazon.com/apache2.0/
9  *
10  * or in the "license" file accompanying this file. This file is distributed
11  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
12  * express or implied. See the License for the specific language governing
13  * permissions and limitations under the License.
14  */
15 
16 #ifndef ALEXA_CLIENT_SDK_SAMPLEAPP_INCLUDE_SAMPLEAPP_LOCALEASSETSMANAGER_H_
17 #define ALEXA_CLIENT_SDK_SAMPLEAPP_INCLUDE_SAMPLEAPP_LOCALEASSETSMANAGER_H_
18 
19 #include <map>
20 #include <memory>
21 #include <mutex>
22 #include <set>
23 #include <unordered_set>
24 
28 
29 namespace alexaClientSDK {
30 namespace sampleApp {
31 
41 public:
49  static std::shared_ptr<avsCommon::sdkInterfaces::LocaleAssetsManagerInterface> createLocaleAssetsManagerInterface(
50  const std::shared_ptr<avsCommon::utils::configuration::ConfigurationNode>& configurationNode,
51  const std::shared_ptr<acsdkShutdownManagerInterfaces::ShutdownNotifierInterface>& shutdownNotifier);
52 
59  static std::shared_ptr<LocaleAssetsManager> createLocaleAssetsManager(
60  const std::shared_ptr<avsCommon::utils::configuration::ConfigurationNode>& configurationNode);
61 
68  static std::shared_ptr<LocaleAssetsManager> create(bool enableWakeWord);
69 
72  bool changeAssets(const Locales& locales, const WakeWords& wakeWords) override;
73  void cancelOngoingChange() override;
75  std::map<LanguageTag, WakeWordsSets> getLanguageSpecificWakeWords() const override;
76  std::map<Locale, WakeWordsSets> getLocaleSpecificWakeWords() const override;
77  WakeWordsSets getSupportedWakeWords(const Locale& locale) const override;
78  std::set<Locale> getSupportedLocales() const override;
80  Locale getDefaultLocale() const override;
81  Locales getDefaultLocales() const override;
83  const std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::LocaleAssetsObserverInterface>& observer)
84  override;
86  const std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::LocaleAssetsObserverInterface>& observer)
87  override;
90  const std::shared_ptr<
92  override;
94 
97  void doShutdown() override;
99 private:
104 
111  bool initialize(const std::shared_ptr<avsCommon::utils::configuration::ConfigurationNode>& configurationNode);
112 
120  bool initialize(bool enableWakeWord, const avsCommon::utils::configuration::ConfigurationNode& configurationNode);
121 
123  WakeWordsSets m_supportedWakeWords;
124 
126  std::set<Locale> m_supportedLocales;
127 
129  LocaleCombinations m_supportedLocalesCombinations;
130 
132  Locale m_defaultLocale;
133 
135  Locales m_defaultLocales;
136 
138  mutable std::mutex m_observersMutex;
139 
141  std::mutex m_ermMutex;
142 
144 
146  std::unordered_set<std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::LocaleAssetsObserverInterface>>
147  m_observers;
148 
150  std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::endpoints::EndpointRegistrationManagerInterface>
151  m_endpointRegistrationManager;
152 };
153 
154 } // namespace sampleApp
155 } // namespace alexaClientSDK
156 
157 #endif // ALEXA_CLIENT_SDK_SAMPLEAPP_INCLUDE_SAMPLEAPP_LOCALEASSETSMANAGER_H_
alexaClientSDK::sampleApp::LocaleAssetsManager::cancelOngoingChange
void cancelOngoingChange() override
Definition: LocaleAssetsManager.cpp:108
alexaClientSDK::avsCommon::utils::RequiresShutdown
Definition: RequiresShutdown.h:32
alexaClientSDK::sampleApp::LocaleAssetsManager::getDefaultLocales
Locales getDefaultLocales() const override
Definition: LocaleAssetsManager.cpp:245
alexaClientSDK::sampleApp::LocaleAssetsManager
Definition: LocaleAssetsManager.h:38
LocaleAssetsManagerInterface.h
alexaClientSDK::sampleApp::LocaleAssetsManager::doShutdown
void doShutdown() override
Definition: LocaleAssetsManager.cpp:290
alexaClientSDK::avsCommon::sdkInterfaces::LocaleAssetsManagerInterface
Definition: LocaleAssetsManagerInterface.h:40
alexaClientSDK::sampleApp::LocaleAssetsManager::createLocaleAssetsManagerInterface
static std::shared_ptr< avsCommon::sdkInterfaces::LocaleAssetsManagerInterface > createLocaleAssetsManagerInterface(const std::shared_ptr< avsCommon::utils::configuration::ConfigurationNode > &configurationNode, const std::shared_ptr< acsdkShutdownManagerInterfaces::ShutdownNotifierInterface > &shutdownNotifier)
Definition: LocaleAssetsManager.cpp:62
alexaClientSDK::sampleApp::LocaleAssetsManager::getLocaleSpecificWakeWords
std::map< Locale, WakeWordsSets > getLocaleSpecificWakeWords() const override
Definition: LocaleAssetsManager.cpp:223
alexaClientSDK::sampleApp::LocaleAssetsManager::setEndpointRegistrationManager
void setEndpointRegistrationManager(const std::shared_ptr< alexaClientSDK::avsCommon::sdkInterfaces::endpoints::EndpointRegistrationManagerInterface > &manager) override
Definition: LocaleAssetsManager.cpp:269
ShutdownNotifierInterface.h
alexaClientSDK::avsCommon::sdkInterfaces::LocaleAssetsManagerInterface::WakeWords
std::set< std::string > WakeWords
Definition: LocaleAssetsManagerInterface.h:57
alexaClientSDK::sampleApp::LocaleAssetsManager::getLanguageSpecificWakeWords
std::map< LanguageTag, WakeWordsSets > getLanguageSpecificWakeWords() const override
Definition: LocaleAssetsManager.cpp:228
RequiresShutdown.h
alexaClientSDK::sampleApp::LocaleAssetsManager::changeAssets
bool changeAssets(const Locales &locales, const WakeWords &wakeWords) override
Definition: LocaleAssetsManager.cpp:100
alexaClientSDK::avsCommon::sdkInterfaces::LocaleAssetsManagerInterface::Locales
std::vector< Locale > Locales
Definition: LocaleAssetsManagerInterface.h:68
alexaClientSDK::sampleApp::LocaleAssetsManager::createLocaleAssetsManager
static std::shared_ptr< LocaleAssetsManager > createLocaleAssetsManager(const std::shared_ptr< avsCommon::utils::configuration::ConfigurationNode > &configurationNode)
Definition: LocaleAssetsManager.cpp:80
alexaClientSDK
Whether or not curl logs should be emitted.
Definition: AVSConnectionManager.h:36
alexaClientSDK::sampleApp::LocaleAssetsManager::onConfigurationChanged
void onConfigurationChanged(const alexaClientSDK::avsCommon::avs::CapabilityConfiguration &configuration) override
Definition: LocaleAssetsManager.cpp:280
alexaClientSDK::avsCommon::sdkInterfaces::LocaleAssetsManagerInterface::LocaleCombinations
std::set< Locales > LocaleCombinations
Definition: LocaleAssetsManagerInterface.h:73
alexaClientSDK::sampleApp::LocaleAssetsManager::removeLocaleAssetsObserver
void removeLocaleAssetsObserver(const std::shared_ptr< alexaClientSDK::avsCommon::sdkInterfaces::LocaleAssetsObserverInterface > &observer) override
Definition: LocaleAssetsManager.cpp:259
alexaClientSDK::settings::Locale
std::string Locale
Alias for the locale type.
Definition: DeviceSettingsManager.h:34
alexaClientSDK::avsCommon::sdkInterfaces::LocaleAssetsManagerInterface::WakeWordsSets
std::set< WakeWords > WakeWordsSets
Definition: LocaleAssetsManagerInterface.h:62
alexaClientSDK::sampleApp::LocaleAssetsManager::addLocaleAssetsObserver
void addLocaleAssetsObserver(const std::shared_ptr< alexaClientSDK::avsCommon::sdkInterfaces::LocaleAssetsObserverInterface > &observer) override
Definition: LocaleAssetsManager.cpp:249
alexaClientSDK::sampleApp::LocaleAssetsManager::getSupportedLocaleCombinations
LocaleCombinations getSupportedLocaleCombinations() const override
Definition: LocaleAssetsManager.cpp:236
alexaClientSDK::sampleApp::LocaleAssetsManager::getDefaultLocale
Locale getDefaultLocale() const override
Definition: LocaleAssetsManager.cpp:240
alexaClientSDK::sampleApp::LocaleAssetsManager::create
static std::shared_ptr< LocaleAssetsManager > create(bool enableWakeWord)
Definition: LocaleAssetsManager.cpp:91
alexaClientSDK::sampleApp::LocaleAssetsManager::getSupportedLocales
std::set< Locale > getSupportedLocales() const override
Definition: LocaleAssetsManager.cpp:232
alexaClientSDK::avsCommon::sdkInterfaces::endpoints::EndpointRegistrationManagerInterface
Definition: EndpointRegistrationManagerInterface.h:39
alexaClientSDK::avsCommon::avs::CapabilityConfiguration
Definition: CapabilityConfiguration.h:42
alexaClientSDK::sampleApp::LocaleAssetsManager::getSupportedWakeWords
WakeWordsSets getSupportedWakeWords(const Locale &locale) const override
Definition: LocaleAssetsManager.cpp:214
alexaClientSDK::avsCommon::utils::configuration::ConfigurationNode
Definition: ConfigurationNode.h:71
alexaClientSDK::sampleApp::LocaleAssetsManager::getDefaultSupportedWakeWords
WakeWordsSets getDefaultSupportedWakeWords() const override
Definition: LocaleAssetsManager.cpp:218

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