use of org.ballerinalang.siddhi.core.event.Event in project ballerina by ballerina-lang.
the class CronTrigger method sendEvent.
private void sendEvent() {
long currentTime = siddhiAppContext.getTimestampGenerator().currentTime();
if (throughputTracker != null && siddhiAppContext.isStatsEnabled()) {
throughputTracker.eventIn();
}
streamJunction.sendEvent(new Event(currentTime, new Object[] { currentTime }));
}
use of org.ballerinalang.siddhi.core.event.Event in project ballerina by ballerina-lang.
the class PeriodicTrigger method start.
/**
* This will be called only once and this can be used to acquire
* required resources for the processing element.
* This will be called after initializing the system and before
* starting to process the events.
*/
@Override
public void start() {
scheduledFuture = siddhiAppContext.getScheduledExecutorService().scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
long currentTime = siddhiAppContext.getTimestampGenerator().currentTime();
if (throughputTracker != null && siddhiAppContext.isStatsEnabled()) {
throughputTracker.eventIn();
}
streamJunction.sendEvent(new Event(currentTime, new Object[] { currentTime }));
}
}, triggerDefinition.getAtEvery(), triggerDefinition.getAtEvery(), TimeUnit.MILLISECONDS);
}
use of org.ballerinalang.siddhi.core.event.Event in project ballerina by ballerina-lang.
the class StreamJunction method sendData.
private void sendData(long timeStamp, Object[] data) {
// Set timestamp to system if Siddhi is in playback mode
if (siddhiAppContext.isPlayback()) {
((EventTimeBasedMillisTimestampGenerator) this.siddhiAppContext.getTimestampGenerator()).setCurrentTimestamp(timeStamp);
}
if (throughputTracker != null && siddhiAppContext.isStatsEnabled()) {
throughputTracker.eventIn();
}
if (disruptor != null) {
long sequenceNo = ringBuffer.next();
try {
Event existingEvent = ringBuffer.get(sequenceNo);
existingEvent.setTimestamp(timeStamp);
existingEvent.setIsExpired(false);
System.arraycopy(data, 0, existingEvent.getData(), 0, data.length);
} finally {
ringBuffer.publish(sequenceNo);
}
} else {
for (Receiver receiver : receivers) {
receiver.receive(timeStamp, data);
}
}
}
use of org.ballerinalang.siddhi.core.event.Event in project ballerina by ballerina-lang.
the class StreamJunction method sendEvent.
public void sendEvent(Event event) {
if (throughputTracker != null && siddhiAppContext.isStatsEnabled()) {
throughputTracker.eventIn();
}
if (isTraceEnabled) {
log.trace(event + " event is received by streamJunction " + this);
}
if (disruptor != null) {
long sequenceNo = ringBuffer.next();
try {
Event existingEvent = ringBuffer.get(sequenceNo);
existingEvent.copyFrom(event);
} finally {
ringBuffer.publish(sequenceNo);
}
} else {
for (Receiver receiver : receivers) {
receiver.receive(event);
}
}
}
use of org.ballerinalang.siddhi.core.event.Event in project ballerina by ballerina-lang.
the class PassThroughSourceMapper method mapAndProcess.
@Override
protected void mapAndProcess(Object eventObject, InputEventHandler inputEventHandler) throws InterruptedException {
if (eventObject != null) {
if (eventObject instanceof Event[]) {
inputEventHandler.sendEvents((Event[]) eventObject);
} else if (eventObject instanceof Event) {
inputEventHandler.sendEvent((Event) eventObject);
} else if (eventObject instanceof Object[]) {
Event event = new Event(-1, (Object[]) eventObject);
inputEventHandler.sendEvent(event);
} else {
throw new SiddhiAppRuntimeException("Event object must be either Event[], Event or Object[] " + "but found " + eventObject.getClass().getCanonicalName());
}
}
}
Aggregations