19 #ifndef __SYSTEMC_EXT_TLM_UTILS_INSTANCE_SPECIFIC_EXTENSIONS_INT_H__
20 #define __SYSTEMC_EXT_TLM_UTILS_INSTANCE_SPECIFIC_EXTENSIONS_INT_H__
24 #include "../tlm_core/2/generic_payload/array.hh"
30 class instance_specific_extension_accessor;
31 class instance_specific_extension_container;
32 class instance_specific_extension_carrier;
33 class instance_specific_extension_container_pool;
40 extern template class tlm_array<tlm_utils::ispex_base *>;
58 static unsigned int register_private_extension(
const std::type_info &);
75 m_container(container)
82 return static_cast<T *
>(set_extension(T::priv_id,
ext));
92 ext =
static_cast<T *
>(get_extension(T::priv_id));
101 clear_extension(T::priv_id);
105 void clear_extension(
unsigned int index);
112 void resize_extensions();
138 void inc_use_count();
139 void dec_use_count();
146 get_accessor(
unsigned int index);
171 template <
typename T>
176 static void release_carrier(