protected override void WriteDelta(BinaryWriter writer) { writer.Push((targetValue != null) ? targetValue.GetType().Name : "null"); writer.Write((byte)deltaType); if (deltaType == RefDeltaType.Reassigned) { writer.WriteSkippable(delegate { reassigned.Write(writer); writeBaseValue(writer); if (targetValue != null) { WriteValueFull(writer); } }); } else { writer.WriteSkippable(delegate { if (targetValue != null) { WriteValueDelta(writer); } }); } deltaType = RefDeltaType.ChildDelta; writer.Pop(); }
public void MarkReassigned() { deltaType = RefDeltaType.Reassigned; if (base.Root != null) { reassigned.Set(base.Root.Clock.netVersion); } MarkDirty(); }
public override void Set(T newValue) { if (newValue != base.Value) { deltaType = RefDeltaType.Reassigned; if (base.Root != null) { reassigned.Set(base.Root.Clock.netVersion); } cleanSet(newValue); MarkDirty(); } }
protected override void CleanImpl() { base.CleanImpl(); deltaType = RefDeltaType.ChildDelta; }