Stxxl  1.4.0
include/stxxl/bits/io/wincall_file.h
Go to the documentation of this file.
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  *  Copyright (C) 2008 Andreas Beckmann <beckmann@cs.uni-frankfurt.de>
00008  *  Copyright (C) 2009, 2010 Johannes Singler <singler@kit.edu>
00009  *
00010  *  Distributed under the Boost Software License, Version 1.0.
00011  *  (See accompanying file LICENSE_1_0.txt or copy at
00012  *  http://www.boost.org/LICENSE_1_0.txt)
00013  **************************************************************************/
00014 
00015 #ifndef STXXL_WINCALL_FILE_HEADER
00016 #define STXXL_WINCALL_FILE_HEADER
00017 
00018 #ifndef STXXL_HAVE_WINCALL_FILE
00019 #ifdef STXXL_BOOST_CONFIG
00020  #include <boost/config.hpp>
00021 #endif
00022 
00023 #ifdef BOOST_MSVC
00024  #define STXXL_HAVE_WINCALL_FILE 1
00025 #else
00026  #define STXXL_HAVE_WINCALL_FILE 0
00027 #endif
00028 #endif
00029 
00030 #if STXXL_HAVE_WINCALL_FILE
00031 
00032 #include <stxxl/bits/io/wfs_file_base.h>
00033 #include <stxxl/bits/io/disk_queued_file.h>
00034 
00035 
00036 __STXXL_BEGIN_NAMESPACE
00037 
00038 //! \addtogroup fileimpl
00039 //! \{
00040 
00041 //! \brief Implementation of file based on Windows native I/O calls
00042 class wincall_file : public wfs_file_base, public disk_queued_file
00043 {
00044 public:
00045     //! \brief constructs file object
00046     //! \param filename path of file
00047     //! \attention filename must be resided at memory disk partition
00048     //! \param mode open mode, see \c stxxl::file::open_modes
00049     //! \param disk disk(file) identifier
00050     wincall_file(
00051         const std::string & filename,
00052         int mode,
00053         int queue_id = DEFAULT_QUEUE, int allocator_id = NO_ALLOCATOR)
00054         : wfs_file_base(filename, mode), disk_queued_file(queue_id, allocator_id)
00055     { }
00056     void serve(const request * req) throw (io_error);
00057     const char * io_type() const;
00058 };
00059 
00060 //! \}
00061 
00062 __STXXL_END_NAMESPACE
00063 
00064 #endif  // #if STXXL_HAVE_WINCALL_FILE
00065 
00066 #endif  // !STXXL_WINCALL_FILE_HEADER
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines