gpt4 book ai didi

org.apache.druid.java.util.common.guava.Yielder类的使用及代码示例

转载 作者:知者 更新时间:2024-03-15 11:06:40 25 4
gpt4 key购买 nike

本文整理了Java中org.apache.druid.java.util.common.guava.Yielder类的一些代码示例,展示了Yielder类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Yielder类的具体详情如下:
包路径:org.apache.druid.java.util.common.guava.Yielder
类名称:Yielder

Yielder介绍

[英]A Yielder is an object that tries to act like the yield() command/continuations in other languages. It's not necessarily good at this job, but it works. I think. Essentially, you can think of a Yielder as a linked list of items where the Yielder gives you access to the current head via get() and it will give you another Yielder representing the next item in the chain via next(). A Yielder that isDone() may return anything from both get() and next(), there is no contract and depending on those return values will likely lead to bugs. Once next is called, there is no guarantee and no requirement that references to old Yielder objects will continue to obey the contract. Yielders are Closeable and must be closed in order to prevent resource leaks. Once close() is called, the behavior of the whole chain of Yielders is undefined.
[中]

代码示例

代码示例来源:origin: apache/incubator-druid

@Override
 public void serialize(Yielder yielder, final JsonGenerator jgen, SerializerProvider provider)
   throws IOException
 {
  try {
   jgen.writeStartArray();
   while (!yielder.isDone()) {
    final Object o = yielder.get();
    jgen.writeObject(o);
    yielder = yielder.next(null);
   }
   jgen.writeEndArray();
  }
  finally {
   yielder.close();
  }
 }
}

代码示例来源:origin: apache/incubator-druid

@Override
public Yielder<OutType> next(OutType initValue)
{
 combiningAccumulator.reset();
 return makeYielder(
   finalYielder == null ? yielder.next(yielder.get()) : finalYielder,
   combiningAccumulator,
   finalFinalValue
 );
}

代码示例来源:origin: apache/incubator-druid

OutType nextInit = yielder.get();
try {
 yielder.close();
return makeYielder(yielderYielder.next(null), nextInit, accumulator);

代码示例来源:origin: apache/incubator-druid

public Meta.Frame nextFrame(final long fetchOffset, final int fetchMaxRowCount)
{
 synchronized (lock) {
  ensure(State.RUNNING);
  Preconditions.checkState(fetchOffset == offset, "fetchOffset[%,d] != offset[%,d]", fetchOffset, offset);
  try {
   final List<Object> rows = new ArrayList<>();
   while (!yielder.isDone() && (fetchMaxRowCount < 0 || offset < fetchOffset + fetchMaxRowCount)) {
    rows.add(yielder.get());
    yielder = yielder.next(null);
    offset++;
   }
   final boolean done = yielder.isDone();
   if (done) {
    close();
   }
   return new Meta.Frame(fetchOffset, done, rows);
  }
  catch (Throwable t) {
   this.throwable = t;
   try {
    close();
   }
   catch (Throwable t1) {
    t.addSuppressed(t1);
   }
   throw t;
  }
 }
}

代码示例来源:origin: apache/incubator-druid

@Override
 public void close() throws IOException
 {
  yielder.close();
 }
};

代码示例来源:origin: apache/incubator-druid

@Override
public T get()
{
 return baseYielder.get();
}

代码示例来源:origin: apache/incubator-druid

@Override
 public Yielder<T> accumulate(Yielder<T> accumulated, Sequence<T> in)
 {
  final Yielder<T> retVal = in.toYielder(
    null,
    new YieldingAccumulator<T, T>()
    {
     @Override
     public T accumulate(T accumulated, T in)
     {
      yield();
      return in;
     }
    }
  );
  if (retVal.isDone()) {
   try {
    retVal.close();
   }
   catch (IOException e) {
    throw Throwables.propagate(e);
   }
   return null;
  } else {
   yield();
  }
  return retVal;
 }
}

代码示例来源:origin: apache/incubator-druid

@Override
public boolean hasNext()
{
 return !yielder.isDone() && count < limit;
}

代码示例来源:origin: apache/incubator-druid

@Override
public Yielder<OutType> next(OutType initValue)
{
 return wrapYielder(yielder.next(initValue), accumulator);
}

代码示例来源:origin: apache/incubator-druid

Assert.assertEquals(9, yielder.get().intValue());
yielder.close();
Assert.assertEquals(2, closedCount[0]);

代码示例来源:origin: apache/incubator-druid

private void check(String expected, Sequence<Integer> complex)
{
 List<Integer> combined = complex.toList();
 Assert.assertEquals(expected, combined.toString());
 Yielder<Integer> yielder = complex.toYielder(
   null,
   new YieldingAccumulator<Integer, Integer>()
   {
    @Override
    public Integer accumulate(Integer accumulated, Integer in)
    {
     yield();
     return in;
    }
   }
 );
 List<Integer> combinedByYielder = new ArrayList<>();
 while (!yielder.isDone()) {
  combinedByYielder.add(yielder.get());
  yielder = yielder.next(null);
 }
 Assert.assertEquals(expected, combinedByYielder.toString());
}

代码示例来源:origin: apache/incubator-druid

@Nullable
@Override
public InputRow nextRow()
{
 final InputRow inputRow = rowYielder.get();
 rowYielder = rowYielder.next(null);
 return transformer.transform(inputRow);
}

代码示例来源:origin: apache/incubator-druid

@Override
public void close() throws IOException
{
 rowYielder.close();
}

代码示例来源:origin: org.apache.druid/java-util

OutType nextInit = yielder.get();
try {
 yielder.close();
return makeYielder(yielderYielder.next(null), nextInit, accumulator);

代码示例来源:origin: apache/incubator-druid

@Override
 public T apply(Yielder<T> input)
 {
  return input.get();
 }
}

代码示例来源:origin: apache/incubator-druid

if (!yielder.isDone()) {
 queue.add(yielder);
} else {
 try {
  yielder.close();

代码示例来源:origin: apache/incubator-druid

@Override
public boolean hasMore()
{
 return !rowYielder.isDone();
}

代码示例来源:origin: apache/incubator-druid

@Override
public Yielder<OutType> next(OutType initValue)
{
 return wrapYielder(yielder.next(initValue), yielderYielder, accumulator);
}

代码示例来源:origin: apache/incubator-druid

public <OutType> Yielder<OutType> makeYielder(
  Yielder<Sequence<T>> yielderYielder,
  OutType initValue,
  YieldingAccumulator<OutType, T> accumulator
)
{
 while (!yielderYielder.isDone()) {
  Yielder<OutType> yielder = yielderYielder.get().toYielder(initValue, accumulator);
  if (accumulator.yielded()) {
   return wrapYielder(yielder, yielderYielder, accumulator);
  }
  initValue = yielder.get();
  try {
   yielder.close();
  }
  catch (IOException e) {
   throw Throwables.propagate(e);
  }
  yielderYielder = yielderYielder.next(null);
 }
 return Yielders.done(initValue, yielderYielder);
}

代码示例来源:origin: org.apache.druid/druid-sql

public Meta.Frame nextFrame(final long fetchOffset, final int fetchMaxRowCount)
{
 synchronized (lock) {
  ensure(State.RUNNING);
  Preconditions.checkState(fetchOffset == offset, "fetchOffset[%,d] != offset[%,d]", fetchOffset, offset);
  try {
   final List<Object> rows = new ArrayList<>();
   while (!yielder.isDone() && (fetchMaxRowCount < 0 || offset < fetchOffset + fetchMaxRowCount)) {
    rows.add(yielder.get());
    yielder = yielder.next(null);
    offset++;
   }
   final boolean done = yielder.isDone();
   if (done) {
    close();
   }
   return new Meta.Frame(fetchOffset, done, rows);
  }
  catch (Throwable t) {
   try {
    close();
   }
   catch (Throwable t1) {
    t.addSuppressed(t1);
   }
   throw t;
  }
 }
}

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com