示例#1
0
        protected override ILazinator AssignCloneProperties(ILazinator clone, IncludeChildrenMode includeChildrenMode)
        {
            base.AssignCloneProperties(clone, includeChildrenMode);
            LazinatorSortedLinkedList <T> typedClone = (LazinatorSortedLinkedList <T>)clone;

            return(typedClone);
        }
示例#2
0
        private void VerifyCloningEquivalence(ILazinator lazinator, IncludeChildrenMode includeChildrenMode)
        {
            var    clonedWithBuffer       = lazinator.CloneLazinator(includeChildrenMode, CloneBufferOptions.IndependentBuffers);
            var    clonedNoBuffer         = lazinator.CloneLazinator(includeChildrenMode, CloneBufferOptions.NoBuffer);
            string clonedWithBufferString = new HierarchyTree(clonedWithBuffer).ToString();
            string clonedNoBufferString   = new HierarchyTree(clonedNoBuffer).ToString();

            try
            {
                LazinatorUtilities.ConfirmHierarchiesEqual(clonedWithBuffer, clonedNoBuffer);
            }
            catch (Exception ex)
            {
                int i = 0;
                if (clonedNoBuffer.IsStruct)
                {
                    clonedNoBuffer = clonedNoBuffer.CloneLazinator();
                }
                for (; i < Math.Min(clonedWithBuffer.LazinatorMemoryStorage.Length, clonedNoBuffer.LazinatorMemoryStorage.Length); i++)
                {
                    if (clonedWithBuffer.LazinatorMemoryStorage.OnlyMemory.Span[i] != clonedNoBuffer.LazinatorMemoryStorage.OnlyMemory.Span[i])
                    {
                        break;
                    }
                }
                throw new Exception("Verify cloning failed at position " + i + ". See inner exception.", ex);
            }
        }
示例#3
0
        protected override ILazinator AssignCloneProperties(ILazinator clone, IncludeChildrenMode includeChildrenMode)
        {
            base.AssignCloneProperties(clone, includeChildrenMode);
            ConcreteFromGenericFromBase typedClone = (ConcreteFromGenericFromBase)clone;

            return(typedClone);
        }
示例#4
0
        protected override ILazinator AssignCloneProperties(ILazinator clone, IncludeChildrenMode includeChildrenMode)
        {
            base.AssignCloneProperties(clone, includeChildrenMode);
            LazinatorFastReadListInt32 typedClone = (LazinatorFastReadListInt32)clone;

            return(typedClone);
        }
示例#5
0
        protected override ILazinator AssignCloneProperties(ILazinator clone, IncludeChildrenMode includeChildrenMode)
        {
            base.AssignCloneProperties(clone, includeChildrenMode);
            InheritingClosedGeneric typedClone = (InheritingClosedGeneric)clone;

            typedClone.YetAnotherInt = YetAnotherInt;

            return(typedClone);
        }
示例#6
0
        protected override ILazinator AssignCloneProperties(ILazinator clone, IncludeChildrenMode includeChildrenMode)
        {
            base.AssignCloneProperties(clone, includeChildrenMode);
            MemoryBlockInsetLoadingInfo typedClone = (MemoryBlockInsetLoadingInfo)clone;

            typedClone.LoadingOffset = LoadingOffset;

            return(typedClone);
        }
示例#7
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);
        }
示例#8
0
        protected override ILazinator AssignCloneProperties(ILazinator clone, IncludeChildrenMode includeChildrenMode)
        {
            base.AssignCloneProperties(clone, includeChildrenMode);
            Concrete6 typedClone = (Concrete6)clone;

            typedClone.IntList6 = CloneOrChange_List_Gint_g(IntList6, l => l?.CloneLazinator(includeChildrenMode, CloneBufferOptions.NoBuffer), false);

            return(typedClone);
        }
示例#9
0
        protected override ILazinator AssignCloneProperties(ILazinator clone, IncludeChildrenMode includeChildrenMode)
        {
            base.AssignCloneProperties(clone, includeChildrenMode);
            ClosedGeneric typedClone = (ClosedGeneric)clone;

            typedClone.AnotherPropertyAdded = AnotherPropertyAdded;

            return(typedClone);
        }
示例#10
0
        protected override int ConvertFromBytesAfterHeader(IncludeChildrenMode includeChildrenMode, int serializedVersionNumber, ref int bytesSoFar)
        {
            ReadOnlySpan <byte> span = LazinatorMemoryStorage.InitialReadOnlyMemory.Span;

            ConvertFromBytesForPrimitiveProperties(span, includeChildrenMode, serializedVersionNumber, ref bytesSoFar);
            int lengthForLengths  = 0;
            int totalChildrenSize = ConvertFromBytesForChildProperties(span, includeChildrenMode, serializedVersionNumber, bytesSoFar + lengthForLengths, ref bytesSoFar);

            return(bytesSoFar + totalChildrenSize);
        }
示例#11
0
        protected override ILazinator AssignCloneProperties(ILazinator clone, IncludeChildrenMode includeChildrenMode)
        {
            base.AssignCloneProperties(clone, includeChildrenMode);
            Derived_DotNetList_Nested_NonLazinator typedClone = (Derived_DotNetList_Nested_NonLazinator)clone;

            typedClone.MyLevel2Int = MyLevel2Int;
            typedClone.MyLevel2ListNestedNonLazinatorType = CloneOrChange_List_GList_GNonLazinatorClass_g_g(MyLevel2ListNestedNonLazinatorType, l => l?.CloneLazinator(includeChildrenMode, CloneBufferOptions.NoBuffer), false);

            return(typedClone);
        }
示例#12
0
 public WNullableTimeSpan(LazinatorMemory serializedBytes, ILazinator parent = null, IncludeChildrenMode originalIncludeChildrenMode = IncludeChildrenMode.IncludeAllChildren, int?lazinatorObjectVersion = null) : this()
 {
     if (lazinatorObjectVersion != null)
     {
         LazinatorObjectVersion = (int)lazinatorObjectVersion;
     }
     OriginalIncludeChildrenMode = originalIncludeChildrenMode;
     LazinatorParents            = new LazinatorParentsCollection(parent);
     DeserializeLazinator(serializedBytes);
     HasChanged           = false;
     DescendantHasChanged = false;
 }
示例#13
0
 public ContainerForNullableStructInAnotherNamespace(LazinatorMemory serializedBytes, ILazinator parent = null, IncludeChildrenMode originalIncludeChildrenMode = IncludeChildrenMode.IncludeAllChildren, int?lazinatorObjectVersion = null)
 {
     if (lazinatorObjectVersion != null)
     {
         LazinatorObjectVersion = (int)lazinatorObjectVersion;
     }
     OriginalIncludeChildrenMode = originalIncludeChildrenMode;
     LazinatorParents            = new LazinatorParentsCollection(parent);
     DeserializeLazinator(serializedBytes);
     HasChanged           = false;
     DescendantHasChanged = false;
 }
示例#14
0
 public ExampleInterfaceContainer(LazinatorMemory serializedBytes, ILazinator parent = null, IncludeChildrenMode originalIncludeChildrenMode = IncludeChildrenMode.IncludeAllChildren, int?lazinatorObjectVersion = null)
 {
     if (lazinatorObjectVersion != null)
     {
         LazinatorObjectVersion = (int)lazinatorObjectVersion;
     }
     OriginalIncludeChildrenMode = originalIncludeChildrenMode;
     LazinatorParents            = new LazinatorParentsCollection(parent);
     DeserializeLazinator(serializedBytes);
     HasChanged           = false;
     DescendantHasChanged = false;
 }
示例#15
0
 public LazinatorSerializationOptions(IncludeChildrenMode includeChildrenMode, bool verifyCleanness, bool updateStoredBuffer, bool serializeDiffs, int nextBufferThreshold = int.MaxValue, int serializeDiffsThreshold = DefaultSerializeDiffsThreshold)
 {
     IncludeChildrenMode     = includeChildrenMode;
     VerifyCleanness         = verifyCleanness;
     UpdateStoredBuffer      = updateStoredBuffer;
     SerializeDiffs          = serializeDiffs;
     NextBufferThreshold     = nextBufferThreshold;
     SerializeDiffsThreshold = serializeDiffsThreshold;
     if (IncludeChildrenMode != IncludeChildrenMode.IncludeAllChildren && updateStoredBuffer)
     {
         ThrowHelper.ThrowCannotUpdateStoredBuffer();
     }
 }
示例#16
0
        public override ILazinator CloneLazinator(IncludeChildrenMode includeChildrenMode = IncludeChildrenMode.IncludeAllChildren, CloneBufferOptions cloneBufferOptions = CloneBufferOptions.IndependentBuffers)
        {
            LazinatorFastReadListInt32 clone;

            if (cloneBufferOptions == CloneBufferOptions.NoBuffer)
            {
                clone = new LazinatorFastReadListInt32(includeChildrenMode);
                clone = (LazinatorFastReadListInt32)AssignCloneProperties(clone, includeChildrenMode);
            }
            else
            {
                LazinatorMemory bytes = EncodeOrRecycleToNewBuffer(includeChildrenMode, OriginalIncludeChildrenMode, IsDirty, DescendantIsDirty, false, LazinatorMemoryStorage, this);
                clone = new LazinatorFastReadListInt32(bytes);
            }
            return(clone);
        }
示例#17
0
        public override ILazinator CloneLazinator(IncludeChildrenMode includeChildrenMode = IncludeChildrenMode.IncludeAllChildren, CloneBufferOptions cloneBufferOptions = CloneBufferOptions.IndependentBuffers)
        {
            Derived_DotNetList_Nested_NonLazinator clone;

            if (cloneBufferOptions == CloneBufferOptions.NoBuffer)
            {
                clone = new Derived_DotNetList_Nested_NonLazinator(includeChildrenMode);
                clone.LazinatorObjectVersion = LazinatorObjectVersion;
                clone = (Derived_DotNetList_Nested_NonLazinator)AssignCloneProperties(clone, includeChildrenMode);
            }
            else
            {
                LazinatorMemory bytes = EncodeOrRecycleToNewBuffer(includeChildrenMode, OriginalIncludeChildrenMode, IsDirty, DescendantIsDirty, false, LazinatorMemoryStorage, this);
                clone = new Derived_DotNetList_Nested_NonLazinator(bytes);
            }
            return(clone);
        }
示例#18
0
        public override ILazinator CloneLazinator(IncludeChildrenMode includeChildrenMode = IncludeChildrenMode.IncludeAllChildren, CloneBufferOptions cloneBufferOptions = CloneBufferOptions.IndependentBuffers)
        {
            InheritingClosedGeneric clone;

            if (cloneBufferOptions == CloneBufferOptions.NoBuffer)
            {
                clone = new InheritingClosedGeneric(includeChildrenMode);
                clone.LazinatorObjectVersion = LazinatorObjectVersion;
                clone = (InheritingClosedGeneric)AssignCloneProperties(clone, includeChildrenMode);
            }
            else
            {
                LazinatorMemory bytes = EncodeOrRecycleToNewBuffer(includeChildrenMode, OriginalIncludeChildrenMode, IsDirty, DescendantIsDirty, false, LazinatorMemoryStorage, this);
                clone = new InheritingClosedGeneric(bytes);
            }
            return(clone);
        }
示例#19
0
        protected override ILazinator AssignCloneProperties(ILazinator clone, IncludeChildrenMode includeChildrenMode)
        {
            base.AssignCloneProperties(clone, includeChildrenMode);
            LazinatorLocationAwareTree <T> typedClone = (LazinatorLocationAwareTree <T>)clone;

            if (includeChildrenMode != IncludeChildrenMode.ExcludeAllChildren && includeChildrenMode != IncludeChildrenMode.IncludeOnlyIncludableChildren)
            {
                if (Locations == null)
                {
                    typedClone.Locations = null;
                }
                else
                {
                    typedClone.Locations = (LazinatorDictionary <T, LazinatorList <WInt32> >)Locations.CloneLazinator(includeChildrenMode, CloneBufferOptions.NoBuffer);
                }
            }

            return(typedClone);
        }
示例#20
0
        protected override ILazinator AssignCloneProperties(ILazinator clone, IncludeChildrenMode includeChildrenMode)
        {
            base.AssignCloneProperties(clone, includeChildrenMode);
            GenericFromBase <T> typedClone = (GenericFromBase <T>)clone;

            typedClone.MyInt = MyInt;
            if (includeChildrenMode != IncludeChildrenMode.ExcludeAllChildren && includeChildrenMode != IncludeChildrenMode.IncludeOnlyIncludableChildren)
            {
                if (MyT == null)
                {
                    typedClone.MyT = default(T);
                }
                else
                {
                    typedClone.MyT = (T)MyT.CloneLazinator(includeChildrenMode, CloneBufferOptions.NoBuffer);
                }
            }

            return(typedClone);
        }
示例#21
0
        protected override ILazinator AssignCloneProperties(ILazinator clone, IncludeChildrenMode includeChildrenMode)
        {
            base.AssignCloneProperties(clone, includeChildrenMode);
            ExampleChildInherited typedClone = (ExampleChildInherited)clone;

            typedClone.MyInt = MyInt;
            if (includeChildrenMode != IncludeChildrenMode.ExcludeAllChildren && includeChildrenMode != IncludeChildrenMode.IncludeOnlyIncludableChildren)
            {
                if (MyGrandchildInInherited == null)
                {
                    typedClone.MyGrandchildInInherited = null;
                }
                else
                {
                    typedClone.MyGrandchildInInherited = (ExampleGrandchild)MyGrandchildInInherited.CloneLazinator(includeChildrenMode, CloneBufferOptions.NoBuffer);
                }
            }

            return(typedClone);
        }
示例#22
0
 public ExampleInterfaceContainer(IncludeChildrenMode originalIncludeChildrenMode = IncludeChildrenMode.IncludeAllChildren)
 {
     OriginalIncludeChildrenMode = originalIncludeChildrenMode;
 }
示例#23
0
 public DotNetQueue_Lazinator(IncludeChildrenMode originalIncludeChildrenMode = IncludeChildrenMode.IncludeAllChildren)
 {
     OriginalIncludeChildrenMode = originalIncludeChildrenMode;
 }
示例#24
0
 public ContainerForExampleStructWithoutClass(IncludeChildrenMode originalIncludeChildrenMode = IncludeChildrenMode.IncludeAllChildren)
 {
     OriginalIncludeChildrenMode = originalIncludeChildrenMode;
 }
示例#25
0
 public WFloat(IncludeChildrenMode originalIncludeChildrenMode = IncludeChildrenMode.IncludeAllChildren) : this()
 {
     OriginalIncludeChildrenMode = originalIncludeChildrenMode;
 }
示例#26
0
 public TwoByteLengthsContainer(IncludeChildrenMode originalIncludeChildrenMode = IncludeChildrenMode.IncludeAllChildren)
 {
     OriginalIncludeChildrenMode = originalIncludeChildrenMode;
 }
示例#27
0
 public WNullableInt32(IncludeChildrenMode originalIncludeChildrenMode = IncludeChildrenMode.IncludeAllChildren) : this()
 {
     OriginalIncludeChildrenMode = originalIncludeChildrenMode;
 }
示例#28
0
 public RecursiveExample(IncludeChildrenMode originalIncludeChildrenMode = IncludeChildrenMode.IncludeAllChildren)
 {
     OriginalIncludeChildrenMode = originalIncludeChildrenMode;
 }
示例#29
0
 public NonLazinatorInterchangeStruct(IncludeChildrenMode originalIncludeChildrenMode = IncludeChildrenMode.IncludeAllChildren) : this()
 {
     OriginalIncludeChildrenMode = originalIncludeChildrenMode;
 }
示例#30
0
 public ExampleStructContainingStruct(IncludeChildrenMode originalIncludeChildrenMode = IncludeChildrenMode.IncludeAllChildren) : this()
 {
     OriginalIncludeChildrenMode = originalIncludeChildrenMode;
 }