12#ifndef _GS_LOOP_BACK_BACKEND_H_
13#define _GS_LOOP_BACK_BACKEND_H_
17#include <tlm_utils/simple_target_socket.h>
19#include <ports/biflow-socket.h>
20#include <module_factory_registery.h>
22#include <scp/report.h>
34 loop_back_backend(sc_core::sc_module_name name): sc_core::sc_module(name), socket(
"biflow_socket")
42 void b_transport(tlm::tlm_generic_payload&
txn, sc_core::sc_time&
t)
46 for (
unsigned int i = 0;
i <
txn.get_streaming_width();
i++) {
47 socket.
enqueue(
static_cast<unsigned char>(data[
i]));
48 SCP_DEBUG(())(
"loop_back_backend: sending {}",
static_cast<char>(data[
i]));
54extern "C" void module_register();
Definition biflow-socket.h:73
void can_receive_any()
can_receive_any Allow unlimited items to arrive.
Definition biflow-socket.h:264
void enqueue(T data)
enqueue Enqueue data to be sent (unlimited queue size) NOTE: Thread safe.
Definition biflow-socket.h:277
void register_b_transport(MODULE *mod, void(MODULE::*cb)(tlm::tlm_generic_payload &, sc_core::sc_time &))
Register b_transport to be called whenever data is received from the socket.
Definition biflow-socket.h:227
Definition loop_back_backend.h:24