use of org.wso2.siddhi.query.api.execution.query.input.handler.StreamHandler in project siddhi by wso2.
the class StreamJunction method startProcessing.
/**
* Create and start disruptor based on annotations given in the streamDefinition.
*/
public synchronized void startProcessing() {
if (!receivers.isEmpty() && async) {
for (Constructor constructor : Disruptor.class.getConstructors()) {
if (constructor.getParameterTypes().length == 5) {
// If new disruptor classes available
ProducerType producerType = ProducerType.MULTI;
disruptor = new Disruptor<Event>(new SiddhiEventFactory(streamDefinition.getAttributeList().size()), bufferSize, executorService, producerType, new BlockingWaitStrategy());
disruptor.handleExceptionsWith(siddhiAppContext.getDisruptorExceptionHandler());
break;
}
}
if (disruptor == null) {
disruptor = new Disruptor<Event>(new SiddhiEventFactory(streamDefinition.getAttributeList().size()), bufferSize, executorService);
disruptor.handleExceptionsWith(siddhiAppContext.getDisruptorExceptionHandler());
}
for (Receiver receiver : receivers) {
disruptor.handleEventsWith(new StreamHandler(receiver));
}
ringBuffer = disruptor.start();
} else {
for (Receiver receiver : receivers) {
if (receiver instanceof StreamCallback) {
((StreamCallback) receiver).startProcessing();
}
}
}
}
use of org.wso2.siddhi.query.api.execution.query.input.handler.StreamHandler in project siddhi by wso2.
the class SiddhiQLBaseVisitorImpl method visitBasic_source.
/**
* {@inheritDoc}
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*
* @param ctx
*/
@Override
public BasicSingleInputStream visitBasic_source(@NotNull SiddhiQLParser.Basic_sourceContext ctx) {
// basic_source
// : io (basic_source_stream_handler)*
// ;
Source source = (Source) visit(ctx.source());
BasicSingleInputStream basicSingleInputStream = new BasicSingleInputStream(null, source.streamId, source.isInnerStream);
if (ctx.basic_source_stream_handlers() != null) {
basicSingleInputStream.addStreamHandlers((List<StreamHandler>) visit(ctx.basic_source_stream_handlers()));
}
populateQueryContext(basicSingleInputStream, ctx);
return basicSingleInputStream;
}
Aggregations