15 #ifndef STXXL_SIMDISK_FILE_HEADER 
   16 #define STXXL_SIMDISK_FILE_HEADER 
   18 #ifndef STXXL_HAVE_SIMDISK_FILE 
   19 #ifdef STXXL_BOOST_CONFIG 
   20  #include <boost/config.hpp> 
   25  #define STXXL_HAVE_SIMDISK_FILE 1 
   27  #define STXXL_HAVE_SIMDISK_FILE 0 
   31 #if STXXL_HAVE_SIMDISK_FILE 
   37 #include <stxxl/bits/io/ufs_file_base.h> 
   38 #include <stxxl/bits/io/disk_queued_file.h> 
   41 __STXXL_BEGIN_NAMESPACE
 
   46  #define AVERAGE_SPEED (15 * 1024 * 1024) 
   48 class DiskGeometry : 
private noncopyable
 
   60         double sustained_data_rate;  
 
   61         inline Zone(
int _first_sector) : first_sector(_first_sector)
 
   74             sect_per_track(_sect_per_track),
 
   76             first_sector(_first_sector),
 
   78             sustained_data_rate(_rate)
 
   83         inline bool operator () (
const Zone & a, 
const Zone & b)
 const 
   85             return a.first_sector < b.first_sector;
 
   95     double head_switch_time;            
 
   96     double cyl_switch_time;             
 
   97     double revolution_time;             
 
   98     double interface_speed;             
 
   99     std::set<Zone, ZoneCmp> zones;
 
  101     void add_zone(
int & first_cyl, 
int last_cyl,
 
  102                   int sec_per_track, 
int & first_sect);
 
  105     inline DiskGeometry()
 
  107     double get_delay(file::offset_type offset, file::size_type size);                
 
  109     inline ~DiskGeometry()
 
  114 class IC35L080AVVA07 : 
public DiskGeometry              
 
  132         std::cout << 
"Please, make sure that '" << filename <<
 
  133         "' is resided on swap memory partition!" <<
 
  136     void serve(
const request * req) 
throw (io_error);
 
  143 __STXXL_END_NAMESPACE
 
  145 #endif  // #if STXXL_HAVE_SIMDISK_FILE 
  147 #endif  // !STXXL_SIMDISK_FILE_HEADER 
Base for UNIX file system implementations. 
Definition: ufs_file_base.h:30
const char * io_type() const 
Identifies the type of I/O implementation. 
Request with basic properties like file and offset. 
Definition: request.h:39
Implementation of disk emulation. 
Definition: simdisk_file.h:122
Implementation of some file methods based on serving_request. 
Definition: disk_queued_file.h:26
void set_size(offset_type newsize)
Changes the size of the file. 
sim_disk_file(const std::string &filename, int mode, int queue_id=DEFAULT_QUEUE, int allocator_id=NO_ALLOCATOR)
constructs file object 
Definition: simdisk_file.h:130