#include <txrx_worker.h>
|
| 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 ¬ify_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 () |
|
virtual void | DoTxRx ()=0 |
|
size_t | Id () const |
|
bool | Started () const |
|
bool | Running () const |
|
◆ TxRxWorker() [1/2]
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() [2/2]
TxRxWorker::TxRxWorker |
( |
| ) |
|
|
delete |
◆ ~TxRxWorker()
TxRxWorker::~TxRxWorker |
( |
| ) |
|
|
virtual |
◆ Configuration()
Config* TxRxWorker::Configuration |
( |
| ) |
|
|
inlineprotected |
◆ DoTxRx()
virtual void TxRxWorker::DoTxRx |
( |
| ) |
|
|
pure virtual |
◆ GetPendingTxEvents()
std::vector< EventData > TxRxWorker::GetPendingTxEvents |
( |
size_t |
max_events = 0 | ) |
|
|
protected |
◆ GetRxPacket()
◆ GetTxPacket()
Packet * TxRxWorker::GetTxPacket |
( |
size_t |
frame, |
|
|
size_t |
symbol, |
|
|
size_t |
ant |
|
) |
| |
|
protected |
◆ GetUlTxPacket()
Packet * TxRxWorker::GetUlTxPacket |
( |
size_t |
frame, |
|
|
size_t |
symbol, |
|
|
size_t |
ant |
|
) |
| |
|
protected |
◆ Id()
size_t TxRxWorker::Id |
( |
| ) |
const |
|
inline |
◆ NotifyComplete()
bool TxRxWorker::NotifyComplete |
( |
const EventData & |
complete_event | ) |
|
|
protected |
◆ ReturnRxPacket()
void TxRxWorker::ReturnRxPacket |
( |
RxPacket & |
unused_packet | ) |
|
|
protected |
◆ Running()
bool TxRxWorker::Running |
( |
| ) |
const |
|
inline |
◆ Start()
void TxRxWorker::Start |
( |
| ) |
|
|
virtual |
◆ Started()
bool TxRxWorker::Started |
( |
| ) |
const |
|
inline |
◆ Stop()
void TxRxWorker::Stop |
( |
| ) |
|
|
virtual |
◆ WaitSync()
void TxRxWorker::WaitSync |
( |
| ) |
|
|
protected |
Using a latch might be better but adds c++20 requirement.
◆ can_proceed_
std::atomic<bool>& TxRxWorker::can_proceed_ |
|
protected |
◆ cfg_
Config* const TxRxWorker::cfg_ |
|
private |
◆ channels_per_interface_
const size_t TxRxWorker::channels_per_interface_ |
|
protected |
◆ cond_
std::condition_variable& TxRxWorker::cond_ |
|
protected |
◆ core_offset_
const size_t TxRxWorker::core_offset_ |
|
protected |
◆ event_notify_q_
◆ interface_offset_
const size_t TxRxWorker::interface_offset_ |
|
protected |
◆ kDebugTxMemory
constexpr bool TxRxWorker::kDebugTxMemory = false |
|
staticconstexpr |
◆ mutex_
std::mutex& TxRxWorker::mutex_ |
|
protected |
Owned by the parent TxRx object for sync.
◆ notify_producer_token_
◆ num_interfaces_
const size_t TxRxWorker::num_interfaces_ |
|
protected |
◆ running_
bool TxRxWorker::running_ |
|
protected |
◆ rx_frame_start_
size_t* const TxRxWorker::rx_frame_start_ |
|
protected |
◆ rx_memory_
std::vector<RxPacket>& TxRxWorker::rx_memory_ |
|
private |
◆ rx_memory_idx_
size_t TxRxWorker::rx_memory_idx_ |
|
private |
◆ started_
bool TxRxWorker::started_ |
|
private |
◆ thread_
std::thread TxRxWorker::thread_ |
|
private |
◆ tid_
const size_t TxRxWorker::tid_ |
|
protected |
◆ tx_memory_
std::byte* const TxRxWorker::tx_memory_ |
|
private |
◆ tx_pending_q_
◆ tx_producer_token_
The documentation for this class was generated from the following files: