コード例 #1
0
 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();
 }
コード例 #2
0
 public void MarkReassigned()
 {
     deltaType = RefDeltaType.Reassigned;
     if (base.Root != null)
     {
         reassigned.Set(base.Root.Clock.netVersion);
     }
     MarkDirty();
 }
コード例 #3
0
 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();
     }
 }
コード例 #4
0
 protected override void CleanImpl()
 {
     base.CleanImpl();
     deltaType = RefDeltaType.ChildDelta;
 }