00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef STXXL_WINCALL_FILE_HEADER
00014 #define STXXL_WINCALL_FILE_HEADER
00015
00016 #ifdef STXXL_BOOST_CONFIG
00017 #include <boost/config.hpp>
00018 #endif
00019
00020 #ifdef BOOST_MSVC
00021
00022 #include <stxxl/bits/io/wfs_file.h>
00023 #include <stxxl/bits/common/debug.h>
00024
00025
00026 __STXXL_BEGIN_NAMESPACE
00027
00030
00032 class wincall_file : public wfs_file_base
00033 {
00034 public:
00040 wincall_file(
00041 const std::string & filename,
00042 int mode,
00043 int disk = -1);
00044 request_ptr aread(
00045 void * buffer,
00046 stxxl::int64 pos,
00047 size_t bytes,
00048 completion_handler on_cmpl);
00049 request_ptr awrite(
00050 void * buffer,
00051 stxxl::int64 pos,
00052 size_t bytes,
00053 completion_handler on_cmpl);
00054 };
00055
00057 class wincall_request : public wfs_request_base
00058 {
00059 friend class wincall_file;
00060
00061 protected:
00062 wincall_request(
00063 wincall_file * f,
00064 void * buf,
00065 stxxl::int64 off,
00066 size_t b,
00067 request_type t,
00068 completion_handler on_cmpl);
00069 void serve();
00070
00071 public:
00072 const char * io_type();
00073 };
00074
00076
00077 __STXXL_END_NAMESPACE
00078
00079 #endif // #ifdef BOOST_MSVC
00080
00081 #endif // !STXXL_WINCALL_FILE_HEADER