本文整理汇总了Java中org.jboss.netty.buffer.ChannelBufferOutputStream.writeByte方法的典型用法代码示例。如果您正苦于以下问题:Java ChannelBufferOutputStream.writeByte方法的具体用法?Java ChannelBufferOutputStream.writeByte怎么用?Java ChannelBufferOutputStream.writeByte使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.jboss.netty.buffer.ChannelBufferOutputStream
的用法示例。
在下文中一共展示了ChannelBufferOutputStream.writeByte方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: encodeToChannelBuffer
import org.jboss.netty.buffer.ChannelBufferOutputStream; //导入方法依赖的package包/类
public ChannelBuffer encodeToChannelBuffer(Message message) throws IOException {
byte[] messageBytes = encodeMessage(message);
byte[] headerBytes = encodeHeader(messageBytes);
ChannelBuffer cb = ChannelBuffers.buffer(2 + headerBytes.length + 1 + messageBytes.length);
ChannelBufferOutputStream cbos = new ChannelBufferOutputStream(cb);
cbos.writeByte(RECORD_SEPARATOR);
cbos.writeByte(headerBytes.length);
cbos.write(headerBytes);
cbos.writeByte(UNIT_SEPARATOR);
cbos.write(messageBytes);
return cb;
}
示例2: encode
import org.jboss.netty.buffer.ChannelBufferOutputStream; //导入方法依赖的package包/类
@Override
protected Object encode(ChannelHandlerContext ctx,
Channel channel, Object msg) throws Exception {
if (!(msg instanceof WritableRequest)) {
throw new IllegalArgumentException(
"encode: Got a message of type " + msg.getClass());
}
// Encode the request
if (LOG.isDebugEnabled()) {
startEncodingNanoseconds = TIME.getNanoseconds();
}
WritableRequest writableRequest = (WritableRequest) msg;
int requestSize = writableRequest.getSerializedSize();
ChannelBuffer channelBuffer;
if (requestSize == WritableRequest.UNKNOWN_SIZE) {
channelBuffer = ChannelBuffers.dynamicBuffer(
bufferStartingSize,
ctx.getChannel().getConfig().getBufferFactory());
} else {
requestSize += LENGTH_PLACEHOLDER.length + 1;
channelBuffer = useDirectBuffers ?
ChannelBuffers.directBuffer(requestSize) :
ChannelBuffers.buffer(requestSize);
}
ChannelBufferOutputStream outputStream =
new ChannelBufferOutputStream(channelBuffer);
outputStream.write(LENGTH_PLACEHOLDER);
outputStream.writeByte(writableRequest.getType().ordinal());
try {
writableRequest.write(outputStream);
} catch (IndexOutOfBoundsException e) {
LOG.error("encode: Most likely the size of request was not properly " +
"specified - see getSerializedSize() in " +
writableRequest.getType().getRequestClass());
throw new IllegalStateException(e);
}
outputStream.flush();
outputStream.close();
// Set the correct size at the end
ChannelBuffer encodedBuffer = outputStream.buffer();
encodedBuffer.setInt(0, encodedBuffer.writerIndex() - 4);
if (LOG.isDebugEnabled()) {
LOG.debug("encode: Client " + writableRequest.getClientId() + ", " +
"requestId " + writableRequest.getRequestId() +
", size = " + encodedBuffer.writerIndex() + ", " +
writableRequest.getType() + " took " +
Times.getNanosSince(TIME, startEncodingNanoseconds) + " ns");
}
return encodedBuffer;
}
示例3: encode
import org.jboss.netty.buffer.ChannelBufferOutputStream; //导入方法依赖的package包/类
@Override
protected Object encode(ChannelHandlerContext ctx,
Channel channel, Object msg) throws Exception {
if (LOG.isDebugEnabled()) {
LOG.debug("encode(" + ctx + "," + channel + "," + msg);
}
if (!(msg instanceof WritableRequest)) {
throw new IllegalArgumentException(
"encode: cannot encode message of type " + msg.getClass() +
" since it is not an instance of an implementation of " +
" WritableRequest.");
}
@SuppressWarnings("unchecked")
WritableRequest writableRequest =
(WritableRequest) msg;
ChannelBufferOutputStream outputStream =
new ChannelBufferOutputStream(ChannelBuffers.dynamicBuffer(
10, ctx.getChannel().getConfig().getBufferFactory()));
if (LOG.isDebugEnabled()) {
LOG.debug("encode: Encoding a message of type " + msg.getClass());
}
outputStream.write(LENGTH_PLACEHOLDER);
// write type of object.
outputStream.writeByte(writableRequest.getType().ordinal());
// write the object itself.
writableRequest.write(outputStream);
outputStream.flush();
// Set the correct size at the end.
ChannelBuffer encodedBuffer = outputStream.buffer();
encodedBuffer.setInt(0, encodedBuffer.writerIndex() - 4);
if (LOG.isDebugEnabled()) {
LOG.debug("encode: Encoding a message of type " + msg.getClass());
}
/*if[HADOOP_NON_SECURE]
else[HADOOP_NON_SECURE]*/
if (writableRequest.getType() == RequestType.SASL_COMPLETE_REQUEST) {
// We are sending to the client a SASL_COMPLETE response (created by
// the SaslServer handler). The SaslServer handler has removed itself
// from the pipeline after creating this response, and now it's time for
// the ResponseEncoder to remove itself also.
if (LOG.isDebugEnabled()) {
LOG.debug("encode: Removing RequestEncoder handler: no longer needed," +
" since client: " + ctx.getChannel().getRemoteAddress() + " has " +
"completed authenticating.");
}
ctx.getPipeline().remove(this);
}
/*end[HADOOP_NON_SECURE]*/
return encodedBuffer;
}
示例4: encode
import org.jboss.netty.buffer.ChannelBufferOutputStream; //导入方法依赖的package包/类
@Override
protected Object encode(ChannelHandlerContext ctx,
Channel channel, Object msg) throws Exception {
if (LOG.isDebugEnabled()) {
LOG.debug("encode(" + ctx + "," + channel + "," + msg);
}
if (!(msg instanceof WritableRequest)) {
throw new IllegalArgumentException(
"encode: cannot encode message of type " + msg.getClass() +
" since it is not an instance of an implementation of " +
" WritableRequest.");
}
@SuppressWarnings("unchecked")
WritableRequest writableRequest =
(WritableRequest) msg;
ChannelBufferOutputStream outputStream =
new ChannelBufferOutputStream(ChannelBuffers.dynamicBuffer(
10, ctx.getChannel().getConfig().getBufferFactory()));
if (LOG.isDebugEnabled()) {
LOG.debug("encode: Encoding a message of type " + msg.getClass());
}
outputStream.write(LENGTH_PLACEHOLDER);
// write type of object.
outputStream.writeByte(writableRequest.getType().ordinal());
// write the object itself.
writableRequest.write(outputStream);
outputStream.flush();
// Set the correct size at the end.
ChannelBuffer encodedBuffer = outputStream.buffer();
encodedBuffer.setInt(0, encodedBuffer.writerIndex() - 4);
if (LOG.isDebugEnabled()) {
LOG.debug("encode: Encoding a message of type " + msg.getClass());
}
if (writableRequest.getType() == RequestType.SASL_COMPLETE_REQUEST) {
// We are sending to the client a SASL_COMPLETE response (created by
// the SaslServer handler). The SaslServer handler has removed itself
// from the pipeline after creating this response, and now it's time for
// the ResponseEncoder to remove itself also.
if (LOG.isDebugEnabled()) {
LOG.debug("encode: Removing RequestEncoder handler: no longer needed," +
" since client: " + ctx.getChannel().getRemoteAddress() + " has " +
"completed authenticating.");
}
ctx.getPipeline().remove(this);
}
return encodedBuffer;
}