16 #ifndef ACSDK_SDKCLIENT_INCLUDE_ACSDK_SDKCLIENT_SDKCLIENTREGISTRY_H_ 17 #define ACSDK_SDKCLIENT_INCLUDE_ACSDK_SDKCLIENT_SDKCLIENTREGISTRY_H_ 20 #include <unordered_map> 30 #include "internal/Utils.h" 46 class SDKClientRegistry
47 :
public std::enable_shared_from_this<SDKClientRegistry>
48 ,
public avsCommon::utils::RequiresShutdown {
57 typename std::enable_if<std::is_base_of<FeatureClientInterface, ClientType>::value>
::type* =
nullptr>
66 template <
typename ComponentType>
76 template <
typename ComponentType>
86 template <
typename AnnotatedName,
typename ComponentType>
96 template <
typename FeatureClientBuilderType>
101 void doShutdown()
override;
118 const avsCommon::utils::TypeIndex& clientTypeId,
119 std::shared_ptr<FeatureClientInterface> client);
127 bool registerComponent(
const avsCommon::utils::TypeIndex& clientTypeId, std::shared_ptr<void> component);
137 const avsCommon::utils::TypeIndex& clientTypeId,
138 std::unique_ptr<FeatureClientBuilderInterface> featureBuilder,
139 std::function<std::shared_ptr<FeatureClientInterface>(
const std::shared_ptr<SDKClientRegistry>&)>
143 std::unordered_map<avsCommon::utils::TypeIndex, std::shared_ptr<FeatureClientInterface>> m_clientMapping;
146 std::unordered_map<avsCommon::utils::TypeIndex, std::shared_ptr<void>> m_componentMapping;
149 std::shared_ptr<acsdkShutdownManagerInterfaces::ShutdownManagerInterface> m_shutdownManager;
152 std::shared_ptr<acsdkShutdownManagerInterfaces::ShutdownNotifierInterface> m_shutdownNotifier;
155 friend class SDKClientBuilder;
161 #endif // ACSDK_SDKCLIENT_INCLUDE_ACSDK_SDKCLIENT_SDKCLIENTREGISTRY_H_
ADSLComponent getComponent()
Whether or not curl logs should be emitted.
Definition: AVSConnectionManager.h:36
type
Definition: upload.py:443