class AsyncFileWriter

Write asynchronously to non-blocking file. More...

 
LOGO
 Annotated List  Files  Globals  Hierarchy  Index  Top

Public Methods

Protected Types

Protected Methods

Protected Members


Detailed Description

 AsyncFileWriter (EventLoop& e, XorpFd fd, uint32_t coalesce = 1, int priority = XorpTask::PRIORITY_DEFAULT)

AsyncFileWriter

Parameters:

eEventLoop that object should associate itself with.
fda file descriptor marked as non-blocking to write to.
coalescethe 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:

bufferpointer to buffer.
buffer_bytessize of buffer in bytes.
cbCallback 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:

bufferpointer to buffer.
buffer_bytessize of buffer in bytes.
dst_addrthe destination address to send the data to.
dst_portthe destination port (in host order) to send the data to.
cbCallback 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:

bufferpointer to buffer.
buffer_bytessize of buffer in bytes.
offsetthe starting point to write from in the buffer.
cbCallback 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:

datathe data to write.
cbCallback 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:

datathe data to send.
dst_addrthe destination address to send the data to.
dst_portthe destination port (in host order) to send the data to.
cbCallback 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]


Generated by: pavlin on kobe.xorp.net on Wed Jan 7 19:10:36 2009, using kdoc 2.0a54+XORP.