|
|
AsyncFileWriter (EventLoop& e, XorpFd fd, uint32_t coalesce = 1,
int priority = XorpTask::PRIORITY_DEFAULT)
| AsyncFileWriter |
Parameters:
e | EventLoop that object should associate itself with. |
fd | a file descriptor marked as non-blocking to write to. |
coalesce | the number of buffers to coalesce for each write() system call. |
~AsyncFileWriter ()
| ~AsyncFileWriter |
void add_buffer (const uint8_t* buffer,
size_t buffer_bytes,
const Callback& cb)
| add_buffer |
Add an additional buffer for writing from.
Note that the buffer with the data is managed by the user.
Parameters:
buffer | pointer to buffer. |
buffer_bytes | size of buffer in bytes. |
cb | Callback object to invoke when I/O is performed. |
void add_buffer_sendto (const uint8_t* buffer,
size_t buffer_bytes,
const IPvX& dst_addr,
uint16_t dst_port,
const Callback& cb)
| add_buffer_sendto |
Add an additional buffer for writing from by using sendto(2).
Note that sendto()-buffers are never coalesced with other buffers.
Parameters:
buffer | pointer to buffer. |
buffer_bytes | size of buffer in bytes. |
dst_addr | the destination address to send the data to. |
dst_port | the destination port (in host order) to send the data to. |
cb | Callback object to invoke when I/O is performed. |
void add_buffer_with_offset (const uint8_t* buffer,
size_t buffer_bytes,
size_t offset,
const Callback& cb)
| add_buffer_with_offset |
Add an additional buffer for writing from.
Parameters:
buffer | pointer to buffer. |
buffer_bytes | size of buffer in bytes. |
offset | the starting point to write from in the buffer. |
cb | Callback object to invoke when I/O is performed. |
void add_data (const vector<uint8_t>& data,
const Callback& cb)
| add_data |
Add additional data for writing from.
Note that the data is stored to write is stored internally by AsyncFileWriter.
Parameters:
data | the data to write. |
cb | Callback object to invoke when I/O is performed. |
void add_data_sendto (const vector<uint8_t>& data,
const IPvX& dst_addr,
uint16_t dst_port,
const Callback& cb)
| add_data_sendto |
Add additional data for writing from by using sendto(2).
Note that the data is stored to write is stored internally by AsyncFileWriter. Note that sendto()-buffers are never coalesced with other buffers.
Parameters:
data | the data to send. |
dst_addr | the destination address to send the data to. |
dst_port | the destination port (in host order) to send the data to. |
cb | Callback object to invoke when I/O is performed. |
bool start ()
| start |
Start asynchronous operation.
Returns: true on success, false if no buffers are available.
Reimplemented from AsyncFileOperator.
void stop ()
| stop |
Stop asynchronous operation.
Reimplemented from AsyncFileOperator.
size_t buffers_remaining ()
| buffers_remaining |
[const]
Returns: the number of buffers available.
Reimplemented from AsyncFileOperator.
void flush_buffers ()
| flush_buffers |
Stop asynchronous operation and clear list of buffers.
Reimplemented from AsyncFileOperator.
BufferInfo (class) | BufferInfo |
[protected]
void write (XorpFd, IoEventType)
| write |
[protected]
void complete_transfer (ssize_t done)
| complete_transfer |
[protected]
uint32_t _coalesce | _coalesce |
[protected]
struct iovec* _iov | _iov |
[protected]
ref_ptr<int> _dtoken | _dtoken |
[protected]
list<BufferInfo *> _buffers | _buffers |
[protected]
void disconnect (XorpFd fd, IoEventType type)
| disconnect |
[protected]
XorpTask _deferred_io_task | _deferred_io_task |
[protected]
bool _disconnect_added | _disconnect_added |
[protected]