@Override public void put(Object tuple) { count++; for (int i = sinks.length; i-- > 0;) { sinks[i].put(tuple); } }
protected void forwardToSinks(boolean delay, Object o) { if (!delay) { for (int s = sinks.length; s-- > 0; ) { sinks[s].put(o); } controlTupleCount++; } }
/** * * @param payload */ @Override public void put(Object payload) { count++; for (int i = sinks.length; i-- > 0;) { sinks[i].put(payload); } }
@Override public void put(Object tuple) { super.put(tuple); sink.put(tuple); }
/** * Emit the given object as a payload for downstream operators interested in this port. * * @param tuple payload which needs to be emitted. */ public void emit(T tuple) { verifyOperatorThread(); sink.put(tuple); }
protected void emitEndStream() { logger.info("{} sending EndOfStream", this); /* * since we are going away, we should let all the downstream operators know that. */ EndStreamTuple est = new EndStreamTuple(currentWindowId); for (final Sink<Object> output : outputs.values()) { output.put(est); } controlTupleCount++; }
private void fabricateFirstWindow(Operator.DelayOperator delayOperator, long windowAhead) { Tuple beginWindowTuple = new Tuple(MessageType.BEGIN_WINDOW, windowAhead); Tuple endWindowTuple = new Tuple(MessageType.END_WINDOW, windowAhead); for (Sink<Object> sink : outputs.values()) { sink.put(beginWindowTuple); } controlTupleCount++; delayOperator.firstWindow(); for (Sink<Object> sink : outputs.values()) { sink.put(endWindowTuple); } controlTupleCount++; }
@Override public Tuple sweep() { Object o; final ArrayBlockingQueue<Object> queue = this.queue; final Sink<Object> sink = getSink(); while ((o = queue.peek()) != null) { if (o instanceof Tuple) { return (Tuple)o; } count++; sink.put(queue.poll()); } return null; }
protected void emitEndWindow() { long windowId = (operator instanceof Operator.DelayOperator) ? WindowGenerator.getAheadWindowId(currentWindowId, firstWindowMillis, windowWidthMillis, 1) : currentWindowId; EndWindowTuple ewt = new EndWindowTuple(windowId); for (int s = sinks.length; s-- > 0; ) { sinks[s].put(ewt); } controlTupleCount++; }
@Override public Tuple sweep() { Object o; final SpscArrayQueue<Object> queue = this.queue; final Sink<Object> sink = getSink(); while ((o = queue.peek()) != null) { if (o instanceof Tuple) { return (Tuple)o; } count++; sink.put(queue.poll()); } return null; }
@Override public Tuple sweep() { Object o; final ReentrantLock lock = this.lock; final SpscArrayQueue<Object> queue = getQueue(); final Sink<Object> sink = getSink(); lock.lock(); try { while ((o = queue.peek()) != null) { if (o instanceof Tuple) { return (Tuple)o; } count++; sink.put(queue.poll()); notFull.signal(); if (lock.hasQueuedThreads()) { return null; } } return null; } finally { lock.unlock(); } }
@Override public Tuple sweep() { final CircularBuffer<Object> circularBuffer = this.circularBuffer; final Sink<Object> sink = getSink(); final int size = circularBuffer.size(); for (int i = 0; i < size; i++) { if (circularBuffer.peekUnsafe() instanceof Tuple) { count += i; return (Tuple)peekUnsafe(); } sink.put(pollUnsafe()); } count += size; return null; }
return (Tuple)peekUnsafe(); sink.put(pollUnsafe());
inputPort.getSink().put(toKafka.get(0)); inputPort.getSink().put(toKafka.get(1)); inputPort.getSink().put(toKafka.get(2)); kafkaOutput.endWindow(); kafkaOutput.beginWindow(2); inputPort.getSink().put(toKafka.get(3)); inputPort.getSink().put(toKafka.get(4)); inputPort.getSink().put(toKafka.get(5)); kafkaOutput.endWindow(); kafkaOutput.beginWindow(3); inputPort.getSink().put(toKafka.get(6)); inputPort.getSink().put(toKafka.get(7)); inputPort.getSink().put(toKafka.get(3)); inputPort.getSink().put(toKafka.get(4)); inputPort.getSink().put(toKafka.get(5)); kafkaOutput.endWindow(); kafkaOutput.beginWindow(3); inputPort.getSink().put(toKafka.get(6)); inputPort.getSink().put(toKafka.get(7)); inputPort.getSink().put(toKafka.get(8)); inputPort.getSink().put(toKafka.get(9)); kafkaOutput.endWindow(); kafkaOutput.beginWindow(4); inputPort.getSink().put(toKafka.get(10)); inputPort.getSink().put(toKafka.get(11)); kafkaOutput.endWindow();
} else { for (int s = sinks.length; s-- > 0; ) { sinks[s].put(endWindowTuple);
return (Tuple)peekUnsafe(); sink.put(pollUnsafe());