private void ReadStoreHeader() { //Copy header out of memory map using (var pointer = AcquireAtOffset(0, _rootOffset)) unsafe { _header = *((StoreHeader *)pointer.Pointer); } //Check that the magic is correct if (_header.Magic != StoreHeader.MAGIC) { throw new ArgumentException("Incorrect blockstore header magic"); } }
private void WriteStoreHeader(int pageSize = 16384) { StoreHeader h; using (var a = _file.CreateViewAccessor()) { h = new StoreHeader( blockSize: pageSize, totalSize: a.Capacity ); } //Write store header using (var pointer = AcquireAtOffset(0, _rootOffset)) unsafe { *((StoreHeader *)pointer.Pointer) = h; } }