Fennel: RandomAccessRequest Class Reference (original) (raw)

RandomAccessRequest represents one logical unit of I/O against a RandomAccessDevice. More...

#include <[RandomAccessRequest.h](RandomAccessRequest%5F8h-source.html)>

List of all members.

Public Types
enum Type { READ, WRITE }
typedef IntrusiveList< RandomAccessRequestBinding > BindingList
typedef IntrusiveListIter< RandomAccessRequestBinding > BindingListIter
typedef IntrusiveListMutator< RandomAccessRequestBinding > BindingListMutator
Public Member Functions
void execute ()
Executes this request.
Public Attributes
RandomAccessDevice * pDevice
The device to be accessed.
FileSize cbOffset
Byte offset within device at which access should start.
FileSize cbTransfer
Number of bytes to be transferred.
Type type
Access type: READ for transfer from device to memory; WRITE for transfer from memory to device.
BindingList bindingList
Bindings for memory source or destination and notifications.

Detailed Description

RandomAccessRequest represents one logical unit of I/O against a RandomAccessDevice.

Currently supported operations are reads and writes spanning a contiguous range of byte offsets within the device. The RandomAccessRequestBinding memory locations need not be contiguous (scatter/gather).

Definition at line 94 of file RandomAccessRequest.h.


Member Typedef Documentation


Member Enumeration Documentation


Member Function Documentation

| void RandomAccessRequest::execute | ( | | ) | | --------------------------------- | - | | - |


Member Data Documentation

The device to be accessed.

It's a pointer rather than a reference so that RandomAccessRequest behaves as a concrete class.

Definition at line 111 of file RandomAccessRequest.h.

Referenced by SegPageBackupRestoreDevice::backupPage(), execute(), CacheImpl< PageT, VictimPolicyT >::prefetchBatch(), RandomAccessFileDevice::prepareTransfer(), SegPageBackupRestoreDevice::restorePage(), ThreadPoolScheduler::schedule(), IoCompletionPortScheduler::schedule(), AioSignalScheduler::schedule(), AioPollingScheduler::schedule(), AioLinuxScheduler::schedule(), RandomAccessFileDeviceTest::testAsyncIOImpl(), RandomAccessFileDevice::transfer(), and CacheImpl< PageT, VictimPolicyT >::transferPageAsync().

Byte offset within device at which access should start.

Definition at line 116 of file RandomAccessRequest.h.

Referenced by SegPageBackupRestoreDevice::backupPage(), CacheImpl< PageT, VictimPolicyT >::prefetchBatch(), RandomAccessFileDevice::prepareTransfer(), SegPageBackupRestoreDevice::restorePage(), ThreadPoolScheduler::schedule(), IoCompletionPortScheduler::schedule(), RandomAccessFileDeviceTest::testAsyncIOImpl(), FileDevice::transfer(), and CacheImpl< PageT, VictimPolicyT >::transferPageAsync().

Number of bytes to be transferred.

Definition at line 121 of file RandomAccessRequest.h.

Referenced by SegPageBackupRestoreDevice::backupPage(), CacheImpl< PageT, VictimPolicyT >::prefetchBatch(), RandomAccessFileDevice::prepareTransfer(), SegPageBackupRestoreDevice::restorePage(), ThreadPoolScheduler::schedule(), IoCompletionPortScheduler::schedule(), RandomAccessFileDeviceTest::testAsyncIOImpl(), FileDevice::transfer(), and CacheImpl< PageT, VictimPolicyT >::transferPageAsync().

Access type: READ for transfer from device to memory; WRITE for transfer from memory to device.

Definition at line 127 of file RandomAccessRequest.h.

Referenced by SegPageBackupRestoreDevice::backupPage(), CacheImpl< PageT, VictimPolicyT >::prefetchBatch(), RandomAccessFileDevice::prepareTransfer(), SegPageBackupRestoreDevice::restorePage(), ThreadPoolScheduler::schedule(), IoCompletionPortScheduler::schedule(), AioSignalScheduler::schedule(), RandomAccessFileDeviceTest::testAsyncIOImpl(), FileDevice::transfer(), and CacheImpl< PageT, VictimPolicyT >::transferPageAsync().

Bindings for memory source or destination and notifications.

Definition at line 132 of file RandomAccessRequest.h.

Referenced by SegPageBackupRestoreDevice::backupPage(), CacheImpl< PageT, VictimPolicyT >::prefetchBatch(), RandomAccessFileDevice::prepareTransfer(), SegPageBackupRestoreDevice::restorePage(), ThreadPoolScheduler::schedule(), IoCompletionPortScheduler::schedule(), AioSignalScheduler::schedule(), AioPollingScheduler::schedule(), AioLinuxScheduler::schedule(), RandomAccessFileDeviceTest::testAsyncIOImpl(), FileDevice::transfer(), and CacheImpl< PageT, VictimPolicyT >::transferPageAsync().


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


Generated on Mon Jun 22 04:00:44 2009 for Fennel by doxygen 1.5.1