libxr 1.0
Want to be the best embedded framework
|
WritePort class for handling write operations. More...
#include <libxr_rw.hpp>
Data Structures | |
struct | WriteInfo |
Public Member Functions | |
WritePort (size_t queue_size=3, size_t block_size=128) | |
构造一个新的 WritePort 对象。 Constructs a new WritePort object. | |
size_t | EmptySize () |
获取数据队列的剩余可用空间。 Gets the remaining available space in the data queue. | |
size_t | Size () |
获取当前数据队列的已使用大小。 Gets the used size of the current data queue. | |
bool | Writable () |
判断端口是否可写。 Checks whether the port is writable. | |
WritePort & | operator= (WriteFun fun) |
赋值运算符重载,用于设置写入函数。 Overloaded assignment operator to set the write function. | |
void | UpdateStatus (bool in_isr, ErrorCode ans, WriteOperation &op, uint32_t size) |
更新写入操作的状态。 Updates the status of the write operation. | |
void | UpdateStatus (WriteOperation &op) |
标记写入操作为运行中。 Marks the write operation as running. | |
ErrorCode | operator() (ConstRawData data, WriteOperation &op) |
执行写入操作。 Performs a write operation. | |
void | Reset () |
Resets the WritePort. | |
Data Fields | |
WriteFun | write_fun_ = nullptr |
LockFreeQueue< WriteInfo > * | queue_info_ |
LockFreeQueue< uint8_t > * | queue_data_ |
Mutex | mutex_ |
size_t | write_size_ = 0 |
WritePort class for handling write operations.
处理写入操作的WritePort类。
Definition at line 502 of file libxr_rw.hpp.
构造一个新的 WritePort 对象。 Constructs a new WritePort object.
该构造函数初始化无锁操作队列 queue_info_
和数据块队列 queue_data_
。 This constructor initializes the lock-free operation queue queue_info_
and the data block queue queue_data_
.
queue_size | 队列的大小,默认为 3。 The size of the queue, default is 3. |
block_size | 缓存的数据的最大大小,默认为 128。 The maximum size of cached data, default is 128. |
Definition at line 529 of file libxr_rw.hpp.
|
inline |
获取数据队列的剩余可用空间。 Gets the remaining available space in the data queue.
Definition at line 542 of file libxr_rw.hpp.
|
inline |
执行写入操作。 Performs a write operation.
该函数检查端口是否可写,并根据 data.size_
和 op
的类型执行不同的操作。 This function checks if the port is writable and performs different actions based on data.size_
and the type of op
.
data | 需要写入的原始数据。 Raw data to be written. |
op | 写入操作对象,包含操作类型和同步机制。 Write operation object containing the operation type and synchronization mechanism. |
ErrorCode
,指示操作结果。 Returns an ErrorCode
indicating the result of the operation. Definition at line 632 of file libxr_rw.hpp.
赋值运算符重载,用于设置写入函数。 Overloaded assignment operator to set the write function.
该函数允许使用 WriteFun
类型的函数对象赋值给 WritePort
,从而设置 write_fun_
。 This function allows assigning a WriteFun
function object to WritePort
, setting write_fun_
.
fun | 要分配的写入函数。 The write function to be assigned. |
Definition at line 575 of file libxr_rw.hpp.
|
inline |
Resets the WritePort.
重置WritePort。
Definition at line 677 of file libxr_rw.hpp.
|
inline |
获取当前数据队列的已使用大小。 Gets the used size of the current data queue.
Definition at line 551 of file libxr_rw.hpp.
|
inline |
更新写入操作的状态。 Updates the status of the write operation.
该函数在写入操作过程中更新 write_size_
并调用 UpdateStatus
方法更新 op
的状态。 This function updates write_size_
and calls UpdateStatus
on op
during a write operation.
in_isr | 指示是否在中断上下文中执行。 Indicates whether the operation is executed in an interrupt context. |
ans | 错误码,用于指示操作的结果。 Error code indicating the result of the operation. |
op | 需要更新状态的 WriteOperation 引用。 Reference to the WriteOperation whose status needs to be updated. |
size | 写入的数据大小。 The size of the written data. |
Definition at line 598 of file libxr_rw.hpp.
|
inline |
标记写入操作为运行中。 Marks the write operation as running.
该函数用于将 op
标记为运行状态,以指示当前正在进行写入操作。 This function marks op
as running to indicate an ongoing write operation.
op | 需要更新状态的 WriteOperation 引用。 Reference to the WriteOperation whose status needs to be updated. |
Definition at line 614 of file libxr_rw.hpp.
|
inline |
判断端口是否可写。 Checks whether the port is writable.
write_fun_
不为空,则返回 true
,否则返回 false
。 Returns true
if write_fun_
is not null, otherwise returns false
. Definition at line 560 of file libxr_rw.hpp.
Mutex LibXR::WritePort::mutex_ |
Definition at line 513 of file libxr_rw.hpp.
LockFreeQueue<uint8_t>* LibXR::WritePort::queue_data_ |
Definition at line 512 of file libxr_rw.hpp.
LockFreeQueue<WriteInfo>* LibXR::WritePort::queue_info_ |
Definition at line 511 of file libxr_rw.hpp.
Definition at line 510 of file libxr_rw.hpp.
size_t LibXR::WritePort::write_size_ = 0 |
Definition at line 514 of file libxr_rw.hpp.