Ejemplo n.º 1
0
 public BufferWriter(int minimumSize, LazinatorMemory completedMemory)
 {
     if (minimumSize == 0)
         minimumSize = ExpandableBytes.DefaultMinBufferSize;
     ActiveMemory = new ExpandableBytes(minimumSize);
     ActiveMemory.UsedBytesInCurrentBuffer = 0;
     LengthsPosition = (0, 0);
     MemorySegmentCollection = new MemorySegmentCollection(completedMemory, true);
 }
Ejemplo n.º 2
0
 public BufferWriter(int minimumSize)
 {
     if (minimumSize == 0)
         minimumSize = ExpandableBytes.DefaultMinBufferSize;
     ActiveMemory = new ExpandableBytes(minimumSize);
     ActiveMemory.UsedBytesInCurrentBuffer = 0;
     LengthsPosition = (0, 0);
     MemorySegmentCollection = null;
 }
Ejemplo n.º 3
0
        protected override ILazinator AssignCloneProperties(ILazinator clone, IncludeChildrenMode includeChildrenMode)
        {
            base.AssignCloneProperties(clone, includeChildrenMode);
            MemorySegmentCollection typedClone = (MemorySegmentCollection)clone;

            typedClone.Segments = CloneOrChange_List_GMemoryBlockIDAndSlice_g(Segments, l => l?.CloneLazinator(includeChildrenMode, CloneBufferOptions.NoBuffer), false);

            return(typedClone);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Returns a new LazinatorMemory with an appended memory chunk.
        /// </summary>
        /// <param name="chunk"></param>
        /// <returns></returns>
        public LazinatorMemory WithAppendedChunk(MemoryChunk chunk)
        {
            if (IsEmpty)
            {
                return(new LazinatorMemory(chunk));
            }

            var withAppendedChunk = new MemorySegmentCollection();

            withAppendedChunk.SetFromLazinatorMemory(this);
            withAppendedChunk.AppendMemoryChunk(chunk);
            return(new LazinatorMemory(withAppendedChunk, StartIndex, Offset, Length + chunk.Length));
        }
Ejemplo n.º 5
0
        public override ILazinator CloneLazinator(IncludeChildrenMode includeChildrenMode = IncludeChildrenMode.IncludeAllChildren, CloneBufferOptions cloneBufferOptions = CloneBufferOptions.IndependentBuffers)
        {
            MemorySegmentCollection clone;

            if (cloneBufferOptions == CloneBufferOptions.NoBuffer)
            {
                clone = new MemorySegmentCollection(includeChildrenMode);
                clone.LazinatorObjectVersion = LazinatorObjectVersion;
                clone = (MemorySegmentCollection)AssignCloneProperties(clone, includeChildrenMode);
            }
            else
            {
                LazinatorMemory bytes = EncodeOrRecycleToNewBuffer(includeChildrenMode, OriginalIncludeChildrenMode, IsDirty, DescendantIsDirty, false, LazinatorMemoryStorage, this);
                clone = new MemorySegmentCollection(bytes);
            }
            return(clone);
        }
Ejemplo n.º 6
0
 public override string ToString()
 {
     return ActiveMemory == null ? "" : String.Join(",", ActiveMemoryWrittenSpan.ToArray()) + " " + MemorySegmentCollection?.ToString();
 }