public IoTasksDispatchCoroutine( final CoroutinesProcessor coroutinesProcessor, final StorageDriverBase<I, O> storageDriver, final BlockingQueue<O> inTasksQueue, final BlockingQueue<O> childTasksQueue, final String stepId, final int batchSize ) { this( coroutinesProcessor, new OptLockArrayBuffer<>(batchSize), storageDriver, inTasksQueue, childTasksQueue, stepId, batchSize ); }
@Override public void set(final E e) throws IndexOutOfBoundsException { buff.set(i, e); }
@Override public final E previous() { if(hasPrevious()) { return buff.get(-- i); } else { throw new NoSuchElementException(); } }
protected ListIteratorImpl(final CircularBuffer<E> buff, final int startIndex) { this.buff = buff; this.size = buff.size(); this.startIndex = startIndex; this.i = startIndex; }
@Override public final boolean add(final E e) { if(isEmpty()) { array[offset] = e; end = increaseIndex(offset, 1); return true; } else if(size() < capacity) { array[end] = e; end = increaseIndex(end, 1); return true; } else { return false; } }
@Override public final E next() { try { return buff.get(i ++); } catch(final IndexOutOfBoundsException e) { throw new NoSuchElementException(); } }
@Override public final Range deserialize(final JsonParser p, final DeserializationContext ctx) throws IOException, JsonProcessingException { return new Range(p.getValueAsString()); } }
@Override protected final void doClose() throws IOException { deferredItems.clear(); } }
@Override protected void doClose() throws IOException { itemsBuff.clear(); } }
public TransferFiber( final FibersExecutor executor, final Input<T> input, final Output<T> output, final int capacity ) { this(executor, new CircularArrayBuffer<>(capacity), input, output); }
@Override public E get(final int i) { if(isEmpty()) { throw new IndexOutOfBoundsException(); } return array[translateIndex(i)]; }
@Override public ListIterator<E> listIterator() { return new ListIteratorImpl<>(this, 0); }
public TransferFiber( final FibersExecutor executor, final CircularBuffer<T> itemsBuff, final Input<T> input, final Output<T> output ) { super(executor); this.input = input; this.output = output; this.itemsBuff = itemsBuff; this.capacity = itemsBuff.capacity(); }
@Override public final int size() { if(isEmpty()) { return 0; } else if(offset < end) { return end - offset; } else { return capacity + end - offset; } }
@Override public final void serialize( final Range value, final JsonGenerator gen, final SerializerProvider serializers ) throws IOException { gen.writeString(value.toString()); } }
private TransferCoroutine( final CoroutinesExecutor executor, final OptLockBuffer<T> deferredItems, final Input<T> input, final Output<T> output, final int batchSize ) { super(executor, deferredItems); this.input = input; this.output = output; this.deferredItems = new OptLockArrayBuffer<>(batchSize); this.batchSize = batchSize; }
@Override protected final void doClose() { buff.clear(); } }
@Override public ListIterator<E> listIterator(final int i) { return new ListIteratorImpl<>(this, i); }
@Override public Iterator<E> iterator() { return new ListIteratorImpl<>(this, 0); }