コード例 #1
0
ファイル: RingBuffer.cs プロジェクト: zzms/Disruptor-net
 private void TranslateAndPublish <A, B>(IEventTranslatorTwoArg <T, A, B> translator, long sequence, A arg0, B arg1)
 {
     try
     {
         translator.TranslateTo(this[sequence], sequence, arg0, arg1);
     }
     finally
     {
         _fields.Sequencer.Publish(sequence);
     }
 }
コード例 #2
0
ファイル: RingBuffer.cs プロジェクト: lichunhui811217/MDA
 private void TranslateAndPublish <TArg0, TArg1>(
     IEventTranslatorTwoArg <TEvent, TArg0, TArg1> translator,
     long sequence, TArg0 arg0,
     TArg1 arg1)
 {
     try
     {
         translator.TranslateTo(Get(sequence), sequence, arg0, arg1);
     }
     finally
     {
         Sequencer.Publish(sequence);
     }
 }
コード例 #3
0
ファイル: RingBuffer.cs プロジェクト: zzms/Disruptor-net
        private void TranslateAndPublishBatch <A, B>(IEventTranslatorTwoArg <T, A, B> translator, A[] arg0,
                                                     B[] arg1, int batchStartsAt, int batchSize,
                                                     long finalSequence)
        {
            long initialSequence = finalSequence - (batchSize - 1);

            try
            {
                long sequence    = initialSequence;
                int  batchEndsAt = batchStartsAt + batchSize;
                for (int i = batchStartsAt; i < batchEndsAt; i++)
                {
                    translator.TranslateTo(this[sequence], sequence++, arg0[i], arg1[i]);
                }
            }
            finally
            {
                _fields.Sequencer.Publish(initialSequence, finalSequence);
            }
        }
コード例 #4
0
ファイル: RingBuffer.cs プロジェクト: lichunhui811217/MDA
        private void TranslateAndPublishBatch <TArg0, TArg1>(
            IEventTranslatorTwoArg <TEvent, TArg0, TArg1> translator,
            TArg0[] arg0, TArg1[] arg1,
            int batchStartsAt, int batchSize,
            long finalSequence)
        {
            var initialSequence = finalSequence - (batchSize - 1);

            try
            {
                var sequence    = initialSequence;
                var batchEndsAt = batchStartsAt + batchSize;
                for (int i = batchStartsAt; i < batchEndsAt; i++)
                {
                    translator.TranslateTo(Get(sequence), sequence++, arg0[i], arg1[i]);
                }
            }
            finally
            {
                Sequencer.Publish(initialSequence, finalSequence);
            }
        }