19#ifndef __SYSTEMC_EXT_TLM_UTILS_INSTANCE_SPECIFIC_EXTENSIONS_INT_H__
20#define __SYSTEMC_EXT_TLM_UTILS_INSTANCE_SPECIFIC_EXTENSIONS_INT_H__
41extern template class tlm_array<tlm_utils::ispex_base *>;
59 static unsigned int register_private_extension(
const std::type_info &);
96 ispex_base *get_extension(
unsigned int index)
const;
106 void clear_extension(
unsigned int index);
113 void resize_extensions();
172 template <
typename T>
instance_specific_extension_accessor()
static void release_carrier(instance_specific_extension_carrier *, void *txn)
std::vector< instance_specific_extensions_per_accessor * > m_ispex_per_accessor
void attach_carrier(instance_specific_extension_carrier *, void *txn, release_fn *)
void release_fn(instance_specific_extension_carrier *, void *)
instance_specific_extension_carrier * m_carrier
instance_specific_extensions_per_accessor * get_accessor(unsigned int index)
friend class instance_specific_extension_container_pool
instance_specific_extension_container * next
release_fn * m_release_fn
friend class instance_specific_extensions_per_accessor
friend class instance_specific_extension_accessor
instance_specific_extension_container()
static instance_specific_extension_container * create()
friend class instance_specific_extension_carrier
container_type * m_container
void clear_extension(const T *)
instance_specific_extensions_per_accessor(container_type *container)
tlm::tlm_array< ispex_base * > m_extensions
T * set_extension(T *ext)
void get_extension(T *&ext) const
instance_specific_extension_container container_type