14#ifndef SIMICS_SYSTEMC_AWARENESS_SC_ATTRIBUTE_H
15#define SIMICS_SYSTEMC_AWARENESS_SC_ATTRIBUTE_H
30 virtual void init(sc_core::sc_object *
object,
31 sc_core::sc_attr_base *
attr) = 0;
32 virtual int key()
const = 0;
33 virtual sc_core::sc_attr_base *
attr() = 0;
34 virtual sc_core::sc_attr_base *
attr()
const = 0;
42 void init(sc_core::sc_object *
object,
43 sc_core::sc_attr_base *
attr)
override {
44 object_name_ =
object->name();
45 attr_name_ =
attr->name();
48 int key()
const override {
51 sc_core::sc_attr_base *
attr()
override {
54 sc_core::sc_attr_base *
attr()
const override {
60 sc_core::sc_object *obj = sc_core::sc_find_object(object_name_.c_str());
62 attr_ = obj->get_attribute(attr_name_);
68 set_error_t
set(attr_value_t *val)
override {
70 if (access.set(
attr(), val))
73 return Sim_Set_Illegal_Type;
75 attr_value_t
get()
const override {
77 return access.get(
attr());
81 std::string object_name_;
82 std::string attr_name_;
83 sc_core::sc_attr_base *attr_;
Definition: attribute.h:24
int key() const
Definition: attribute.h:29
Definition: sc_attribute.h:27
virtual sc_core::sc_attr_base * attr() const =0
virtual sc_core::sc_attr_base * attr()=0
virtual ~ScAttributeInterface()
Definition: sc_attribute.h:29
virtual int key() const =0
virtual void init(sc_core::sc_object *object, sc_core::sc_attr_base *attr)=0
Definition: sc_attribute.h:38
sc_core::sc_attr_base * attr() const override
Definition: sc_attribute.h:54
attr_value_t get() const override
Definition: sc_attribute.h:75
sc_core::sc_attr_base * attr() override
Definition: sc_attribute.h:51
Attribute * create() override
Definition: sc_attribute.h:59
int key() const override
Definition: sc_attribute.h:48
set_error_t set(attr_value_t *val) override
Definition: sc_attribute.h:68
void init(sc_core::sc_object *object, sc_core::sc_attr_base *attr) override
Definition: sc_attribute.h:42
ScAttribute(int key)
Definition: sc_attribute.h:40