static | DiskDriver() |
private | DiskDriver() |
public | ~DiskDriver() |
public void | AddFile(HostFile* hostFile) |
public void | Exit() |
public HostFile* | GetOrInsertHostFile(const String<char>& hostFilePath, bool randomAccess) |
public static nothrow DiskDriver& | Instance() |
public void | InterruptService() |
public void | ProcessRequests() |
public long | Read(Block* block) |
public void | RemoveHostFile(const String<char>& hostFilePath) |
public void | Run() |
public void | SendAddFileRequest(HostFile* hostFile) |
public void | Start() |
public void | Stop() |
public long | Write(Block* block) |
private void* | completionPort |
private Queue<IOCompletion> | completionQueue |
private void* | ddRequestProcessedEvent |
private Queue<UniquePtr<DDRequest>> | ddRequestQueue |
private List<void*> | eventHandles |
private bool | exit |
private List<UniquePtr<HostFile>> | hostFiles |
private static UniquePtr<DiskDriver> | instance |
private HashMap<ulong, HostFile*, Hasher<ulong>, EqualTo<ulong>> | keyHostFileMap |
private Mutex | mtx |
private ulong | nextHostFileKey |
private int | nextRequestNumber |
private HashMap<String<char>, HostFile*, Hasher<String<char>>, EqualTo<String<char>>> | pathHostFileMap |
private HashMap<void*, IORequest*, Hasher<void*>, EqualTo<void*>> | requestMap |
private Thread | thread |