HostBlockManager Class

Definition

Line 227 of cmsxk/HostFileSystem.cm

Inheritance

Constructors & Destructor

public nothrow HostBlockManager(HostFileSystem* fs_)

Member Functions

private void AddWaitingProcess(Process* process)
public override void Flush()
public override void FreeBlocks(INode* inode)
public override Block* GetBlock(const BlockKey& key, SuperBlock* sb, bool sleep, bool setOwner)
public override void GetBlockNumber(INode* inode, long offset, int& blockNumber, int& blockOffset, bool allocate)
public override int GetBlockNumber(INode* inode, int logicalBlockNumber) const
private LinkedList<Block*>* GetFreeBlockList()
private List<Process*> GetWaitingProcesses()
public override nothrow String<char> Name() const
public override nothrow void PutBlock(Block* block)
private void PutBlockToFreeList(Block* block, bool tail)
public override nothrow Block* ReadBlock(const BlockKey& key, SuperBlock* sb)
private void RemoveBlockFromFreeList(Block* block)
public override void WriteBlock(Block* block, SuperBlock* superBlock)

Member Variables

private HashMap<BlockKey, Block*, BlockKeyHash, EqualTo<BlockKey>> blockMap
private BlockCache cache
private HostFileSystem* fs

Constructor& Destructor Details

HostBlockManager Constructor

public nothrow HostBlockManager(HostFileSystem* fs_)

Definition
Line 229 of cmsxk/HostFileSystem.cm


Member Function Details

AddWaitingProcess Member Function

private void AddWaitingProcess(Process* process)

Definition
Line 437 of cmsxk/HostFileSystem.cm


Flush Member Function

public override void Flush()

Definition
Line 422 of cmsxk/HostFileSystem.cm


FreeBlocks Member Function

public override void FreeBlocks(INode* inode)

Definition
Line 396 of cmsxk/HostFileSystem.cm


GetBlock Member Function

public override Block* GetBlock(const BlockKey& key, SuperBlock* sb, bool sleep, bool setOwner)

Definition
Line 236 of cmsxk/HostFileSystem.cm


GetBlockNumber Member Function

public override void GetBlockNumber(INode* inode, long offset, int& blockNumber, int& blockOffset, bool allocate)

Definition
Line 404 of cmsxk/HostFileSystem.cm


GetBlockNumber Member Function

public override int GetBlockNumber(INode* inode, int logicalBlockNumber)

Definition
Line 400 of cmsxk/HostFileSystem.cm


GetFreeBlockList Member Function

private LinkedList<Block*>* GetFreeBlockList()

Definition
Line 433 of cmsxk/HostFileSystem.cm


GetWaitingProcesses Member Function

private List<Process*> GetWaitingProcesses()

Definition
Line 441 of cmsxk/HostFileSystem.cm


Name Member Function

public override nothrow String<char> Name()

Definition
Line 232 of cmsxk/HostFileSystem.cm


PutBlock Member Function

public override nothrow void PutBlock(Block* block)

Definition
Line 337 of cmsxk/HostFileSystem.cm


PutBlockToFreeList Member Function

private void PutBlockToFreeList(Block* block, bool tail)

Definition
Line 429 of cmsxk/HostFileSystem.cm


ReadBlock Member Function

public override nothrow Block* ReadBlock(const BlockKey& key, SuperBlock* sb)

Definition
Line 369 of cmsxk/HostFileSystem.cm


RemoveBlockFromFreeList Member Function

private void RemoveBlockFromFreeList(Block* block)

Definition
Line 425 of cmsxk/HostFileSystem.cm


WriteBlock Member Function

public override void WriteBlock(Block* block, SuperBlock* superBlock)

Definition
Line 392 of cmsxk/HostFileSystem.cm