19 #ifndef __SYSTEMC_EXT_TLM_UTILS_INSTANCE_SPECIFIC_EXTENSIONS_INT_H__
20 #define __SYSTEMC_EXT_TLM_UTILS_INSTANCE_SPECIFIC_EXTENSIONS_INT_H__
25 #include "../tlm_core/2/generic_payload/array.hh"
31 class instance_specific_extension_accessor;
32 class instance_specific_extension_container;
33 class instance_specific_extension_carrier;
34 class instance_specific_extension_container_pool;
41 extern template class tlm_array<tlm_utils::ispex_base *>;
59 static unsigned int register_private_extension(
const std::type_info &);
76 m_container(container)
83 return static_cast<T *
>(set_extension(T::priv_id,
ext));
93 ext =
static_cast<T *
>(get_extension(T::priv_id));
102 clear_extension(T::priv_id);
106 void clear_extension(
unsigned int index);
113 void resize_extensions();
139 void inc_use_count();
140 void dec_use_count();
147 get_accessor(
unsigned int index);
172 template <
typename T>
177 static void release_carrier(