16#ifndef SIMICS_SYSTEMC_AWARENESS_SC_ATTRIBUTE_H
17#define SIMICS_SYSTEMC_AWARENESS_SC_ATTRIBUTE_H
32 virtual void init(sc_core::sc_object *
object,
33 sc_core::sc_attr_base *
attr) = 0;
34 virtual int key()
const = 0;
35 virtual sc_core::sc_attr_base *
attr() = 0;
36 virtual sc_core::sc_attr_base *
attr()
const = 0;
43 virtual void init(sc_core::sc_object *
object, sc_core::sc_attr_base *
attr) {
44 object_name_ =
object->name();
45 attr_name_ =
attr->name();
48 virtual int key()
const {
52 sc_core::sc_object *obj = sc_core::sc_find_object(object_name_.c_str());
54 attr_ = obj->get_attribute(attr_name_);
60 virtual sc_core::sc_attr_base *
attr() {
63 virtual sc_core::sc_attr_base *
attr()
const {
66 virtual set_error_t
set(attr_value_t *val) {
68 if (access.set(
attr(), val))
71 return Sim_Set_Illegal_Type;
73 virtual attr_value_t
get()
const {
75 return access.get(
attr());
79 std::string object_name_;
80 std::string attr_name_;
81 sc_core::sc_attr_base *attr_;
Definition: attribute.h:26
int key() const
Definition: attribute.h:31
Definition: sc_attribute.h:29
virtual sc_core::sc_attr_base * attr() const =0
virtual sc_core::sc_attr_base * attr()=0
virtual ~ScAttributeInterface()
Definition: sc_attribute.h:31
virtual int key() const =0
virtual void init(sc_core::sc_object *object, sc_core::sc_attr_base *attr)=0
Definition: sc_attribute.h:40
virtual sc_core::sc_attr_base * attr()
Definition: sc_attribute.h:60
virtual Attribute * create()
Definition: sc_attribute.h:51
virtual attr_value_t get() const
Definition: sc_attribute.h:73
virtual void init(sc_core::sc_object *object, sc_core::sc_attr_base *attr)
Definition: sc_attribute.h:43
virtual set_error_t set(attr_value_t *val)
Definition: sc_attribute.h:66
virtual int key() const
Definition: sc_attribute.h:48
ScAttribute(int key)
Definition: sc_attribute.h:42
virtual sc_core::sc_attr_base * attr() const
Definition: sc_attribute.h:63
Definition: pci_bus_interface.h:24