public _segment(DefaultPileBase pile, Memory data, bool brandNew) { Pile = pile; Data = data;//segment memory FreeChunks = new freeChunks[FREE_LST_COUNT]; for (var i = 0; i < FreeChunks.Length; i++) { var chunk = new freeChunks(); chunk.Addresses = new int[pile.m_FreeListSize]; chunk.CurrentIndex = -1; FreeChunks[i] = chunk; } if (brandNew) { //init 1 chunk for the whole segment var adr = 0; data.WriteFreeChunkFlag(0); adr += 3; //flag data.WriteInt32(adr, Data.Length - CHUNK_HDER_SZ); FreeChunks[FreeChunks.Length - 1].CurrentIndex = 0; //mark the largest chunk as free LOADED_AND_CRAWLED = true; } else { //Segment will be Crawled first LOADED_AND_CRAWLED = false; } }
private void PileForm_Load(object sender, EventArgs e) { if (!MMF) { m_Pile = new DefaultPile(); } else { m_Pile = new MMFPile(null); ((MMFPile)m_Pile).DataDirectoryRoot = @"c:\nfx"; } m_Pile.Configure(null); chkSpeed_CheckedChanged(null, null); }
public _pileEnumerator(DefaultPileBase pile) { m_Pile = pile; Reset(); }