14#ifndef SIMICS_SYSTEMC_AWARENESS_PROXY_H
15#define SIMICS_SYSTEMC_AWARENESS_PROXY_H
17#include <simics/cc-api.h>
29#include <unordered_map>
41 explicit Proxy(simics::ConfObjectRef o);
43 void init(sc_core::sc_object *obj,
57 std::vector<std::string>
sc_print()
const override;
58 std::vector<std::string>
sc_dump()
const override;
66 return dynamic_cast<T *
> (
feature(ClassType::typeForClass<T>()));
68 static attr_value_t
getAttribute(lang_void *ptr, conf_object_t *obj,
70 static set_error_t
setAttribute(lang_void *ptr, conf_object_t *obj,
86 std::vector<ScEventObject *> events_;
87 static std::unordered_map<sc_core::sc_object *, ProxyInterface *> proxies_;
91 static std::unordered_map<sc_core::sc_event *, ScEventObject *> sc_events_;
92 static std::unordered_map<sc_core::sc_interface *, ProxyInterface *>
94 std::map<ClassType, ProxyFeatureInterface *> features_;
Definition: class_type.h:23
Interface to the SystemC simulation.
Definition: simulation_interface_proxy.h:25
Definition: attributes.h:26
Definition: proxy_feature_interface.h:26
Definition: proxy_interface.h:27
virtual void set_attributes(Attributes *attributes)
sc_core::sc_object * systemc_obj() override
sc_core::sc_interface * iface_
Definition: proxy.h:80
std::vector< std::string > sc_dump() const override
void simulationStarted() override
ProxyFeatureInterface * feature(ClassType type) override
attr_value_t sc_kind() const override
virtual void resizeExtensions(tlm::tlm_generic_payload *payload) const
void buildEventObjects() override
static ScEventObject * findScEventObject(sc_core::sc_event *event)
sc_core::sc_object * object_
Definition: proxy.h:79
static set_error_t setAttribute(lang_void *ptr, conf_object_t *obj, attr_value_t *val, attr_value_t *idx)
void init(sc_core::sc_object *obj, iface::SimulationInterface *simulation) override
static ProxyInterface * findProxy(sc_core::sc_interface *iface)
void breakSimulation() override
ConfObjectRef simics_obj() override
const char * sc_name() const override
void simulationEnded() override
Proxy(simics::ConfObjectRef o)
static ProxyInterface * findProxy(sc_core::sc_object *obj)
void allProxiesInitialized() override
std::vector< std::string > sc_print() const override
void addFeature(ProxyFeatureInterface *feature) override
T * feature()
Definition: proxy.h:65
static attr_value_t getAttribute(lang_void *ptr, conf_object_t *obj, attr_value_t *idx)
iface::SimulationInterface * simulation() override
Definition: sc_event_object.h:25
Definition: sc_object_interface.h:27
Interface to the SystemC simulation.
Definition: simulation_interface.h:25