コード例 #1
0
        public Result ReadEntryCount(out int count)
        {
            UnsafeHelpers.SkipParamInit(out count);

            // This should only be called at the start of reading stream.
            Assert.SdkRequiresEqual(_offset, 0);

            // Read and validate header.
            var header = new KeyValueArchiveHeader();

            Result rc = Read(SpanHelpers.AsByteSpan(ref header));

            if (rc.IsFailure())
            {
                return(rc);
            }

            if (!header.IsValid())
            {
                return(ResultKvdb.InvalidKeyValue.Log());
            }

            count = header.EntryCount;
            return(Result.Success);
        }
コード例 #2
0
        public void WriteHeader(int entryCount)
        {
            // This should only be called at start of write.
            Assert.SdkEqual(_offset, 0);

            var header = new KeyValueArchiveHeader(entryCount);

            Write(SpanHelpers.AsByteSpan(ref header));
        }