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;
44 void init(sc_core::sc_object *
object,
45 sc_core::sc_attr_base *
attr)
override {
46 object_name_ =
object->name();
47 attr_name_ =
attr->name();
50 int key()
const override {
53 sc_core::sc_attr_base *
attr()
override {
56 sc_core::sc_attr_base *
attr()
const override {
62 sc_core::sc_object *obj = sc_core::sc_find_object(object_name_.c_str());
64 attr_ = obj->get_attribute(attr_name_);
70 set_error_t
set(attr_value_t *val)
override {
72 if (access.set(
attr(), val))
75 return Sim_Set_Illegal_Type;
77 attr_value_t
get()
const override {
79 return access.get(
attr());
83 std::string object_name_;
84 std::string attr_name_;
85 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
sc_core::sc_attr_base * attr() const override
Definition: sc_attribute.h:56
attr_value_t get() const override
Definition: sc_attribute.h:77
sc_core::sc_attr_base * attr() override
Definition: sc_attribute.h:53
Attribute * create() override
Definition: sc_attribute.h:61
int key() const override
Definition: sc_attribute.h:50
set_error_t set(attr_value_t *val) override
Definition: sc_attribute.h:70
void init(sc_core::sc_object *object, sc_core::sc_attr_base *attr) override
Definition: sc_attribute.h:44
ScAttribute(int key)
Definition: sc_attribute.h:42