com.fasterxml.aalto.AsyncXMLStreamReader.getInputFeeder()方法的使用及代码示例

x33g5p2x  于2022-01-17 转载在 其他  
字(6.3k)|赞(0)|评价(0)|浏览(64)

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

AsyncXMLStreamReader.getInputFeeder介绍

[英]Method used to access AsyncInputFeeder which is used to provide XML content to parse in non-blocking manner (see AsyncInputFeeder for more details).
[中]用于访问AsyncInputFeeder的方法,该方法用于以非阻塞方式提供要解析的XML内容(有关更多详细信息,请参阅AsyncInputFeeder)。

代码示例

代码示例来源:origin: spring-projects/spring-framework

public void endOfInput() {
    this.streamReader.getInputFeeder().endOfInput();
  }
}

代码示例来源:origin: org.springframework/spring-web

public void endOfInput() {
    this.streamReader.getInputFeeder().endOfInput();
  }
}

代码示例来源:origin: spring-projects/spring-framework

@Override
public Publisher<? extends XMLEvent> apply(DataBuffer dataBuffer) {
  try {
    this.streamReader.getInputFeeder().feedInput(dataBuffer.asByteBuffer());
    List<XMLEvent> events = new ArrayList<>();
    while (true) {
      if (this.streamReader.next() == AsyncXMLStreamReader.EVENT_INCOMPLETE) {
        // no more events with what currently has been fed to the reader
        break;
      }
      else {
        XMLEvent event = this.eventAllocator.allocate(this.streamReader);
        events.add(event);
        if (event.isEndDocument()) {
          break;
        }
      }
    }
    return Flux.fromIterable(events);
  }
  catch (XMLStreamException ex) {
    return Mono.error(ex);
  }
  finally {
    DataBufferUtils.release(dataBuffer);
  }
}

代码示例来源:origin: org.springframework/spring-web

@Override
public Publisher<? extends XMLEvent> apply(DataBuffer dataBuffer) {
  try {
    this.streamReader.getInputFeeder().feedInput(dataBuffer.asByteBuffer());
    List<XMLEvent> events = new ArrayList<>();
    while (true) {
      if (this.streamReader.next() == AsyncXMLStreamReader.EVENT_INCOMPLETE) {
        // no more events with what currently has been fed to the reader
        break;
      }
      else {
        XMLEvent event = this.eventAllocator.allocate(this.streamReader);
        events.add(event);
        if (event.isEndDocument()) {
          break;
        }
      }
    }
    return Flux.fromIterable(events);
  }
  catch (XMLStreamException ex) {
    return Mono.error(ex);
  }
  finally {
    DataBufferUtils.release(dataBuffer);
  }
}

代码示例来源:origin: apache/servicemix-bundles

public void endOfInput() {
    this.streamReader.getInputFeeder().endOfInput();
  }
}

代码示例来源:origin: org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-web

public void endOfInput() {
    this.streamReader.getInputFeeder().endOfInput();
  }
}

代码示例来源:origin: georocket/georocket

/**
 * Create a new parser that feeds the given buffer into {@link #parser} and
 * iterates over generated events
 * @param buf the buffer to feed
 */
public StreamEventIterator(Buffer buf) {
 byte[] bytes = buf.getBytes();
 try {
  parser.getInputFeeder().feedInput(bytes, 0, bytes.length);
 } catch (XMLStreamException e) {
  throw new IllegalStateException("Could not feed input", e);
 }
}

代码示例来源:origin: stackoverflow.com

byte[] msg = "<html>Very <b>simple</b> input document!</html>".getBytes();
  AsyncXMLStreamReader asyncReader = new InputFactoryImpl().createAsyncXMLStreamReader();
  final AsyncInputFeeder feeder = asyncReader.getInputFeeder();
  int inputPtr = 0; // as we feed byte at a time
  int type = 0;
  do {
   // May need to feed multiple "segments"
   while ((type = asyncReader.next()) == AsyncXMLStreamReader.EVENT_INCOMPLETE) {
    feeder.feedInput(msg, inputPtr++, 1);
    if (inputPtr >= msg.length) { // to indicate end-of-content (important for error handling)
     feeder.endOfInput();
    }
   }
   // and once we have full event, we just dump out event type (for now)
   System.out.println("Got event of type: "+type);
   // could also just copy event as is, using Stax, or do any other normal non-blocking handling:
   // xmlStreamWriter.copyEventFromReader(asyncReader, false);
  } while (type != AsyncXMLStreamReader.END_DOCUMENT);

代码示例来源:origin: georocket/georocket

@Override
public Observable<XMLStreamEvent> call(Observable<Buffer> o) {
 return o
  // first, convert all buffers to XML events
  .flatMap(buf -> Observable.from(() -> new StreamEventIterator(buf)))
  // finally, close the parser and process remaining events
  .concatWith(Observable.from(() -> {
   parser.getInputFeeder().endOfInput();
   return new StreamEventIterator();
  }));
}

代码示例来源:origin: xose/netty-xmpp

@Override
protected Object decode(ChannelHandlerContext ctx, Channel channel, ChannelBuffer buffer) throws Exception {
  final List<XMLEvent> result = new ArrayList<XMLEvent>();
  byte[] chunk = new byte[buffer.readableBytes()];
  buffer.readBytes(chunk);
  
  reader.getInputFeeder().feedInput(chunk, 0, chunk.length);
  while (reader.hasNext() && reader.next() != AsyncXMLStreamReader.EVENT_INCOMPLETE) {
    result.add(allocator.allocate(reader));
  }
  return result;
}

代码示例来源:origin: org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-web

@Override
public Publisher<? extends XMLEvent> apply(DataBuffer dataBuffer) {
  try {
    this.streamReader.getInputFeeder().feedInput(dataBuffer.asByteBuffer());
    List<XMLEvent> events = new ArrayList<>();
    while (true) {
      if (this.streamReader.next() == AsyncXMLStreamReader.EVENT_INCOMPLETE) {
        // no more events with what currently has been fed to the reader
        break;
      }
      else {
        XMLEvent event = this.eventAllocator.allocate(this.streamReader);
        events.add(event);
        if (event.isEndDocument()) {
          break;
        }
      }
    }
    return Flux.fromIterable(events);
  }
  catch (XMLStreamException ex) {
    return Mono.error(ex);
  }
  finally {
    DataBufferUtils.release(dataBuffer);
  }
}

代码示例来源:origin: apache/servicemix-bundles

@Override
public Publisher<? extends XMLEvent> apply(DataBuffer dataBuffer) {
  try {
    this.streamReader.getInputFeeder().feedInput(dataBuffer.asByteBuffer());
    List<XMLEvent> events = new ArrayList<>();
    while (true) {
      if (this.streamReader.next() == AsyncXMLStreamReader.EVENT_INCOMPLETE) {
        // no more events with what currently has been fed to the reader
        break;
      }
      else {
        XMLEvent event = this.eventAllocator.allocate(this.streamReader);
        events.add(event);
        if (event.isEndDocument()) {
          break;
        }
      }
    }
    return Flux.fromIterable(events);
  }
  catch (XMLStreamException ex) {
    return Mono.error(ex);
  }
  finally {
    DataBufferUtils.release(dataBuffer);
  }
}

代码示例来源:origin: rocks.xmpp/xmpp-nio-codec

xmlStreamReader.getInputFeeder().feedInput(in);
int type;
while ((type = xmlStreamReader.next()) != XMLStreamConstants.END_DOCUMENT && type != AsyncXMLStreamReader.EVENT_INCOMPLETE) {

代码示例来源:origin: georocket/georocket

xmlInputFactory.createAsyncForByteArray();
byte[] xmlBytes = xml.getBytes(StandardCharsets.UTF_8);
reader.getInputFeeder().feedInput(xmlBytes, 0, xmlBytes.length);
FirstLevelSplitter splitter = new FirstLevelSplitter(window);
List<Result<XMLChunkMeta>> chunks = new ArrayList<>();

相关文章

微信公众号

最新文章

更多