示例#1
0
 private void TranslateAndPublish(IEventTranslator <TEvent> translator, long sequence)
 {
     try
     {
         translator.TranslateTo(Get(sequence), sequence);
     }
     finally
     {
         Sequencer.Publish(sequence);
     }
 }
示例#2
0
 private void TranslateAndPublish(IEventTranslator <T> translator, long sequence)
 {
     try
     {
         translator.TranslateTo(this[sequence], sequence);
     }
     finally
     {
         _fields.Sequencer.Publish(sequence);
     }
 }
示例#3
0
        private void TranslateAndPublishBatch(IEventTranslator <T>[] translators, 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++)
                {
                    IEventTranslator <T> translator = translators[i];
                    translator.TranslateTo(this[sequence], sequence++);
                }
            }
            finally
            {
                _sequencerDispatcher.Sequencer.Publish(initialSequence, finalSequence);
            }
        }