All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.lmax.disruptor.dsl.EventProcessorInfo Maven / Gradle / Ivy

There is a newer version: 1.49.0
Show newest version
/*
 * Copyright 2011 LMAX Ltd.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.lmax.disruptor.dsl;

import com.lmax.disruptor.EventHandler;
import com.lmax.disruptor.EventProcessor;
import com.lmax.disruptor.Sequence;
import com.lmax.disruptor.SequenceBarrier;

import java.util.concurrent.Executor;

/**
 * 

Wrapper class to tie together a particular event processing stage

*

*

Tracks the event processor instance, the event handler instance, and sequence barrier which the stage is attached to.

* * @param the type of the configured {@link EventHandler} */ class EventProcessorInfo implements ConsumerInfo { private final EventProcessor eventprocessor; private final EventHandler handler; private final SequenceBarrier barrier; private boolean endOfChain = true; EventProcessorInfo( final EventProcessor eventprocessor, final EventHandler handler, final SequenceBarrier barrier) { this.eventprocessor = eventprocessor; this.handler = handler; this.barrier = barrier; } public EventProcessor getEventProcessor() { return eventprocessor; } @Override public Sequence[] getSequences() { return new Sequence[]{eventprocessor.getSequence()}; } public EventHandler getHandler() { return handler; } @Override public SequenceBarrier getBarrier() { return barrier; } @Override public boolean isEndOfChain() { return endOfChain; } @Override public void start(final Executor executor) { executor.execute(eventprocessor); } @Override public void halt() { eventprocessor.halt(); } /** * */ @Override public void markAsUsedInBarrier() { endOfChain = false; } @Override public boolean isRunning() { return eventprocessor.isRunning(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy