本文整理匯總了Java中org.jboss.netty.buffer.ChannelBufferOutputStream.write方法的典型用法代碼示例。如果您正苦於以下問題:Java ChannelBufferOutputStream.write方法的具體用法?Java ChannelBufferOutputStream.write怎麽用?Java ChannelBufferOutputStream.write使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類org.jboss.netty.buffer.ChannelBufferOutputStream
的用法示例。
在下文中一共展示了ChannelBufferOutputStream.write方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: encode
import org.jboss.netty.buffer.ChannelBufferOutputStream; //導入方法依賴的package包/類
@Override
protected Object encode(ChannelHandlerContext ctx, Channel channel,
Object msg) throws Exception {
ChannelBufferOutputStream bout = new ChannelBufferOutputStream(
dynamicBuffer(1024, ctx.getChannel().getConfig()
.getBufferFactory()));
bout.write(LENGTH_PLACEHOLDER);
Hessian2Output h2o = new Hessian2Output(bout);
try {
h2o.writeObject(msg);
h2o.flush();
} finally {
h2o.close();
}
ChannelBuffer encoded = bout.buffer();
encoded.setInt(0, encoded.writerIndex() - 4);
return encoded;
}
示例2: encode
import org.jboss.netty.buffer.ChannelBufferOutputStream; //導入方法依賴的package包/類
@Override
protected Object encode(ChannelHandlerContext ctx, Channel channel,
Object msg) throws Exception {
ChannelBufferOutputStream bout = new ChannelBufferOutputStream(
dynamicBuffer(1024, ctx.getChannel().getConfig()
.getBufferFactory()));
bout.write(LENGTH_PLACEHOLDER);
JBossObjectOutputStream oout = new JBossObjectOutputStream(bout);
try {
oout.writeObject(msg);
oout.flush();
} finally {
oout.close();
}
ChannelBuffer encoded = bout.buffer();
encoded.setInt(0, encoded.writerIndex() - 4);
return encoded;
}
示例3: writeTaskMessage
import org.jboss.netty.buffer.ChannelBufferOutputStream; //導入方法依賴的package包/類
/**
* write a TaskMessage into a stream
*
* Each TaskMessage is encoded as: task ... short(2) len ... int(4) payload
* ... byte[] *
*/
private void writeTaskMessage(ChannelBufferOutputStream bout,
TaskMessage message) throws Exception {
int payload_len = 0;
if (message.message() != null)
payload_len = message.message().length;
int task_id = message.task();
if (task_id > Short.MAX_VALUE)
throw new RuntimeException("Task ID should not exceed "
+ Short.MAX_VALUE);
bout.writeShort((short) task_id);
bout.writeInt(payload_len);
if (payload_len > 0)
bout.write(message.message());
// @@@ TESTING CODE
// LOG.info("Write one message taskid:{}, len:{}, data:{}", task_id
// , payload_len, JStormUtils.toPrintableString(message.message()) );
}
示例4: writeTaskMessage
import org.jboss.netty.buffer.ChannelBufferOutputStream; //導入方法依賴的package包/類
/**
* write a TaskMessage into a stream
*
* Each TaskMessage is encoded as: task ... short(2) len ... int(4) payload ... byte[] *
*/
private void writeTaskMessage(ChannelBufferOutputStream bout, TaskMessage message) throws Exception {
int payload_len = 0;
if (message.message() != null)
payload_len = message.message().length;
int task_id = message.task();
if (task_id > Short.MAX_VALUE)
throw new RuntimeException("Task ID should not exceed " + Short.MAX_VALUE);
bout.writeShort((short) task_id);
bout.writeInt(payload_len);
if (payload_len > 0)
bout.write(message.message());
// @@@ TESTING CODE
// LOG.info("Write one message taskid:{}, len:{}, data:{}", task_id
// , payload_len, JStormUtils.toPrintableString(message.message()) );
}
示例5: encode
import org.jboss.netty.buffer.ChannelBufferOutputStream; //導入方法依賴的package包/類
@Override
protected Object encode(final ChannelHandlerContext ctx, final Channel channel, final Object msg) throws IOException {
if (msg instanceof ResponseObject) {
final ChannelBuffer result = ChannelBuffers.dynamicBuffer(DEFAULT_BUFFER_SIZE);
final ChannelBufferOutputStream out = new ChannelBufferOutputStream(result);
((ResponseObject) msg).writeTo(out);
out.write(OBJECT_TERMINATOR);
return result;
} else if (msg instanceof Message) {
return ChannelBuffers.wrappedBuffer(msg.toString().getBytes(Charsets.UTF_8), OBJECT_TERMINATOR);
}
return msg;
}
示例6: writeTaskMessage
import org.jboss.netty.buffer.ChannelBufferOutputStream; //導入方法依賴的package包/類
/**
* write a TaskMessage into a stream
*
* Each TaskMessage is encoded as: task ... short(2) len ... int(4) payload ... byte[] *
*/
private void writeTaskMessage(ChannelBufferOutputStream bout, TaskMessage message) throws Exception {
int payload_len = 0;
if (message.message() != null)
payload_len = message.message().length;
short type = message.get_type();
bout.writeShort(type);
int task_id = message.task();
if (task_id > Short.MAX_VALUE)
throw new RuntimeException("Task ID should not exceed " + Short.MAX_VALUE);
bout.writeShort((short) task_id);
bout.writeInt(payload_len);
if (payload_len > 0)
bout.write(message.message());
// LOG.info("Write one message taskid:{}, len:{}, data:{}", taskId
// , payload_len, JStormUtils.toPrintableString(message.message()) );
}
示例7: buffer
import org.jboss.netty.buffer.ChannelBufferOutputStream; //導入方法依賴的package包/類
/**
* create a buffer containing the encoding of this batch
*/
@Override
public ChannelBuffer buffer() throws Exception {
int payloadLen = 0;
if (_message != null)
payloadLen = _message.length;
int totalLen = 8 + payloadLen;
ChannelBufferOutputStream bout = new ChannelBufferOutputStream(ChannelBuffers.directBuffer(totalLen));
bout.writeShort(_type);
if (_task > Short.MAX_VALUE)
throw new RuntimeException("Task ID should not exceed " + Short.MAX_VALUE);
bout.writeShort((short) _task);
bout.writeInt(payloadLen);
if (payloadLen > 0)
bout.write(_message);
bout.close();
return bout.buffer();
}
示例8: generateData
import org.jboss.netty.buffer.ChannelBufferOutputStream; //導入方法依賴的package包/類
@Override
public ChannelBuffer generateData() {
ChannelBufferOutputStream output = new ChannelBufferOutputStream(MessageBuffers.dynamicBuffer());
try {
output.write(new byte[WIDTH * HEIGHT]);
} catch (Exception e) {
throw new RuntimeException("Empty map generator generateData error: " + e.getMessage());
}
return output.buffer();
}
示例9: doEncode
import org.jboss.netty.buffer.ChannelBufferOutputStream; //導入方法依賴的package包/類
private Object doEncode(Request request, ChannelHandlerContext ctx, Channel channel) throws Exception {
//version from request header;
byte ver = request.getHeader().getSerializeVersion();
//overwrite if request header == 0 and version != 0, use version
if ( ver == 0 && version != 0)
ver = version;
int pLen = request.getPayload() == null ? 0 : request.getPayload().length;
byte[] header = request.getHeader().toByte();
// encoding length , and check the max value of integer, should be 2GB
int len = TOTAL + header.length + pLen + R_SIZE;
if ( len > Integer.MAX_VALUE ) {
channel.close();
throw new Exception( len+" exceeding Integer.MAX_VALUE");
}
ChannelBufferOutputStream bout = new ChannelBufferOutputStream(dynamicBuffer(
len, ctx.getChannel().getConfig().getBufferFactory()));
bout.write(SIGNATURE);
bout.write(ver);
bout.writeInt(len);
bout.writeShort((short) header.length);
bout.write(header);
// request type
bout.write((byte) request.getType().ordinal());
bout.write( request.getPayload());
bout.flush();
bout.close();
ChannelBuffer encoded = bout.buffer();
return encoded;
}
示例10: setCompressedImage
import org.jboss.netty.buffer.ChannelBufferOutputStream; //導入方法依賴的package包/類
private void setCompressedImage(Mat inputFrame, tms_ss_rcnn.obj_detectionRequest request) throws IOException {
Time time = mConnectedNode.getCurrentTime();
request.getImage().getHeader().setStamp(time);
request.getImage().getHeader().setFrameId("ObjectDetection");
request.getImage().getHeader().setSeq(sequenceNumber++);
request.getImage().setFormat("jpg");
MatOfByte buf = new MatOfByte();
Highgui.imencode(".jpg", inputFrame, buf);
ChannelBufferOutputStream stream = new ChannelBufferOutputStream(MessageBuffers.dynamicBuffer());
stream.write(buf.toArray());
request.getImage().setData(stream.buffer().copy());
}
示例11: handleDownstream
import org.jboss.netty.buffer.ChannelBufferOutputStream; //導入方法依賴的package包/類
public void handleDownstream(
final ChannelHandlerContext ctx, ChannelEvent evt) throws Exception {
if (!(evt instanceof MessageEvent)) {
ctx.sendDownstream(evt);
return;
}
MessageEvent e = (MessageEvent) evt;
if (e.getMessage() instanceof ChunkedInput) {
ctx.sendDownstream(evt);
return;
}
ChannelBufferOutputStream bout =
new ChannelBufferOutputStream(dynamicBuffer(
estimatedLength, ctx.getChannel().getConfig().getBufferFactory()));
bout.write(LENGTH_PLACEHOLDER);
final CompactObjectOutputStream oout = new CompactObjectOutputStream(bout);
try {
oout.writeObject(e.getMessage());
ExternalizeUtil.writeCollection(oout, oout.getReferences());
oout.flush();
oout.close();
} catch (Throwable t) {
throw new FailedWriteException(e.getMessage(), t);
}
ChannelBuffer encoded = bout.buffer();
encoded.setInt(0, encoded.writerIndex() - 4);
write(ctx, e.getFuture(), encoded, e.getRemoteAddress());
for (InputStream is : oout.getStreams()) {
Channels.write(ctx.getChannel(), new AnonymousChunkedStream(new BufferedInputStream(is, CHUNK_SIZE)));
}
}
示例12: writeTaskMessage
import org.jboss.netty.buffer.ChannelBufferOutputStream; //導入方法依賴的package包/類
/**
* write a TaskMessage into a stream
*
* Each TaskMessage is encoded as:
* task ... short(2)
* len ... int(4)
* payload ... byte[] *
*/
private void writeTaskMessage(ChannelBufferOutputStream bout, TaskMessage message) throws Exception {
int payload_len = 0;
if (message.message() != null)
payload_len = message.message().length;
int task_id = message.task();
if (task_id > Short.MAX_VALUE)
throw new RuntimeException("Task ID should not exceed "+Short.MAX_VALUE);
bout.writeShort((short)task_id);
bout.writeInt(payload_len);
if (payload_len >0)
bout.write(message.message());
}
示例13: 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;
}
示例14: 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;
}
示例15: 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;
}