#include <iobase.h>
Public Types | |
enum | open_mode { RDONLY = 1, WRONLY = 2, RDWR = 4, CREAT = 8, DIRECT = 16, TRUNC = 32 } |
Definition of acceptable file open modes. More... | |
Public Member Functions | |
virtual request_ptr | aread (void *buffer, stxxl::int64 pos, size_t bytes, completion_handler on_cmpl)=0 |
Schedules asynchronous read request to the file. | |
virtual request_ptr | awrite (void *buffer, stxxl::int64 pos, size_t bytes, completion_handler on_cmpl)=0 |
Schedules asynchronous write request to the file. | |
virtual void | set_size (stxxl::int64 newsize)=0 |
Changes the size of the file. | |
virtual stxxl::int64 | size ()=0 |
Returns size of the file. | |
int | get_disk_number () |
deprecated, use stxxl::file::get_id() instead | |
int | get_id () |
Returns file's identifier. | |
virtual void | lock () |
Locks file for reading and writing. | |
Protected Member Functions | |
file (int _id) | |
Initializes file object. |
It is a base class for different implementations that might base on various file systems or even remote storage interfaces
enum file::open_mode |
Definition of acceptable file open modes.
Various open modes in a file system must be converted to this set of acceptable modes
RDONLY | only reading of the file is allowed |
WRONLY | only writing of the file is allowed |
RDWR | read and write of the file are allowed |
CREAT | in case file does not exist no error occurs and file is newly created |
DIRECT | I/Os proceed bypassing file system buffers, i.e. unbuffered I/O. |
TRUNC | once file is opened its length becomes zero |
file::file | ( | int | _id | ) | [inline, protected] |
virtual request_ptr file::aread | ( | void * | buffer, | |
stxxl::int64 | pos, | |||
size_t | bytes, | |||
completion_handler | on_cmpl | |||
) | [pure virtual] |
Schedules asynchronous read request to the file.
buffer | pointer to memory buffer to read into | |
pos | starting file position to read | |
bytes | number of bytes to transfer | |
on_cmpl | I/O completion handler |
request_ptr
object, that can be used to track the status of the operation Implemented in mmap_file, sim_disk_file, and syscall_file.
Referenced by typed_block< sizeof(block_type::value_type), block_type::value_type >::read().
virtual request_ptr file::awrite | ( | void * | buffer, | |
stxxl::int64 | pos, | |||
size_t | bytes, | |||
completion_handler | on_cmpl | |||
) | [pure virtual] |
Schedules asynchronous write request to the file.
buffer | pointer to memory buffer to write from | |
pos | starting file position to write | |
bytes | number of bytes to transfer | |
on_cmpl | I/O completion handler |
request_ptr
object, that can be used to track the status of the operation Implemented in mmap_file, sim_disk_file, and syscall_file.
Referenced by typed_block< sizeof(block_type::value_type), block_type::value_type >::write().
virtual void file::set_size | ( | stxxl::int64 | newsize | ) | [pure virtual] |
Changes the size of the file.
newsize | value of the new file size |
Implemented in sim_disk_file, and ufs_file_base.
Referenced by vector< Tp_, PgSz_, PgTp_, BlkSize_, AllocStr_, SzTp_ >::vector().
virtual stxxl::int64 file::size | ( | ) | [pure virtual] |
int file::get_disk_number | ( | ) | [inline] |
deprecated, use stxxl::file::get_id()
instead
Referenced by block_manager::delete_block(), and vector< Tp_, PgSz_, PgTp_, BlkSize_, AllocStr_, SzTp_ >::vector().
int file::get_id | ( | ) | [inline] |
Returns file's identifier.
Referenced by syscall_file::aread(), sim_disk_file::aread(), mmap_file::aread(), syscall_file::awrite(), sim_disk_file::awrite(), and mmap_file::awrite().
virtual void file::lock | ( | ) | [inline, virtual] |