16#ifndef SIMICS_SYSTEMC_AWARENESS_TLM_SPY_FACTORY_REGISTRY_H
17#define SIMICS_SYSTEMC_AWARENESS_TLM_SPY_FACTORY_REGISTRY_H
31class TlmSpyFactoryRegistry :
public MultiTraverser {
33 TlmSpyFactoryRegistry() {
35 TlmSpyFactoryRegistry(
const TlmSpyFactoryRegistry &r) {
38 TlmSpyFactoryRegistry &operator=(
const TlmSpyFactoryRegistry &r) {
42 virtual ~TlmSpyFactoryRegistry() {
43 std::vector<TraverserInterface *>::iterator i;
44 for (i = traversers_.begin(); i != traversers_.end(); ++i)
47 template <
typename TYPES>
48 void createSpyFactory() {
49 TlmSpyFactory<TYPES> *factory = NULL;
50 std::vector<TraverserInterface *>::iterator i;
51 for (i = traversers_.begin(); i != traversers_.end(); ++i) {
52 factory =
dynamic_cast<TlmSpyFactory<TYPES> *
>(*i);
57 add(
new TlmSpyFactory<TYPES>());
61 TlmSpyFactoryRegistry &deepCopy(
const TlmSpyFactoryRegistry &r) {
65 std::vector<TraverserInterface *>::const_iterator i;
66 for (i = r.traversers_.begin(); i != r.traversers_.end(); ++i) {
67 TlmSpyFactoryInterface *f =
68 dynamic_cast<TlmSpyFactoryInterface *
>(*i);
70 add(f->create()->traverser());
Definition: pci_bus_interface.h:24