/// <summary> /// Initializes a new instance of the <see cref="TripleBuffer"/> class. /// </summary> /// <param name="numberOfPages">The number of pages the buffer consists of.</param> /// <param name="triplesPerPage">The size of each page, denoting the number of triples that can be stored.</param> public TripleBuffer(int numberOfPages, int triplesPerPage) { m_numPages = numberOfPages; m_pageSize = triplesPerPage; m_pages = new TriplePage[numberOfPages]; for (int i = 0; i < numberOfPages; i++) { m_pages[i] = new TriplePage(triplesPerPage); } }
/// <summary> /// Reads from a given triple cursor and stores the read triples in a triple buffer page. /// This will attempt to read a much triples as fit on the given page. /// </summary> /// <param name="cursor">The triple cursor.</param> /// <param name="page">The triple buffer page.</param> private static void ReadToPage(TripleCursor cursor, TriplePage page) { page.Clear(); for (int i = 0; i < page.Size; i++) { if (!cursor.HasNext) { break; } else { page[i] = cursor.Next(); } } }