org.springframework.core.io.buffer.DataBuffer#asByteBuffer ( )源码实例Demo

下面列出了org.springframework.core.io.buffer.DataBuffer#asByteBuffer ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

private ContentChunk toContentChunk(DataBuffer buffer) {
	return new ContentChunk(buffer.asByteBuffer(), new Callback() {
		@Override
		public void succeeded() {
			DataBufferUtils.release(buffer);
		}

		@Override
		public void failed(Throwable x) {
			DataBufferUtils.release(buffer);
			throw Exceptions.propagate(x);
		}
	});
}
 
@Override
protected DataBuffer readFromInputStream() throws IOException {
	boolean release = true;
	int capacity = this.bufferSize;
	DataBuffer dataBuffer = this.factory.allocateBuffer(capacity);
	try {
		ByteBuffer byteBuffer = dataBuffer.asByteBuffer(0, capacity);
		ServletRequest request = getNativeRequest();
		int read = ((CoyoteInputStream) request.getInputStream()).read(byteBuffer);
		logBytesRead(read);
		if (read > 0) {
			dataBuffer.writePosition(read);
			release = false;
			return dataBuffer;
		}
		else if (read == -1) {
			return EOF_BUFFER;
		}
		else {
			return null;
		}
	}
	finally {
		if (release) {
			DataBufferUtils.release(dataBuffer);
		}
	}
}
 
@Override
protected int writeToOutputStream(DataBuffer dataBuffer) throws IOException {
	ByteBuffer input = dataBuffer.asByteBuffer();
	int len = input.remaining();
	ServletResponse response = getNativeResponse();
	((CoyoteOutputStream) response.getOutputStream()).write(input);
	return len;
}
 
@Override
protected int writeToOutputStream(DataBuffer dataBuffer) throws IOException {
	ByteBuffer input = dataBuffer.asByteBuffer();
	int len = input.remaining();
	ServletResponse response = getNativeResponse();
	((HttpOutput) response.getOutputStream()).write(input);
	return len;
}
 
private ContentChunk toContentChunk(DataBuffer buffer) {
	return new ContentChunk(buffer.asByteBuffer(), new Callback() {
		@Override
		public void succeeded() {
			DataBufferUtils.release(buffer);
		}

		@Override
		public void failed(Throwable x) {
			DataBufferUtils.release(buffer);
			throw Exceptions.propagate(x);
		}
	});
}
 
@Override
protected DataBuffer readFromInputStream() throws IOException {
	boolean release = true;
	int capacity = this.bufferSize;
	DataBuffer dataBuffer = this.factory.allocateBuffer(capacity);
	try {
		ByteBuffer byteBuffer = dataBuffer.asByteBuffer(0, capacity);
		ServletRequest request = getNativeRequest();
		int read = ((CoyoteInputStream) request.getInputStream()).read(byteBuffer);
		logBytesRead(read);
		if (read > 0) {
			dataBuffer.writePosition(read);
			release = false;
			return dataBuffer;
		}
		else if (read == -1) {
			return EOF_BUFFER;
		}
		else {
			return null;
		}
	}
	finally {
		if (release) {
			DataBufferUtils.release(dataBuffer);
		}
	}
}
 
@Override
protected int writeToOutputStream(DataBuffer dataBuffer) throws IOException {
	ByteBuffer input = dataBuffer.asByteBuffer();
	int len = input.remaining();
	ServletResponse response = getNativeResponse();
	((CoyoteOutputStream) response.getOutputStream()).write(input);
	return len;
}
 
@Override
protected int writeToOutputStream(DataBuffer dataBuffer) throws IOException {
	ByteBuffer input = dataBuffer.asByteBuffer();
	int len = input.remaining();
	ServletResponse response = getNativeResponse();
	((HttpOutput) response.getOutputStream()).write(input);
	return len;
}
 
源代码9 项目: armeria   文件: DataBufferFactoryWrapper.java
/**
 * Converts a {@link DataBuffer} into an {@link HttpData}.
 */
HttpData toHttpData(DataBuffer dataBuffer) {
    if (dataBuffer instanceof NettyDataBuffer) {
        return PooledHttpData.wrap((((NettyDataBuffer) dataBuffer).getNativeBuffer()));
    }
    final ByteBuffer buf =
            dataBuffer instanceof DefaultDataBuffer ? ((DefaultDataBuffer) dataBuffer).getNativeBuffer()
                                                    : dataBuffer.asByteBuffer();
    return PooledHttpData.wrap(Unpooled.wrappedBuffer(buf));
}
 
源代码10 项目: spring-analysis-note   文件: FreeMarkerViewTests.java
private static String asString(DataBuffer dataBuffer) {
	ByteBuffer byteBuffer = dataBuffer.asByteBuffer();
	final byte[] bytes = new byte[byteBuffer.remaining()];
	byteBuffer.get(bytes);
	return new String(bytes, StandardCharsets.UTF_8);
}
 
@Override
protected void dataReceived(DataBuffer dataBuffer) {
	super.dataReceived(dataBuffer);
	this.byteBuffer = dataBuffer.asByteBuffer();
}
 
private static String asString(DataBuffer dataBuffer) {
	ByteBuffer byteBuffer = dataBuffer.asByteBuffer();
	final byte[] bytes = new byte[byteBuffer.remaining()];
	byteBuffer.get(bytes);
	return new String(bytes, StandardCharsets.UTF_8);
}
 
@Override
protected void dataReceived(DataBuffer dataBuffer) {
	super.dataReceived(dataBuffer);
	this.byteBuffer = dataBuffer.asByteBuffer();
}