16#ifndef SIMICS_SYSTEMC_AWARENESS_PROXY_H
17#define SIMICS_SYSTEMC_AWARENESS_PROXY_H
19#include <simics/cc-api.h>
31#include <unordered_map>
43 explicit Proxy(simics::ConfObjectRef o);
45 void init(sc_core::sc_object *obj,
59 std::vector<std::string>
sc_print()
const override;
60 std::vector<std::string>
sc_dump()
const override;
68 return dynamic_cast<T *
> (
feature(ClassType::typeForClass<T>()));
70 static attr_value_t
getAttribute(lang_void *ptr, conf_object_t *obj,
72 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_;
88 static std::unordered_map<sc_core::sc_event *, ScEventObject *> sc_events_;
89 static std::unordered_map<sc_core::sc_interface *, ProxyInterface *>
91 std::map<ClassType, ProxyFeatureInterface *> features_;
Definition: class_type.h:25
Interface to the SystemC simulation.
Definition: simulation_interface_proxy.h:27
Definition: attributes.h:28
Definition: proxy_feature_interface.h:28
Definition: proxy_interface.h:29
virtual void set_attributes(Attributes *attributes)
sc_core::sc_object * systemc_obj() override
sc_core::sc_interface * iface_
Definition: proxy.h:82
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:81
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:67
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:27
Definition: sc_object_interface.h:29
Interface to the SystemC simulation.
Definition: simulation_interface.h:27