use of org.wso2.siddhi.core.event.stream.StreamEvent in project siddhi by wso2.
the class ProcessStreamReceiver method receive.
@Override
public void receive(ComplexEvent complexEvents) {
if (siddhiDebugger != null) {
siddhiDebugger.checkBreakPoint(queryName, SiddhiDebugger.QueryTerminal.IN, complexEvents);
}
StreamEvent firstEvent = streamEventPool.borrowEvent();
streamEventConverter.convertComplexEvent(complexEvents, firstEvent);
StreamEvent currentEvent = firstEvent;
complexEvents = complexEvents.getNext();
while (complexEvents != null) {
StreamEvent nextEvent = streamEventPool.borrowEvent();
streamEventConverter.convertComplexEvent(complexEvents, nextEvent);
currentEvent.setNext(nextEvent);
currentEvent = nextEvent;
complexEvents = complexEvents.getNext();
}
process(new ComplexEventChunk<StreamEvent>(firstEvent, currentEvent, this.batchProcessingAllowed));
}
use of org.wso2.siddhi.core.event.stream.StreamEvent in project siddhi by wso2.
the class ProcessStreamReceiver method receive.
@Override
public void receive(long timestamp, Object[] data) {
StreamEvent borrowedEvent = streamEventPool.borrowEvent();
streamEventConverter.convertData(timestamp, data, borrowedEvent);
// Send to debugger
if (siddhiDebugger != null) {
siddhiDebugger.checkBreakPoint(queryName, SiddhiDebugger.QueryTerminal.IN, borrowedEvent);
}
process(new ComplexEventChunk<StreamEvent>(borrowedEvent, borrowedEvent, this.batchProcessingAllowed));
}
use of org.wso2.siddhi.core.event.stream.StreamEvent in project siddhi by wso2.
the class JoinProcessor method joinEventBuilder.
/**
* Join the given two event streams.
*
* @param leftStream event left stream
* @param rightStream event right stream
* @param type complex event type
* @return StateEvent state event
*/
public StateEvent joinEventBuilder(StreamEvent leftStream, StreamEvent rightStream, ComplexEvent.Type type) {
StateEvent returnEvent = stateEventPool.borrowEvent();
returnEvent.setEvent(0, leftStream);
returnEvent.setEvent(1, rightStream);
returnEvent.setType(type);
if (!leftJoinProcessor) {
returnEvent.setTimestamp(rightStream.getTimestamp());
} else {
returnEvent.setTimestamp(leftStream.getTimestamp());
}
return returnEvent;
}
use of org.wso2.siddhi.core.event.stream.StreamEvent in project siddhi by wso2.
the class PartitionStreamReceiver method receive.
@Override
public void receive(Event[] events) {
if (partitionExecutors.size() == 0) {
StreamEvent currentEvent;
StreamEvent firstEvent = eventPool.borrowEvent();
streamEventConverter.convertEvent(events[0], firstEvent);
currentEvent = firstEvent;
for (int i = 1; i < events.length; i++) {
StreamEvent nextEvent = eventPool.borrowEvent();
streamEventConverter.convertEvent(events[i], nextEvent);
currentEvent.setNext(nextEvent);
currentEvent = nextEvent;
}
send(firstEvent);
eventPool.returnEvents(firstEvent);
} else {
String key = null;
StreamEvent firstEvent = null;
StreamEvent currentEvent = null;
for (Event event : events) {
StreamEvent nextEvent = eventPool.borrowEvent();
streamEventConverter.convertEvent(event, nextEvent);
for (PartitionExecutor partitionExecutor : partitionExecutors) {
String currentKey = partitionExecutor.execute(nextEvent);
if (currentKey != null) {
if (key == null) {
key = currentKey;
firstEvent = nextEvent;
} else if (!currentKey.equals(key)) {
send(key, firstEvent);
eventPool.returnEvents(firstEvent);
key = currentKey;
firstEvent = nextEvent;
} else {
currentEvent.setNext(nextEvent);
}
currentEvent = nextEvent;
}
}
}
send(key, firstEvent);
eventPool.returnEvents(firstEvent);
}
}
use of org.wso2.siddhi.core.event.stream.StreamEvent in project siddhi by wso2.
the class AbsentLogicalPostStateProcessor method process.
protected void process(StateEvent stateEvent, ComplexEventChunk complexEventChunk) {
// Mark the state changed
thisStatePreProcessor.stateChanged();
// Update the timestamp
StreamEvent streamEvent = stateEvent.getStreamEvent(stateId);
// This is the notification to AbsentStreamPreStateProcessor that this event has been processed
this.isEventReturned = true;
((AbsentPreStateProcessor) thisStatePreProcessor).updateLastArrivalTime(streamEvent.getTimestamp());
}
Aggregations