public void Put(VolumePagePtr pPage, PageInfo info, ArraySegment <byte> content) { EnsureObjectNotDisposed(); if (!Enabled) { return; } var tbl = getVolumeTable(pPage.VolumeId); var item = new _entry { Info = info, Data = new byte[content.Count] }; Array.Copy(content.Array, content.Offset, item.Data, 0, content.Count); int?maxAge = LifeTimeSec; if (maxAge.Value <= 0) { maxAge = null; } //since pageId can not be less than 1 we use negative pageIds for storing PageInfo without the byte array tbl.Put(pPage.PageId, item, maxAge); //store the full item tbl.Put(-pPage.PageId, info, maxAge); //store just the pageInfo with reverse index }
private _entry[] makeEntriesArray(int capacity) { var array = new _entry[capacity]; for (var i = 0; i < array.Length; i++) { array[i].DataPointer = PilePointer.Invalid; } return(array); }
private set => SetProperty(ref _entry, value);
private _entry[] makeEntriesArray(int capacity) { var array = new _entry[capacity]; for(var i=0; i<array.Length; i++) array[i].DataPointer = PilePointer.Invalid; return array; }