Stxxl
1.2.1
|
00001 /*************************************************************************** 00002 * include/stxxl/bits/io/wincall_file.h 00003 * 00004 * Part of the STXXL. See http://stxxl.sourceforge.net 00005 * 00006 * Copyright (C) 2005-2006 Roman Dementiev <dementiev@ira.uka.de> 00007 * 00008 * Distributed under the Boost Software License, Version 1.0. 00009 * (See accompanying file LICENSE_1_0.txt or copy at 00010 * http://www.boost.org/LICENSE_1_0.txt) 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