16 #ifndef ACSDKMANUFACTORY_INTERNAL_MANUFACTORY_IMP_H_ 17 #define ACSDKMANUFACTORY_INTERNAL_MANUFACTORY_IMP_H_ 28 namespace acsdkManufactory {
30 template <
typename... Exports>
31 template <
typename... Parameters>
39 static_assert(std::tuple_size<MissingExports>() == 0,
"Missing export types required by Manufactory::create.");
42 auto cookBook = component.getCookBook();
44 if (!cookBook.checkCompleteness()) {
47 return std::unique_ptr<Manufactory>(
new Manufactory(cookBook));
50 template <
typename... Exports>
51 template <
typename... Superset>
58 std::tuple_size<MissingExports>() == 0,
59 "Input does not provide all the types to be exported by " 60 "subset manufactory");
66 .d(
"reason",
"nullSuperSetManufactory"));
72 template <
typename... Exports>
73 template <
typename... Subset>
78 static_assert(std::tuple_size<MissingExports>() == 0,
"Manufactory does not export all types in Subset...");
84 template <
typename... Exports>
85 template <
typename Type>
89 "Manufactory::get() does not support requested Type");
91 return m_runtimeManufactory->get<
Type>();
94 template <
typename... Exports>
96 const std::shared_ptr<internal::RuntimeManufactory>& runtimeManufactory) {
99 return std::unique_ptr<Manufactory>(
new Manufactory(runtimeManufactory));
102 template <
typename... Exports>
107 template <
typename... Exports>
109 m_runtimeManufactory{runtimeManufactory} {
115 #endif // ACSDKMANUFACTORY_INTERNAL_MANUFACTORY_IMP_H_
Definition: CookBook.h:42
Definition: RuntimeManufactory.h:39
Definition: Component.h:36
Definition: Manufactory.h:33
friend class Manufactory
Definition: Manufactory.h:88
Whether or not curl logs should be emitted.
Definition: AVSConnectionManager.h:36
type
Definition: upload.py:443
void acsdkError(const LogEntry &entry)
static std::unique_ptr< Manufactory< Exports... > > create(const Component< Parameters... > &component)
Definition: Manufactory_imp.h:32
Type
Definition: Type.h:26
std::unique_ptr< Manufactory< Subset... > > createSubsetManufactory()
Definition: Manufactory_imp.h:74
Type get()
Definition: Manufactory_imp.h:86
LogEntry is used to compile the log entry text to log via Logger.
Definition: LogEntry.h:33