#include <RandomAccessRequest.h>
| 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. | |
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.
Definition at line 102 of file RandomAccessRequest.h.
Definition at line 103 of file RandomAccessRequest.h.
Definition at line 105 of file RandomAccessRequest.h.
| void RandomAccessRequest::execute | ( | ) | 
Executes this request.
(Satisfies the ThreadPool Task signature, allowing instances of this class to be submitted directly as a Task by ThreadPoolScheduler).
Definition at line 137 of file DeviceAccessScheduler.cpp.
References pDevice, and RandomAccessDevice::transfer().
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().
 1.5.1
 1.5.1