16#ifndef SIMICS_OBJECT_FACTORY_H
17#define SIMICS_OBJECT_FACTORY_H
37 static_assert(std::is_base_of<ConfObject, T>::value,
38 "T must be ConfObject-derived");
77template <
typename T,
typename A>
80 static_assert(std::is_base_of<ConfObject, T>::value,
81 "T must be ConfObject-derived");
95 return new T(obj, arg_);
Base class for all Simics configuration objects.
Definition: conf-object.h:126
Interface for a factory pattern to create ConfObject instances.
Definition: object-factory-interface.h:31
A factory for creating instances of ConfObject-derived classes with an argument.
Definition: object-factory.h:78
ConfObject * create(conf_object_t *obj) const override
Creates an instance of the ConfObject-derived class with an argument.
Definition: object-factory.h:94
ObjectFactoryWithArg(A *arg)
Definition: object-factory.h:83
ObjectFactoryInterface * clone() const override
Clones the current ObjectFactoryWithArg instance.
Definition: object-factory.h:105
A factory for creating instances of ConfObject-derived classes.
Definition: object-factory.h:35
ConfObject * create(conf_object_t *obj) const override
Creates an instance of the ConfObject-derived class.
Definition: object-factory.h:51
ObjectFactoryInterface * clone() const override
Clones the current ObjectFactory instance.
Definition: object-factory.h:62
Definition: after-bank.h:33