Stxxl  1.2.1
Public Types | Public Member Functions | Protected Member Functions | List of all members
file Class Reference

Defines interface of file. More...

#include <iobase.h>

Inheritance diagram for file:
Inheritance graph
[legend]

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)
inlineprotected

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