示例#1
0
        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");
            }
        }
示例#2
0
        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;
                }
        }