16#ifndef SIMICS_SYSTEMC_INTERFACE_PROVIDER_H
17#define SIMICS_SYSTEMC_INTERFACE_PROVIDER_H
19#include <simics/conf-object.h>
39 ConfObjectRef new_target) = 0;
59 for (std::set<TargetUpdateListener*>::iterator it
81 virtual const simics::ConfObjectRef &
target()
const {
93 template<
typename TInterface>
95 interface_t *iface =
const_cast<interface_t *
>(
get_interface());
97 static_cast<TInterface*
>(iface));
127 const char *interface_name)
149 ConfObjectRef new_target) {
Definition: interface_provider.h:124
~InterfaceProviderAddOn()
Definition: interface_provider.h:132
virtual void set_target(const ConfObjectRef &obj)
Definition: interface_provider.h:136
virtual void update_target(ConfObjectRef old_target, ConfObjectRef new_target)
Definition: interface_provider.h:148
InterfaceProviderAddOn(InterfaceProvider *parent, const char *interface_name)
Definition: interface_provider.h:126
virtual bool optional() const
Definition: interface_provider.h:143
virtual void set_optional(bool optional)
Definition: interface_provider.h:140
InterfaceProvider * parent_
Definition: interface_provider.h:153
Definition: interface_provider.h:34
virtual ~TargetUpdateListener()
Definition: interface_provider.h:36
virtual void update_target(ConfObjectRef old_target, ConfObjectRef new_target)=0
Returns the interface provided by the associated Simics object.
Definition: interface_provider.h:32
simics::ConfObjectRef target_obj_
Definition: interface_provider.h:116
InterfaceProvider & operator=(const InterfaceProvider &)=delete
bool optional_
Definition: interface_provider.h:119
virtual bool optional() const
Definition: interface_provider.h:103
virtual void set_optional(bool optional)
Definition: interface_provider.h:100
std::set< TargetUpdateListener * > * target_update_listeners_
Definition: interface_provider.h:120
const char * interface_name_
Definition: interface_provider.h:118
virtual const char * get_interface_name() const
Definition: interface_provider.h:89
virtual ~InterfaceProvider()
Definition: interface_provider.h:48
InterfaceProvider(const InterfaceProvider &)=delete
virtual void set_target(const ConfObjectRef &obj)
Definition: interface_provider.h:58
virtual void add_target_update_listener(TargetUpdateListener *l)
Definition: interface_provider.h:68
virtual void remove_target_update_listener(TargetUpdateListener *l)
Definition: interface_provider.h:74
SimicsTargetLock< TInterface > get_interface()
Definition: interface_provider.h:94
InterfaceProvider(const char *interface_name)
Definition: interface_provider.h:42
virtual bool has_interface()
Definition: interface_provider.h:85
virtual const interface_t * get_interface()
Definition: interface_provider.h:108
virtual const simics::ConfObjectRef & target() const
Definition: interface_provider.h:81
const interface_t * interface_
Definition: interface_provider.h:117
Definition: simics_target_lock.h:27
Definition: pci_bus_interface.h:24