17#ifndef TLM_RECORDER_REGISTRY_H_
18#define TLM_RECORDER_REGISTRY_H_
28#define SCVNS ::scv_tr::
51 virtual void recordBeginTx(SCVNS scv_tr_handle& handle,
typename TYPES::tlm_payload_type& trans) = 0;
57 virtual void recordEndTx(SCVNS scv_tr_handle& handle,
typename TYPES::tlm_payload_type& trans) = 0;
68template <
typename TYPES = tlm::tlm_base_protocol_types>
class tlm_extension_recording_registry {
70 static tlm_extension_recording_registry& inst() {
71 static tlm_extension_recording_registry reg;
78 if(
id >= ext_rec.size())
79 ext_rec.resize(
id + 1);
85 bool is_ext_registered(
size_t id) {
88 if(
id >= ext_rec.size())
94 const std::vector<tlm_extensions_recording_if<TYPES>*>& get() {
return ext_rec; }
96 inline void recordBeginTx(
size_t id, SCVNS scv_tr_handle& handle,
typename TYPES::tlm_payload_type& trans) {
97 if(ext_rec.size() >
id && ext_rec[
id])
105 inline void recordEndTx(
size_t id, SCVNS scv_tr_handle& handle,
typename TYPES::tlm_payload_type& trans) {
106 if(ext_rec.size() >
id && ext_rec[
id])
107 ext_rec[id]->recordEndTx(handle, trans);
113 for(
auto& ext : ext_rec)
116 std::vector<tlm_extensions_recording_if<TYPES>*> ext_rec{};
The TLM transaction extensions recorder registry.
void recordEndTx(size_t id, SCVNS scv_tr_handle &handle, typename TYPES::tlm_payload_type &trans)
recording attributes in extensions at the end, it is intended to be overload as it does nothing
The TLM transaction extensions recorder interface.
virtual void recordEndTx(SCVNS scv_tr_handle &handle, typename TYPES::tlm_payload_type &trans)=0
recording attributes in extensions at the end, it is intended to be overload as it does nothing
virtual void recordBeginTx(SCVNS scv_tr_handle &handle, typename TYPES::tlm_payload_type &trans)=0
recording attributes in extensions at the beginning, it is intended to be overload as it does nothing
SCC SCV4TLM classes and functions.