14#ifndef SIMICS_SYSTEMC_INTERFACE_PROVIDER_H
15#define SIMICS_SYSTEMC_INTERFACE_PROVIDER_H
17#include <simics/conf-object.h>
37 ConfObjectRef new_target) = 0;
57 for (std::set<TargetUpdateListener*>::iterator it
79 virtual const simics::ConfObjectRef &
target()
const {
91 template<
typename TInterface>
93 interface_t *iface =
const_cast<interface_t *
>(
get_interface());
95 static_cast<TInterface*
>(iface));
125 const char *interface_name)
147 ConfObjectRef new_target)
override {
Definition: interface_provider.h:122
~InterfaceProviderAddOn()
Definition: interface_provider.h:130
void set_target(const ConfObjectRef &obj) override
Definition: interface_provider.h:134
void set_optional(bool optional) override
Definition: interface_provider.h:138
void update_target(ConfObjectRef old_target, ConfObjectRef new_target) override
Definition: interface_provider.h:146
InterfaceProviderAddOn(InterfaceProvider *parent, const char *interface_name)
Definition: interface_provider.h:124
bool optional() const override
Definition: interface_provider.h:141
InterfaceProvider * parent_
Definition: interface_provider.h:151
Definition: interface_provider.h:32
virtual ~TargetUpdateListener()
Definition: interface_provider.h:34
virtual void update_target(ConfObjectRef old_target, ConfObjectRef new_target)=0
Returns the interface provided by the associated Simics object.
Definition: interface_provider.h:30
simics::ConfObjectRef target_obj_
Definition: interface_provider.h:114
InterfaceProvider & operator=(const InterfaceProvider &)=delete
bool optional_
Definition: interface_provider.h:117
virtual bool optional() const
Definition: interface_provider.h:101
virtual void set_optional(bool optional)
Definition: interface_provider.h:98
std::set< TargetUpdateListener * > * target_update_listeners_
Definition: interface_provider.h:118
const char * interface_name_
Definition: interface_provider.h:116
virtual const char * get_interface_name() const
Definition: interface_provider.h:87
virtual ~InterfaceProvider()
Definition: interface_provider.h:46
InterfaceProvider(const InterfaceProvider &)=delete
virtual void set_target(const ConfObjectRef &obj)
Definition: interface_provider.h:56
virtual void add_target_update_listener(TargetUpdateListener *l)
Definition: interface_provider.h:66
virtual void remove_target_update_listener(TargetUpdateListener *l)
Definition: interface_provider.h:72
SimicsTargetLock< TInterface > get_interface()
Definition: interface_provider.h:92
InterfaceProvider(const char *interface_name)
Definition: interface_provider.h:40
virtual bool has_interface()
Definition: interface_provider.h:83
virtual const interface_t * get_interface()
Definition: interface_provider.h:106
virtual const simics::ConfObjectRef & target() const
Definition: interface_provider.h:79
const interface_t * interface_
Definition: interface_provider.h:115
Definition: simics_target_lock.h:25