47 #ifndef __SYSTEMC_EXT_TLM_UTILS_INSTANCE_SPECIFIC_EXTENSIONS_H__
48 #define __SYSTEMC_EXT_TLM_UTILS_INSTANCE_SPECIFIC_EXTENSIONS_H__
100 template <
typename T>
105 txn.get_extension(carrier);
110 carrier, &txn, &release_carrier<T>);
111 txn.set_extension(carrier);
116 template <
typename T>
121 T *typed_txn =
static_cast<T *
>(txn);
122 typed_txn->clear_extension(carrier);
instance_specific_extensions_per_accessor & operator()(T &txn)
static void release_carrier(instance_specific_extension_carrier *, void *txn)
virtual tlm::tlm_extension_base * clone() const
instance_specific_extension_container * m_container
instance_specific_extension_carrier()
void copy_from(tlm::tlm_extension_base const &)
void attach_carrier(instance_specific_extension_carrier *, void *txn, release_fn *)
instance_specific_extensions_per_accessor * get_accessor(unsigned int index)
static instance_specific_extension_container * create()
static const unsigned int priv_id
virtual ~instance_specific_extension()
static unsigned int register_private_extension(const std::type_info &)