libfilezilla
Loading...
Searching...
No Matches
view_reader Class Referencefinal

#include <reader.hpp>

Inheritance diagram for view_reader:
Collaboration diagram for view_reader:

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.
 
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_handleroperator= (event_handler const &)=delete
 
void remove_handler ()
 Deactivates handler, removes all pending events and stops all timers for this handler.
 
template<typename T , typename... Args>
void send_event (Args &&... args)
 Sends the passed event asynchronously to the handler.
 
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.
 
timer_id add_timer (duration const &interval, bool one_shot)
 Adds a timer, returns the timer id.
 
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 ()
 

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.
 
 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.
 
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.

Member Function Documentation

◆ seekable()

virtual bool seekable ( ) const
inlineoverridevirtual

Reimplemented from reader_base.


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