/usr/include/stxxl/bits/io
NameSizeModeActions
boostfd_file.h21210644editdlrm
completion_handler.h28340644editdlrm
create_file.h13310644editdlrm
disk_queued_file.h17460644editdlrm
disk_queues.h39620644editdlrm
file.h76760644editdlrm
fileperblock_file.h25380644editdlrm
io.h12710644editdlrm
iostats.h162380644editdlrm
linuxaio_file.h25740644editdlrm
linuxaio_queue.h31090644editdlrm
linuxaio_request.h20990644editdlrm
mem_file.h17440644editdlrm
mmap_file.h18700644editdlrm
request.h31450644editdlrm
request_interface.h26820644editdlrm
request_operations.h51880644editdlrm
request_queue.h12450644editdlrm
request_queue_impl_1q.h21030644editdlrm
request_queue_impl_qwqr.h22740644editdlrm
request_queue_impl_worker.h20290644editdlrm
request_with_state.h16990644editdlrm
request_with_waiters.h15760644editdlrm
serving_request.h13870644editdlrm
simdisk_file.h42830644editdlrm
syscall_file.h18440644editdlrm
ufs_file_base.h18650644editdlrm
wbtl_file.h34150644editdlrm
wfs_file_base.h16630644editdlrm
wincall_file.h20450644editdlrm
Edit: /usr/include/stxxl/bits/io/request_interface.h (2682B)
/*************************************************************************** * include/stxxl/bits/io/request_interface.h * * Part of the STXXL. See http://stxxl.sourceforge.net * * Copyright (C) 2002 Roman Dementiev * Copyright (C) 2008, 2009, 2011 Andreas Beckmann * Copyright (C) 2009 Johannes Singler * * Distributed under the Boost Software License, Version 1.0. * (See accompanying file LICENSE_1_0.txt or copy at * http://www.boost.org/LICENSE_1_0.txt) **************************************************************************/ #ifndef STXXL_IO_REQUEST_INTERFACE_HEADER #define STXXL_IO_REQUEST_INTERFACE_HEADER #include #include #include #include STXXL_BEGIN_NAMESPACE //! \addtogroup reqlayer //! \{ class onoff_switch; //! Functional interface of a request. //! //! Since all library I/O operations are asynchronous, //! one needs to keep track of their status: //! e.g. whether an I/O operation completed or not. class request_interface : private noncopyable { public: typedef stxxl::external_size_type offset_type; typedef stxxl::internal_size_type size_type; enum request_type { READ, WRITE }; public: virtual bool add_waiter(onoff_switch* sw) = 0; virtual void delete_waiter(onoff_switch* sw) = 0; protected: virtual void notify_waiters() = 0; protected: virtual void completed(bool canceled) = 0; public: //! Suspends calling thread until completion of the request. virtual void wait(bool measure_time = true) = 0; //! Cancel a request. //! //! The request is canceled unless already being processed. //! However, cancelation cannot be guaranteed. //! Canceled requests must still be waited for in order to ensure correct operation. //! If the request was canceled successfully, the completion handler will not be called. //! \return \c true iff the request was canceled successfully virtual bool cancel() = 0; //! Polls the status of the request. //! \return \c true if request is completed, otherwise \c false virtual bool poll() = 0; //! Identifies the type of I/O implementation. //! \return pointer to null terminated string of characters, containing the name of I/O implementation virtual const char * io_type() const = 0; //! Dumps properties of a request. virtual std::ostream & print(std::ostream& out) const = 0; virtual ~request_interface() { } }; //! \} STXXL_END_NAMESPACE #endif // !STXXL_IO_REQUEST_INTERFACE_HEADER // vim: et:ts=4:sw=4