14#include "libxr_def.hpp"
15#include "libxr_rw.hpp"
38 Pipe(
size_t buffer_size,
bool in_isr =
false)
114 if (port.queue_info_->Pop(info) != ErrorCode::OK)
117 return ErrorCode::EMPTY;
124 return ErrorCode::OK;
基于共享队列,由 ReadPort + WritePort 组成的单向管道。
WritePort & GetWritePort()
获取写入端口。
bool in_isr_
回调是否运行在中断上下文中。 Whether callbacks may run in ISR.
Pipe(size_t buffer_size, bool in_isr=false)
使用指定数据队列容量构造 Pipe。
Pipe & operator=(const Pipe &)=delete
禁止拷贝赋值以避免重复绑定状态。
static ErrorCode WriteFun(WritePort &port)
写端回调:弹出一次写操作并推动读侧处理。
Pipe(const Pipe &)=delete
禁止拷贝以避免重复绑定状态。
static ErrorCode ReadFun(ReadPort &)
读端回调(占位,无具体操作)。
ReadPort & GetReadPort()
获取读取端口。
ReadPort class for handling read operations.
virtual void ProcessPendingReads(bool in_isr)
Processes pending reads.
WritePort class for handling write operations.
ErrorCode(* ReadFun)(ReadPort &port)
Function pointer type for read operations.
ErrorCode(* WriteFun)(WritePort &port)
Function pointer type for write operations.