public IndexNode(IndexNodeSaveFn store, int storeOverhead, Index index, bool isRoot, byte[] buffer, int offset) { _store = store; _storageOverhead = storeOverhead; _index = index; _isRoot = isRoot; _header = new IndexHeader(buffer, offset + 0); _totalSpaceAvailable = _header.AllocatedSizeOfEntries; _entries = new List<IndexEntry>(); int pos = (int)_header.OffsetToFirstEntry; while (pos < _header.TotalSizeOfEntries) { IndexEntry entry = new IndexEntry(index.IsFileIndex); entry.Read(buffer, offset + pos); _entries.Add(entry); if ((entry.Flags & IndexEntryFlags.End) != 0) { break; } pos += entry.Size; } }
public IndexNode(IndexNodeSaveFn store, int storeOverhead, Index index, bool isRoot, byte[] buffer, int offset) { _store = store; _storageOverhead = storeOverhead; _index = index; _isRoot = isRoot; _header = new IndexHeader(buffer, offset + 0); _totalSpaceAvailable = _header.AllocatedSizeOfEntries; _entries = new List <IndexEntry>(); int pos = (int)_header.OffsetToFirstEntry; while (pos < _header.TotalSizeOfEntries) { IndexEntry entry = new IndexEntry(index.IsFileIndex); entry.Read(buffer, offset + pos); _entries.Add(entry); if ((entry.Flags & IndexEntryFlags.End) != 0) { break; } pos += entry.Size; } }
public IndexNode(IndexNodeSaveFn store, int storeOverhead, Index index, bool isRoot, uint allocatedSize) { _store = store; _storageOverhead = storeOverhead; _index = index; _isRoot = isRoot; _header = new IndexHeader(allocatedSize); _totalSpaceAvailable = allocatedSize; IndexEntry endEntry = new IndexEntry(_index.IsFileIndex); endEntry.Flags |= IndexEntryFlags.End; _entries = new List<IndexEntry>(); _entries.Add(endEntry); _header.OffsetToFirstEntry = (uint)(IndexHeader.Size + storeOverhead); _header.TotalSizeOfEntries = (uint)(_header.OffsetToFirstEntry + endEntry.Size); }
public IndexNode(IndexNodeSaveFn store, int storeOverhead, Index index, bool isRoot, uint allocatedSize) { _store = store; _storageOverhead = storeOverhead; _index = index; _isRoot = isRoot; _header = new IndexHeader(allocatedSize); _totalSpaceAvailable = allocatedSize; IndexEntry endEntry = new IndexEntry(_index.IsFileIndex); endEntry.Flags |= IndexEntryFlags.End; _entries = new List <IndexEntry>(); _entries.Add(endEntry); _header.OffsetToFirstEntry = (uint)(IndexHeader.Size + storeOverhead); _header.TotalSizeOfEntries = (uint)(_header.OffsetToFirstEntry + endEntry.Size); }