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;
78 if(
id >= ext_rec.size())
79 ext_rec.resize(
id + 1);
85 const std::vector<tlm_extensions_recording_if<TYPES>*>& get() {
return ext_rec; }
87 inline void recordBeginTx(
size_t id, SCVNS scv_tr_handle& handle,
typename TYPES::tlm_payload_type& trans) {
88 if(ext_rec.size() >
id && ext_rec[
id])
89 ext_rec[id]->recordBeginTx(handle, trans);
96 inline void recordEndTx(
size_t id, SCVNS scv_tr_handle& handle,
typename TYPES::tlm_payload_type& trans) {
97 if(ext_rec.size() >
id && ext_rec[
id])
98 ext_rec[id]->recordEndTx(handle, trans);
104 for(
auto& ext : ext_rec)
107 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