Exemple #1
0
        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);
        }
Exemple #2
0
 private void IncrementBufferVersion()
 {
     BufferVersion = IsMaster ? BufferVersion.IncrementMaster() : BufferVersion.IncrementSlave();
 }