48 #ifndef TLM_UTILS_INSTANCE_SPECIFIC_EXTENSIONS_H_INCLUDED_ 49 #define TLM_UTILS_INSTANCE_SPECIFIC_EXTENSIONS_H_INCLUDED_ 102 txn.get_extension(carrier);
105 carrier->m_container = instance_specific_extension_container::create();
106 carrier->m_container->attach_carrier(carrier, &txn, &release_carrier<T>);
107 txn.set_extension(carrier);
109 return *carrier->m_container->get_accessor(m_index);
117 T* typed_txn =
static_cast<T*
>(txn);
118 typed_txn->clear_extension(carrier);
124 #endif // TLM_UTILS_INSTANCE_SPECIFIC_EXTENSIONS_H_INCLUDED_
void copy_from(tlm::tlm_extension_base const &)
instance_specific_extension_carrier()
virtual ~instance_specific_extension()
instance_specific_extensions_per_accessor & operator()(T &txn)
static const unsigned int priv_id
static void release_carrier(instance_specific_extension_carrier *, void *txn)
virtual tlm::tlm_extension_base * clone() const
static unsigned int register_private_extension(const std::type_info &)