15 #ifndef STXXL_BOOSTFD_FILE_H_
16 #define STXXL_BOOSTFD_FILE_H_
18 #ifdef STXXL_BOOST_CONFIG // if boost is available
20 #include <stxxl/bits/io/iobase.h>
22 #include <boost/iostreams/device/file_descriptor.hpp>
25 __STXXL_BEGIN_NAMESPACE
30 class boostfd_request;
33 class boostfd_file :
public file
36 typedef boost::iostreams::file_descriptor fd_type;
43 boostfd_file(
const std::string & filename,
int mode,
int disk = -1);
44 fd_type get_file_des()
const;
61 class boostfd_request :
public request
63 friend class boostfd_file;
67 enum { OP = 0, DONE = 1, READY2DIE = 2 };
72 std::set<onoff_switch *> waiters;
82 bool add_waiter(onoff_switch * sw);
83 void delete_waiter(onoff_switch * sw);
85 void check_aligning();
89 virtual ~boostfd_request();
99 #endif // #ifdef STXXL_BOOST_CONFIG
101 #endif // !STXXL_BOOSTFD_FILE_H_