public void Fire(RdTextChange value) { Assertion.Assert(Delegate.IsBound || BufferVersion == TextBufferVersion.InitVersion, "Delegate.IsBound || BufferVersion == TextBufferVersion.InitVersion"); if (Delegate.IsBound) { Proto.Scheduler.AssertThread(); } BufferVersion = IsMaster ? BufferVersion.IncrementMaster() : BufferVersion.IncrementSlave(); var ts = GetCurrentTs(); var operation = value.ToOperation(LocalOrigin, ts); switch (operation.Kind) { case OtOperationKind.Normal: myDiff.Add(operation); break; case OtOperationKind.Reset: myDiff = new List <OtOperation>(); break; default: throw new ArgumentOutOfRangeException(); } SendOperation(operation); }
private void IncrementBufferVersion() { BufferVersion = IsMaster ? BufferVersion.IncrementMaster() : BufferVersion.IncrementSlave(); }