当前位置: 首页>>代码示例>>Java>>正文


Java PooledByteBuffer类代码示例

本文整理汇总了Java中io.undertow.connector.PooledByteBuffer的典型用法代码示例。如果您正苦于以下问题:Java PooledByteBuffer类的具体用法?Java PooledByteBuffer怎么用?Java PooledByteBuffer使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


PooledByteBuffer类属于io.undertow.connector包,在下文中一共展示了PooledByteBuffer类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: test

import io.undertow.connector.PooledByteBuffer; //导入依赖的package包/类
@Test
public void test() throws Exception {
	ByteBufferPool byteBufferPool = new DefaultByteBufferPool(true, 2, -1, 4);
	PooledByteBufferOutputStream output = new PooledByteBufferOutputStream(byteBufferPool);

	String hello = "hello, 世界!";
	output.write(hello);
	output.flip();

	PooledByteBuffer[] buffers = output.getPooledByteBuffers();

	try (PooledByteBufferInputStream input = new PooledByteBufferInputStream(buffers);) {
		byte[] bytes = new byte[input.available()];
		input.read(bytes);
		String str = new String(bytes, "UTF-8");

		assertEquals(hello, str);
	}

	output.release();
	output.close();
}
 
开发者ID:hank-whu,项目名称:undertow-async,代码行数:23,代码来源:IOTest.java

示例2: sendNoIoThread2Chunks

import io.undertow.connector.PooledByteBuffer; //导入依赖的package包/类
@Test
public void sendNoIoThread2Chunks() throws Exception {
  new MockUnit(ReadableByteChannel.class, HttpServerExchange.class, IoCallback.class,
      Sender.class, PooledByteBuffer.class)
      .expect(exchange)
      .expect(noIoThread)
      .expect(pooled)
      .expect(readLargeChunk)
      .expect(transferEncoding)
      .expect(sendChunk)
      .expect(noIoThread)
      .expect(pooled)
      .expect(readChunk)
      .expect(sendChunk)
      .run(unit -> {
        ChunkedStream chunkedStream = new ChunkedStream();
        chunkedStream.send(unit.get(ReadableByteChannel.class),
            unit.get(HttpServerExchange.class), unit.get(IoCallback.class));
        chunkedStream.onComplete(unit.get(HttpServerExchange.class), unit.get(Sender.class));
      });
}
 
开发者ID:jooby-project,项目名称:jooby,代码行数:22,代码来源:ChunkedStreamTest.java

示例3: sendNoIoThread2ChunksWithLen

import io.undertow.connector.PooledByteBuffer; //导入依赖的package包/类
@Test
public void sendNoIoThread2ChunksWithLen() throws Exception {
  new MockUnit(ReadableByteChannel.class, HttpServerExchange.class, IoCallback.class,
      Sender.class, PooledByteBuffer.class)
      .expect(exchange)
      .expect(noIoThread)
      .expect(pooled)
      .expect(readLargeChunk)
      .expect(len)
      .expect(sendChunk)
      .expect(noIoThread)
      .expect(pooled)
      .expect(readChunk)
      .expect(sendChunk)
      .run(unit -> {
        ChunkedStream chunkedStream = new ChunkedStream();
        chunkedStream.send(unit.get(ReadableByteChannel.class),
            unit.get(HttpServerExchange.class), unit.get(IoCallback.class));
        chunkedStream.onComplete(unit.get(HttpServerExchange.class), unit.get(Sender.class));
      });
}
 
开发者ID:jooby-project,项目名称:jooby,代码行数:22,代码来源:ChunkedStreamTest.java

示例4: sendIoThread

import io.undertow.connector.PooledByteBuffer; //导入依赖的package包/类
@Test
public void sendIoThread() throws Exception {
  new MockUnit(ReadableByteChannel.class, HttpServerExchange.class, IoCallback.class,
      Sender.class, PooledByteBuffer.class)
      .expect(exchange)
      .expect(ioThread)
      .expect(pooled)
      .expect(readChunk)
      .expect(nolen)
      .expect(sendChunk)
      .run(unit -> {
        ChunkedStream chunkedStream = new ChunkedStream();
        chunkedStream.send(unit.get(ReadableByteChannel.class),
            unit.get(HttpServerExchange.class), unit.get(IoCallback.class));
        chunkedStream.run();
      });
}
 
开发者ID:jooby-project,项目名称:jooby,代码行数:18,代码来源:ChunkedStreamTest.java

示例5: internalAsyncRequest

import io.undertow.connector.PooledByteBuffer; //导入依赖的package包/类
private void internalAsyncRequest(final HttpServerExchange exchange, ArrayList<PooledByteBuffer> bufferList)
		throws Exception {
	// ensure exchange not end
	getResponseChannel(exchange).resumeWrites();

	PooledByteBuffer[] buffers = EMPTY_BUFFERS;

	if (bufferList != null && bufferList.size() > 0) {
		buffers = new PooledByteBuffer[bufferList.size()];
		buffers = bufferList.toArray(buffers);
	}

	handleAsyncRequest(exchange, new PooledByteBufferInputStream(buffers));
}
 
开发者ID:hank-whu,项目名称:undertow-async,代码行数:15,代码来源:AsyncHttpHandler.java

示例6: release

import io.undertow.connector.PooledByteBuffer; //导入依赖的package包/类
/**
 * return the buffer to the buffer pool
 *
 * @param bufferList
 */
private void release(ArrayList<PooledByteBuffer> bufferList) {
	if (bufferList == null || bufferList.size() == 0) {
		return;
	}

	for (int i = 0; i < bufferList.size(); ++i) {
		IoUtils.safeClose(bufferList.get(i));
	}
}
 
开发者ID:hank-whu,项目名称:undertow-async,代码行数:15,代码来源:AsyncHttpHandler.java

示例7: setPooledBuffers

import io.undertow.connector.PooledByteBuffer; //导入依赖的package包/类
/**
 * just for async release
 * 
 * @param sender
 * @param pooledBuffers
 *            will be released
 */
private void setPooledBuffers(Sender sender, PooledByteBuffer[] pooledBuffers) {
	if (!(sender instanceof AsyncSenderImpl)) {
		throw new RuntimeException("only support AsyncSenderImpl");
	}

	unsafe().getAndSetObject(sender, asyncSenderImplPooledBuffersFieldOffset, pooledBuffers);
}
 
开发者ID:hank-whu,项目名称:undertow-async,代码行数:15,代码来源:AsyncHttpHandler.java

示例8: PooledByteBufferInputStream

import io.undertow.connector.PooledByteBuffer; //导入依赖的package包/类
public PooledByteBufferInputStream(PooledByteBuffer[] buffers) {
	Objects.requireNonNull(buffers);

	for (int i = 0; i < buffers.length; i++) {
		if (!buffers[i].isOpen()) {
			throw new IllegalAccessError("buffers must all open");
		}
	}

	this.buffers = buffers;
	next();
}
 
开发者ID:hank-whu,项目名称:undertow-async,代码行数:13,代码来源:PooledByteBufferInputStream.java

示例9: clear

import io.undertow.connector.PooledByteBuffer; //导入依赖的package包/类
public void clear() {
	for (int i = 0; i < pooledList.size(); i++) {
		PooledByteBuffer pooled = pooledList.get(i);
		pooled.getBuffer().clear();
	}

	current = null;
	index = -1;
}
 
开发者ID:hank-whu,项目名称:undertow-async,代码行数:10,代码来源:PooledByteBufferOutputStream.java

示例10: release

import io.undertow.connector.PooledByteBuffer; //导入依赖的package包/类
public void release() {
	for (int i = 0; i < pooledList.size(); i++) {
		PooledByteBuffer pooled = pooledList.get(i);
		IoUtils.safeClose(pooled);
	}

	pooledList.clear();
}
 
开发者ID:hank-whu,项目名称:undertow-async,代码行数:9,代码来源:PooledByteBufferOutputStream.java

示例11: alloc

import io.undertow.connector.PooledByteBuffer; //导入依赖的package包/类
private void alloc() {
	index++;

	if (pooledList.size() - 1 > index) {
		current = pooledList.get(index).getBuffer();
		return;
	}

	PooledByteBuffer pooled = byteBufferPool.allocate();
	current = pooled.getBuffer();
	pooledList.add(pooled);
}
 
开发者ID:hank-whu,项目名称:undertow-async,代码行数:13,代码来源:PooledByteBufferOutputStream.java

示例12: read

import io.undertow.connector.PooledByteBuffer; //导入依赖的package包/类
public void read(StreamSourceChannel channel) {
    try (PooledByteBuffer poolItem = exchange.getConnection().getByteBufferPool().allocate()) {
        ByteBuffer buffer = poolItem.getBuffer();
        int bytesRead;
        while (true) {
            buffer.clear();
            bytesRead = channel.read(buffer);
            if (bytesRead <= 0) break;
            buffer.flip();
            ensureCapacity(bytesRead);
            buffer.get(body, position, bytesRead);
            position += bytesRead;
        }
        if (bytesRead == -1) {
            if (contentLength >= 0 && position < body.length) {
                throw Exceptions.error("body ends prematurely, expected={}, actual={}", contentLength, position);
            } else if (body == null) {
                body = new byte[0]; // without content length and has no body
            }
            complete = true;
            exchange.putAttachment(REQUEST_BODY, new RequestBody(body, null));
        }
    } catch (Throwable e) { // catch all errors during IO, to pass error to action log
        IoUtils.safeClose(channel);
        complete = true;
        exchange.putAttachment(REQUEST_BODY, new RequestBody(null, e));
    }
}
 
开发者ID:neowu,项目名称:core-ng-project,代码行数:29,代码来源:RequestBodyReader.java

示例13: sendNoIoThread

import io.undertow.connector.PooledByteBuffer; //导入依赖的package包/类
@Test
public void sendNoIoThread() throws Exception {
  new MockUnit(ReadableByteChannel.class, HttpServerExchange.class, IoCallback.class,
      Sender.class, PooledByteBuffer.class)
      .expect(exchange)
      .expect(noIoThread)
      .expect(pooled)
      .expect(readChunk)
      .expect(nolen)
      .expect(sendChunk)
      .run(unit -> {
        new ChunkedStream().send(unit.get(ReadableByteChannel.class),
            unit.get(HttpServerExchange.class), unit.get(IoCallback.class));
      });
}
 
开发者ID:jooby-project,项目名称:jooby,代码行数:16,代码来源:ChunkedStreamTest.java

示例14: getPooledByteBuffers

import io.undertow.connector.PooledByteBuffer; //导入依赖的package包/类
public PooledByteBuffer[] getPooledByteBuffers() {
	PooledByteBuffer[] buffers = new PooledByteBuffer[pooledList.size()];
	return pooledList.toArray(buffers);
}
 
开发者ID:hank-whu,项目名称:undertow-async,代码行数:5,代码来源:PooledByteBufferOutputStream.java

示例15: flip

import io.undertow.connector.PooledByteBuffer; //导入依赖的package包/类
public void flip() {
	for (int i = 0; i < pooledList.size(); i++) {
		PooledByteBuffer pooled = pooledList.get(i);
		pooled.getBuffer().flip();
	}
}
 
开发者ID:hank-whu,项目名称:undertow-async,代码行数:7,代码来源:PooledByteBufferOutputStream.java


注:本文中的io.undertow.connector.PooledByteBuffer类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。