|
Document of c-modernization-kit (porter) 1.0.0
|
非同期送信キュー。 More...
#include <potrSendQueue.h>
Data Fields | |
| PotrPayloadElem * | entries |
| ペイロードエレメントバッファ (動的確保。depth 要素)。 | |
| uint8_t * | payload_pool |
| ペイロードプール (動的確保。depth × max_payload バイト)。 | |
| size_t | depth |
| キュー容量 (エントリ数)。 | |
| size_t | head |
| 読み出し位置 (送信スレッドが使用)。 | |
| size_t | tail |
| 書き込み位置 (potrSend 呼び出し元が使用)。 | |
| size_t | count |
| キュー内エントリ数。 | |
| size_t | inflight |
| sendto 実行中エントリ数。 | |
| PotrMutex | mutex |
| 排他制御。 | |
| PotrCondVar | not_empty |
| count > 0 になったことを通知する条件変数。 | |
| PotrCondVar | not_full |
| count + inflight < depth になったことを通知する条件変数。 | |
| PotrCondVar | drained |
| count == 0 && inflight == 0 を通知する条件変数。 | |
非同期送信キュー。
リングバッファとミューテックス・条件変数により、 potrSend 呼び出し元スレッドと送信スレッドの間でスレッドセーフに ペイロードエレメント (メッセージのフラグメント) を受け渡します。
Definition at line 71 of file potrSendQueue.h.
| PotrPayloadElem* PotrSendQueue::entries |
ペイロードエレメントバッファ (動的確保。depth 要素)。
Definition at line 73 of file potrSendQueue.h.
Referenced by potr_send_queue_destroy(), potr_send_queue_init(), potr_send_queue_peek(), potr_send_queue_peek_timed(), potr_send_queue_pop(), potr_send_queue_push(), potr_send_queue_push_wait(), and potr_send_queue_try_pop().
| uint8_t* PotrSendQueue::payload_pool |
ペイロードプール (動的確保。depth × max_payload バイト)。
Definition at line 74 of file potrSendQueue.h.
Referenced by potr_send_queue_destroy(), and potr_send_queue_init().
| size_t PotrSendQueue::depth |
キュー容量 (エントリ数)。
Definition at line 75 of file potrSendQueue.h.
Referenced by potr_send_queue_init(), potr_send_queue_pop(), potr_send_queue_push(), potr_send_queue_push_wait(), potr_send_queue_try_pop(), and reset_send_queue().
| size_t PotrSendQueue::head |
読み出し位置 (送信スレッドが使用)。
Definition at line 76 of file potrSendQueue.h.
Referenced by potr_send_queue_peek(), potr_send_queue_peek_timed(), potr_send_queue_pop(), and potr_send_queue_try_pop().
| size_t PotrSendQueue::tail |
書き込み位置 (potrSend 呼び出し元が使用)。
Definition at line 77 of file potrSendQueue.h.
Referenced by potr_send_queue_push(), and potr_send_queue_push_wait().
| size_t PotrSendQueue::count |
キュー内エントリ数。
Definition at line 78 of file potrSendQueue.h.
Referenced by potr_send_queue_complete(), potr_send_queue_peek(), potr_send_queue_peek_timed(), potr_send_queue_pop(), potr_send_queue_push(), potr_send_queue_push_wait(), potr_send_queue_try_pop(), and potr_send_queue_wait_drained().
| size_t PotrSendQueue::inflight |
sendto 実行中エントリ数。
Definition at line 79 of file potrSendQueue.h.
Referenced by potr_send_queue_complete(), potr_send_queue_pop(), potr_send_queue_push(), potr_send_queue_push_wait(), potr_send_queue_try_pop(), and potr_send_queue_wait_drained().
| PotrMutex PotrSendQueue::mutex |
排他制御。
Definition at line 80 of file potrSendQueue.h.
Referenced by potr_send_queue_complete(), potr_send_queue_destroy(), potr_send_queue_init(), potr_send_queue_peek(), potr_send_queue_peek_timed(), potr_send_queue_pop(), potr_send_queue_push(), potr_send_queue_push_wait(), potr_send_queue_shutdown(), potr_send_queue_try_pop(), and potr_send_queue_wait_drained().
| PotrCondVar PotrSendQueue::not_empty |
count > 0 になったことを通知する条件変数。
Definition at line 81 of file potrSendQueue.h.
Referenced by potr_send_queue_destroy(), potr_send_queue_init(), potr_send_queue_peek_timed(), potr_send_queue_pop(), potr_send_queue_push(), potr_send_queue_push_wait(), and potr_send_queue_shutdown().
| PotrCondVar PotrSendQueue::not_full |
count + inflight < depth になったことを通知する条件変数。
Definition at line 82 of file potrSendQueue.h.
Referenced by potr_send_queue_complete(), potr_send_queue_destroy(), potr_send_queue_init(), potr_send_queue_push_wait(), and potr_send_queue_shutdown().
| PotrCondVar PotrSendQueue::drained |
count == 0 && inflight == 0 を通知する条件変数。
Definition at line 83 of file potrSendQueue.h.
Referenced by potr_send_queue_complete(), potr_send_queue_destroy(), potr_send_queue_init(), and potr_send_queue_wait_drained().