16 #ifndef ACSDKMANUFACTORY_INTERNAL_ABSTRACTRECIPE_H_ 17 #define ACSDKMANUFACTORY_INTERNAL_ABSTRACTRECIPE_H_ 22 namespace acsdkManufactory {
26 class RuntimeManufactory;
47 void* (*)(std::shared_ptr<AbstractRecipe> recipe,
RuntimeManufactory& runtimeManufactory,
void* cachedValue);
99 virtual bool isEquivalent(
const std::shared_ptr<AbstractRecipe>& recipe)
const = 0;
132 std::vector<avsCommon::utils::TypeIndex>::const_iterator
begin()
const;
139 std::vector<avsCommon::utils::TypeIndex>::const_iterator
end()
const;
186 #endif // ACSDKMANUFACTORY_INTERNAL_ABSTRACTRECIPE_H_ CachedInstanceLifecycle
Definition: AbstractRecipe.h:72
std::vector< avsCommon::utils::TypeIndex > m_dependencies
Vector enumerating the dependencies of the interface this AbstractRecipe creates. ...
Definition: AbstractRecipe.h:143
A recipe whose means to produce the object is a pre-made object.
Definition: AbstractRecipe.h:65
A recipe added by addRetainedFactory will produce an object cached with a std::shared_ptr.
Definition: AbstractRecipe.h:78
virtual bool isEquivalent(const std::shared_ptr< AbstractRecipe > &recipe) const =0
DeleteInstanceFunction getDeleteInstanceFunction() const
Definition: AbstractRecipe.h:170
A recipe added by addRequiredFactory will produce an object cached with a std::shared_ptr.
Definition: AbstractRecipe.h:80
virtual ~AbstractRecipe()=default
CachedInstanceLifecycle getLifecycle() const
Definition: AbstractRecipe.h:162
std::vector< avsCommon::utils::TypeIndex >::const_iterator begin() const
Definition: AbstractRecipe.h:174
A recipe whose means to produce the object is a function pointer.
Definition: AbstractRecipe.h:61
Definition: RuntimeManufactory.h:39
A recipe whose means to produce the object is a std::function.
Definition: AbstractRecipe.h:63
A recipe added by addInstance will cache the pre-made instance with a std::shared_ptr.
Definition: AbstractRecipe.h:74
DeleteInstanceFunction m_deleteFunction
Function pointer that can delete a cached value of this type.
Definition: AbstractRecipe.h:149
RecipeType
Definition: AbstractRecipe.h:59
RecipeType getRecipeType() const
Definition: AbstractRecipe.h:158
RecipeType m_recipeType
The RecipeType of this recipe.
Definition: AbstractRecipe.h:152
Definition: AbstractRecipe.h:31
void(*)(void *) DeleteInstanceFunction
Definition: AbstractRecipe.h:54
A recipe added by addPrimaryFactory will produce an object cached with a std::shared_ptr.
Definition: AbstractRecipe.h:76
A recipe added by addUniqueFactory will produce a new instance every time, and never cache them...
Definition: AbstractRecipe.h:82
Whether or not curl logs should be emitted.
Definition: AVSConnectionManager.h:36
CachedInstanceLifecycle m_objectLifecycle
The CachedInstanceLifecycle of a cached instance of this Type.
Definition: AbstractRecipe.h:155
ProduceInstanceFunction m_produceFunction
Function pointer that can produce an instance of this type.
Definition: AbstractRecipe.h:146
A recipe added by addUnloadableFactory will produce an object cached with a std::weak_ptr.
Definition: AbstractRecipe.h:84
ProduceInstanceFunction getProduceInstanceFunction() const
Definition: AbstractRecipe.h:166
void *(*)(std::shared_ptr< AbstractRecipe > recipe, RuntimeManufactory &runtimeManufactory, void *cachedValue) ProduceInstanceFunction
Definition: AbstractRecipe.h:47
std::vector< avsCommon::utils::TypeIndex >::const_iterator end() const
Definition: AbstractRecipe.h:178