16#ifndef SIMICS_SYSTEMC_INJECTION_INJECT_BASE_H
17#define SIMICS_SYSTEMC_INJECTION_INJECT_BASE_H
32#define INJECT_SET_VALUE(setter, type, extension) \
33 if (key == #setter) { \
36 if (!parser->value(&v)) { \
39 this->template get_extension<extension>(gp)->setter(v); \
44template <
typename TPAYLOAD>
50 attr_value_t *attr, TPAYLOAD *gp) = 0;
58 return setValue(parser, key, attr, gp_);
62 T *t = gp->template get_extension<T>();
68 gp->set_extension(
new T);
69 return gp->template get_extension<T>();
Definition: registry.h:88
Definition: attr_dict_parser.h:40
bool parse(ParserInterface *parser)
Definition: inject_base.h:45
virtual void attrToValue(AttrDictParser *parser, TPAYLOAD *gp)
Definition: inject_base.h:51
virtual void released(TPAYLOAD *gp)
Definition: inject_base.h:55
virtual bool parse(AttrDictParser *parser, const std::string &key, attr_value_t *attr)
Definition: inject_base.h:56
virtual bool setValue(AttrDictParser *parser, const std::string &key, attr_value_t *attr, TPAYLOAD *gp)=0
InjectBase()
Definition: inject_base.h:47
virtual ~InjectBase()
Definition: inject_base.h:48
T * get_extension(TPAYLOAD *gp)
Definition: inject_base.h:61
Definition: pci_bus_interface.h:24