16 #ifndef ACSDKMANUFACTORY_COMPONENTACCUMULATOR_H_ 17 #define ACSDKMANUFACTORY_COMPONENTACCUMULATOR_H_ 28 namespace acsdkManufactory {
37 template <
typename... Parameters>
38 class ComponentAccumulator {
51 template <
typename... RhsParameters>
62 template <
typename Type,
typename... Dependencies>
63 ComponentAccumulator<Import<internal::RemoveCvref_t<Dependencies>>...,
Type, Parameters...>
addUniqueFactory(
64 Type (*factory)(Dependencies...));
75 template <
typename Type,
typename... Dependencies>
76 ComponentAccumulator<Import<internal::RemoveCvref_t<Dependencies>>...,
Type, Parameters...>
addPrimaryFactory(
77 std::function<
Type(Dependencies...)> factory);
88 template <
typename Type,
typename... Dependencies>
89 ComponentAccumulator<Import<internal::RemoveCvref_t<Dependencies>>...,
Type, Parameters...>
addPrimaryFactory(
90 Type (*factory)(Dependencies...));
101 template <
typename Type,
typename... Dependencies>
102 ComponentAccumulator<Import<internal::RemoveCvref_t<Dependencies>>...,
Type, Parameters...>
addRequiredFactory(
103 std::function<
Type(Dependencies...)> factory);
114 template <
typename Type,
typename... Dependencies>
115 ComponentAccumulator<Import<internal::RemoveCvref_t<Dependencies>>...,
Type, Parameters...>
addRequiredFactory(
116 Type (*factory)(Dependencies...));
127 template <
typename Type,
typename... Dependencies>
128 ComponentAccumulator<Import<internal::RemoveCvref_t<Dependencies>>...,
Type, Parameters...>
addRetainedFactory(
129 std::function<
Type(Dependencies...)> factory);
140 template <
typename Type,
typename... Dependencies>
141 ComponentAccumulator<Import<internal::RemoveCvref_t<Dependencies>>...,
Type, Parameters...>
addRetainedFactory(
142 Type (*factory)(Dependencies...));
153 template <
typename Type,
typename... Dependencies>
155 std::function<
Type(Dependencies...)> factory);
166 template <
typename Type,
typename... Dependencies>
168 Type (*factory)(Dependencies...));
177 template <
typename Type>
186 template <
typename Type>
187 ComponentAccumulator<internal::MakeOptional<Type>, Parameters...>
makeImportOptional();
197 template <
typename... SubComponentParameters>
199 const Component<SubComponentParameters...>& component);
203 template <
typename...>
207 template <
typename...>
226 #endif // ACSDKMANUFACTORY_COMPONENTACCUMULATOR_H_ ComponentAccumulator< internal::MakeOptional< Type >, Parameters... > makeImportOptional()
Definition: ComponentAccumulator_imp.h:117
ComponentAccumulator< Import< internal::RemoveCvref_t< Dependencies > >..., Type, Parameters... > addUnloadableFactory(std::function< Type(Dependencies...)> factory)
Definition: ComponentAccumulator_imp.h:94
Definition: CookBook.h:42
ComponentAccumulator()
Definition: ComponentAccumulator_imp.h:26
ComponentAccumulator< Import< internal::RemoveCvref_t< Dependencies > >..., Type, Parameters... > addRequiredFactory(std::function< Type(Dependencies...)> factory)
Definition: ComponentAccumulator_imp.h:62
ComponentAccumulator< Import< internal::RemoveCvref_t< Dependencies > >..., Type, Parameters... > addPrimaryFactory(std::function< Type(Dependencies...)> factory)
Definition: ComponentAccumulator_imp.h:46
Whether or not curl logs should be emitted.
Definition: AVSConnectionManager.h:36
ComponentAccumulator< Import< internal::RemoveCvref_t< Dependencies > >..., Type, Parameters... > addRetainedFactory(std::function< Type(Dependencies...)> factory)
Definition: ComponentAccumulator_imp.h:78
friend class Component
Definition: ComponentAccumulator.h:204
Type
Definition: Type.h:26
ComponentAccumulator< Type, Parameters... > addInstance(Type instance)
Definition: ComponentAccumulator_imp.h:109
friend class ComponentAccumulator
Definition: ComponentAccumulator.h:208
ComponentAccumulator< SubComponentParameters..., Parameters... > addComponent(const Component< SubComponentParameters... > &component)
Definition: ComponentAccumulator_imp.h:123
ComponentAccumulator< Import< internal::RemoveCvref_t< Dependencies > >..., Type, Parameters... > addUniqueFactory(Type(*factory)(Dependencies...))
Definition: ComponentAccumulator_imp.h:38