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); } }
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); } }
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); } }
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); } }