| 736 | } |
| 737 | |
| 738 | void writePage() { |
| 739 | ASSERT(mode == WRITE); |
| 740 | debug_printf("FIFOQueue::Cursor(%s) writePage\n", toString().c_str()); |
| 741 | |
| 742 | // Zero unused space within itemspace |
| 743 | memset(header()->begin() + header()->endOffset, 0, header()->itemSpace - header()->endOffset); |
| 744 | |
| 745 | queue->pager->updatePage( |
| 746 | PagerEventReasons::MetaData, nonBtreeLevel, VectorRef<PhysicalPageID>(&pageID, 1), page); |
| 747 | if (firstPageIDWritten == invalidPhysicalPageID) { |
| 748 | firstPageIDWritten = pageID; |
| 749 | } |
| 750 | } |
| 751 | |
| 752 | // Link the current page to newPageID:newOffset and then write it to the pager. |
| 753 | // The link destination could be a new page at the end of the queue, or the beginning of |