Agora  1.2.0
Agora project
TxRxWorkerSim Class Reference

#include <txrx_worker_sim.h>

Inheritance diagram for TxRxWorkerSim:
Collaboration diagram for TxRxWorkerSim:

Public Member Functions

 TxRxWorkerSim (size_t core_offset, size_t tid, size_t interface_count, size_t interface_offset, Config *const config, size_t *rx_frame_start, moodycamel::ConcurrentQueue< EventData > *event_notify_q, moodycamel::ConcurrentQueue< EventData > *tx_pending_q, moodycamel::ProducerToken &tx_producer, moodycamel::ProducerToken &notify_producer, std::vector< RxPacket > &rx_memory, std::byte *const tx_memory, std::mutex &sync_mutex, std::condition_variable &sync_cond, std::atomic< bool > &can_proceed)
 
 TxRxWorkerSim ()=delete
 
 ~TxRxWorkerSim () final
 
void DoTxRx () final
 
- Public Member Functions inherited from TxRxWorker
 TxRxWorker (size_t core_offset, size_t tid, size_t interface_count, size_t interface_offset, size_t channels_per_interface, Config *const config, size_t *rx_frame_start, moodycamel::ConcurrentQueue< EventData > *event_notify_q, moodycamel::ConcurrentQueue< EventData > *tx_pending_q, moodycamel::ProducerToken &tx_producer, moodycamel::ProducerToken &notify_producer, std::vector< RxPacket > &rx_memory, std::byte *const tx_memory, std::mutex &sync_mutex, std::condition_variable &sync_cond, std::atomic< bool > &can_proceed)
 
 TxRxWorker ()=delete
 
virtual ~TxRxWorker ()
 
virtual void Start ()
 
virtual void Stop ()
 
size_t Id () const
 
bool Started () const
 
bool Running () const
 

Private Member Functions

size_t DequeueSend ()
 
void SendBeacon (size_t frame_id)
 
std::vector< Packet * > RecvEnqueue (size_t interface_id)
 

Private Attributes

std::vector< std::unique_ptr< UDPComm > > udp_comm_
 
std::vector< std::byte > beacon_buffer_
 
double beacon_send_time_
 

Additional Inherited Members

- Static Public Attributes inherited from TxRxWorker
static constexpr bool kDebugTxMemory = false
 
- Protected Member Functions inherited from TxRxWorker
void WaitSync ()
 Using a latch might be better but adds c++20 requirement. More...
 
ConfigConfiguration ()
 
bool NotifyComplete (const EventData &complete_event)
 
std::vector< EventDataGetPendingTxEvents (size_t max_events=0)
 
RxPacketGetRxPacket ()
 
void ReturnRxPacket (RxPacket &unused_packet)
 
PacketGetTxPacket (size_t frame, size_t symbol, size_t ant)
 
PacketGetUlTxPacket (size_t frame, size_t symbol, size_t ant)
 
- Protected Attributes inherited from TxRxWorker
const size_t tid_
 
const size_t core_offset_
 
const size_t num_interfaces_
 
const size_t interface_offset_
 
const size_t channels_per_interface_
 
size_t *const rx_frame_start_
 
bool running_
 
std::mutex & mutex_
 Owned by the parent TxRx object for sync. More...
 
std::condition_variable & cond_
 
std::atomic< bool > & can_proceed_
 

Constructor & Destructor Documentation

◆ TxRxWorkerSim() [1/2]

TxRxWorkerSim::TxRxWorkerSim ( size_t  core_offset,
size_t  tid,
size_t  interface_count,
size_t  interface_offset,
Config *const  config,
size_t *  rx_frame_start,
moodycamel::ConcurrentQueue< EventData > *  event_notify_q,
moodycamel::ConcurrentQueue< EventData > *  tx_pending_q,
moodycamel::ProducerToken tx_producer,
moodycamel::ProducerToken notify_producer,
std::vector< RxPacket > &  rx_memory,
std::byte *const  tx_memory,
std::mutex &  sync_mutex,
std::condition_variable &  sync_cond,
std::atomic< bool > &  can_proceed 
)
Here is the call graph for this function:

◆ TxRxWorkerSim() [2/2]

TxRxWorkerSim::TxRxWorkerSim ( )
delete

◆ ~TxRxWorkerSim()

TxRxWorkerSim::~TxRxWorkerSim ( )
finaldefault

Member Function Documentation

◆ DequeueSend()

size_t TxRxWorkerSim::DequeueSend ( )
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ DoTxRx()

void TxRxWorkerSim::DoTxRx ( )
finalvirtual

Implements TxRxWorker.

Here is the call graph for this function:

◆ RecvEnqueue()

std::vector< Packet * > TxRxWorkerSim::RecvEnqueue ( size_t  interface_id)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ SendBeacon()

void TxRxWorkerSim::SendBeacon ( size_t  frame_id)
private
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ beacon_buffer_

std::vector<std::byte> TxRxWorkerSim::beacon_buffer_
private

◆ beacon_send_time_

double TxRxWorkerSim::beacon_send_time_
private

◆ udp_comm_

std::vector<std::unique_ptr<UDPComm> > TxRxWorkerSim::udp_comm_
private

The documentation for this class was generated from the following files: