/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.h (3145B)
/*************************************************************************** * include/stxxl/bits/io/request.h * * Part of the STXXL. See http://stxxl.sourceforge.net * * Copyright (C) 2002 Roman Dementiev * Copyright (C) 2008 Andreas Beckmann * Copyright (C) 2013-2014 Timo Bingmann * * 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_HEADER #define STXXL_IO_REQUEST_HEADER #include #include #include #include #include #include #include #include STXXL_BEGIN_NAMESPACE //! \addtogroup reqlayer //! \{ #define STXXL_BLOCK_ALIGN 4096 class file; //! Request object encapsulating basic properties like file and offset. class request : virtual public request_interface, public atomic_counted_object { friend class linuxaio_queue; protected: completion_handler m_on_complete; compat_unique_ptr::result m_error; protected: file* m_file; void* m_buffer; offset_type m_offset; size_type m_bytes; request_type m_type; public: request(const completion_handler& on_compl, file* file, void* buffer, offset_type offset, size_type bytes, request_type type); virtual ~request(); file * get_file() const { return m_file; } void * get_buffer() const { return m_buffer; } offset_type get_offset() const { return m_offset; } size_type get_size() const { return m_bytes; } request_type get_type() const { return m_type; } void check_alignment() const; std::ostream & print(std::ostream& out) const; //! Inform the request object that an error occurred during the I/O //! execution. void error_occured(const char* msg) { m_error.reset(new stxxl::io_error(msg)); } //! Inform the request object that an error occurred during the I/O //! execution. void error_occured(const std::string& msg) { m_error.reset(new stxxl::io_error(msg)); } //! Rises an exception if there were error with the I/O. void check_errors() { if (m_error.get()) throw *(m_error.get()); } virtual const char * io_type() const; protected: void check_nref(bool after = false) { if (get_reference_count() < 2) check_nref_failed(after); } private: void check_nref_failed(bool after); }; inline std::ostream& operator << (std::ostream& out, const request& req) { return req.print(out); } //! A reference counting pointer for \c request. typedef counting_ptr request_ptr; //! \} STXXL_END_NAMESPACE #endif // !STXXL_IO_REQUEST_HEADER // vim: et:ts=4:sw=4