libfilezilla
Public Member Functions | List of all members
view_reader Class Referencefinal

#include <reader.hpp>

Inheritance diagram for view_reader:
Inheritance graph
[legend]
Collaboration diagram for view_reader:
Collaboration graph
[legend]

Public Member Functions

 view_reader (std::wstring &&name, aio_buffer_pool &pool, std::string_view data) noexcept
 
virtual bool seekable () const override
 
- Public Member Functions inherited from reader_base
 reader_base (reader_base const &)=delete
 
reader_baseoperator= (reader_base const &)=delete
 
void close ()
 
bool seek (uint64_t offset, uint64_t size=nosize)
 If seek fails, the reader is in an undefined state and must be closed.
 
bool rewind ()
 Only seekable readers can be rewound.
 
std::wstring const & name () const
 
virtual uint64_t size () const
 Size of the reader. If the size is indetermined, nosize is returned.
 
virtual datetime mtime () const
 Last modification time, might be indetermined.
 
std::pair< aio_result, buffer_leaseget_buffer (event_handler &h)
 Gets the next buffer with data from the reader. More...
 
bool error () const
 
- Public Member Functions inherited from aio_waitable
void remove_waiter (event_handler &h)
 
- Public Member Functions inherited from event_handler
 event_handler (event_loop &loop)
 
 event_handler (event_handler const &h)
 
 event_handler (event_handler &h, event_handler_option opt)
 
event_handleroperator= (event_handler const &)=delete
 
void remove_handler ()
 Deactivates handler, removes all pending events and stops all timers for this handler. More...
 
template<typename T , typename... Args>
void send_event (Args &&...args)
 Sends the passed event asynchronously to the handler. More...
 
template<typename T >
void send_event (T *evt)
 
template<typename T >
void send_persistent_event (T *evt)
 Be careful with lifetime.
 
timer_id add_timer (monotonic_clock const &deadline, duration const &interval={})
 Adds a timer, returns the timer id. More...
 
timer_id add_timer (duration const &interval, bool one_shot)
 Adds a timer, returns the timer id. More...
 
void stop_timer (timer_id id)
 
timer_id stop_add_timer (timer_id id, monotonic_clock const &deadline, duration const &interval={})
 
timer_id stop_add_timer (timer_id id, duration const &interval, bool one_shot)
 
void filter_events (std::function< bool(event_base &ev)> const &filter)
 
void resend_current_event ()
 
void remove_events (event_source const *const source)
 
template<typename T >
void remove_events ()
 

Additional Inherited Members

- Public Types inherited from aio_base
using size_type = uint64_t
 
- Public Attributes inherited from event_handler
event_loopevent_loop_
 
- Static Public Attributes inherited from aio_base
static constexpr auto nosize = static_cast<size_type>(-1)
 
- Protected Member Functions inherited from reader_base
 reader_base (std::wstring &&name, aio_buffer_pool &pool, size_t max_buffers) noexcept
 Constructs a reader. More...
 
 reader_base (std::wstring_view name, aio_buffer_pool &pool, size_t max_buffers) noexcept
 
virtual void operator() (event_base const &) override
 Called by the event loop in the worker thread with the event to process. More...
 
void on_buffer_availability (aio_waitable const *w)
 
- Protected Member Functions inherited from aio_waitable
void remove_waiters ()
 Call in destructor of most-derived class.
 
void add_waiter (event_handler &h)
 
void signal_availibility ()
 
- Protected Attributes inherited from reader_base
mutex mtx_
 
aio_buffer_poolbuffer_pool_
 
logger_interfacelogger_
 
std::wstring const name_
 
size_t const max_buffers_ {}
 
std::list< buffer_leasebuffers_
 
uint64_t size_ {nosize}
 
uint64_t max_size_ {nosize}
 
uint64_t start_offset_ {nosize}
 
uint64_t remaining_ {nosize}
 
bool get_buffer_called_ {}
 
bool error_ {}
 
bool eof_ {}
 
bool waiting_ {}
 

Detailed Description

Does not own the data, uses just one buffer. The memory pointed to by the view must live longer than the reader.


The documentation for this class was generated from the following file: