Stxxl  1.2.1
Public Types | Public Member Functions | Protected Member Functions
file Class Reference

Defines interface of file. More...

#include <iobase.h>

Inheritance diagram for file:
Inheritance graph
[legend]

List of all members.

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.

Protected Member Functions

 file (int _id)
 Initializes file object.

Detailed Description

Defines interface of file.

It is a base class for different implementations that might base on various file systems or even remote storage interfaces


Member Enumeration Documentation

Definition of acceptable file open modes.

Various open modes in a file system must be converted to this set of acceptable modes

Enumerator:
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


Constructor & Destructor Documentation

file::file ( int  _id) [inline, protected]

Initializes file object.

Parameters:
_idfile identifier
Remarks:
Called in implementations of file

Member Function Documentation

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.

Parameters:
bufferpointer to memory buffer to read into
posstarting file position to read
bytesnumber of bytes to transfer
on_cmplI/O completion handler
Returns:
request_ptr object, that can be used to track the status of the operation

Implemented in sim_disk_file, mmap_file, syscall_file, and mem_file.

Referenced by typed_block< sizeof(value_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.

Parameters:
bufferpointer to memory buffer to write from
posstarting file position to write
bytesnumber of bytes to transfer
on_cmplI/O completion handler
Returns:
request_ptr object, that can be used to track the status of the operation

Implemented in sim_disk_file, mmap_file, syscall_file, and mem_file.

Referenced by typed_block< sizeof(value_type), value_type >::write().

virtual void file::set_size ( stxxl::int64  newsize) [pure virtual]

Changes the size of the file.

Parameters:
newsizevalue of the new file size

Implemented in sim_disk_file, mem_file, and ufs_file_base.

Referenced by vector< Tp_, PgSz_, PgTp_, BlkSize_, AllocStr_, SzTp_ >::vector().

virtual stxxl::int64 file::size ( ) [pure virtual]

Returns size of the file.

Returns:
file size in bytes

Implemented in mem_file, and ufs_file_base.


The documentation for this class was generated from the following file: