本文整理了Java中org.jgroups.Message.getRawBuffer()
方法的一些代码示例,展示了Message.getRawBuffer()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Message.getRawBuffer()
方法的具体详情如下:
包路径:org.jgroups.Message
类名称:Message
方法名:getRawBuffer
[英]Returns a reference to the payload (byte buffer). Note that this buffer should not be modified as we do not copy the buffer on copy() or clone(): the buffer of the copied message is simply a reference to the old buffer.
Even if offset and length are used: we return the entire buffer, not a subset.
[中]返回对有效负载(字节缓冲区)的引用。请注意,不应修改此缓冲区,因为我们不会在copy()或clone()上复制缓冲区:复制消息的缓冲区只是对旧缓冲区的引用。
即使使用了偏移量和长度:我们返回整个缓冲区,而不是子集。
代码示例来源:origin: wildfly/wildfly
protected static String printPayload(Message msg, final StringBuilder sb) {
byte[] payload=msg.getRawBuffer();
int print_max=Math.min(msg.getLength(), 50);
for(int i=msg.getOffset(); i < print_max; i++) {
byte ch=payload[i];
sb.append((char)ch);
}
return null;
}
}
代码示例来源:origin: wildfly/wildfly
public void receive(Message msg) {
byte type=msg.getRawBuffer()[msg.getOffset()];
switch(type) {
case PING:
final Message rsp=new Message(msg.getSrc(), PONG_RSP);
rsp.setFlag(Message.Flag.DONT_BUNDLE, Message.Flag.NO_FC);
try {
ch.send(rsp);
}
catch(Exception e) {
e.printStackTrace();
}
break;
case PONG:
long rtt=System.nanoTime() - start;
double ms=rtt / 1000.0 / 1000.0;
System.out.printf("RTT for %s: %.2f ms\n", msg.src(), ms);
break;
}
}
代码示例来源:origin: wildfly/wildfly
protected Message _decrypt(final Cipher cipher, Message msg) throws Exception {
if(msg.getLength() == 0)
return msg;
byte[] decrypted_msg;
if(cipher == null)
decrypted_msg=code(msg.getRawBuffer(), msg.getOffset(), msg.getLength(), true);
else
try {
decrypted_msg=cipher.doFinal(msg.getRawBuffer(), msg.getOffset(), msg.getLength());
}
catch(BadPaddingException | IllegalBlockSizeException e) {
// if any exception is thrown, this cipher object may need to be reset before it can be used again.
cipher.init(Cipher.DECRYPT_MODE, secret_key);
throw e;
}
return msg.setBuffer(decrypted_msg);
}
代码示例来源:origin: wildfly/wildfly
protected void handleUpEvent(final Message msg, FcHeader hdr) {
switch(hdr.type) {
case FcHeader.REPLENISH:
num_credit_responses_received++;
handleCredit(msg.getSrc(), bufferToLong(msg.getRawBuffer(), msg.getOffset()));
break;
case FcHeader.CREDIT_REQUEST:
num_credit_requests_received++;
Address sender=msg.getSrc();
Long requested_credits=bufferToLong(msg.getRawBuffer(), msg.getOffset());
if(requested_credits != null)
handleCreditRequest(received, sender,requested_credits);
break;
default:
log.error(Util.getMessage("HeaderTypeNotKnown"), local_addr, hdr.type);
break;
}
}
代码示例来源:origin: wildfly/wildfly
public void receive(Message msg) {
try {
TotOrderRequest req=new TotOrderRequest();
ByteBuffer buf=ByteBuffer.wrap(msg.getRawBuffer(), msg.getOffset(), msg.getLength());
req.init(buf);
processRequest(req);
}
catch(Exception e) {
System.err.println(e);
}
}
代码示例来源:origin: org.jboss.eap/wildfly-client-all
public void receive(Message msg) {
byte type=msg.getRawBuffer()[msg.getOffset()];
switch(type) {
case PING:
final Message rsp=new Message(msg.getSrc(), PONG_RSP);
rsp.setFlag(Message.Flag.DONT_BUNDLE, Message.Flag.NO_FC);
try {
ch.send(rsp);
}
catch(Exception e) {
e.printStackTrace();
}
break;
case PONG:
long rtt=System.nanoTime() - start;
double ms=rtt / 1000.0 / 1000.0;
System.out.printf("RTT for %s: %.2f ms\n", msg.src(), ms);
break;
}
}
代码示例来源:origin: wildfly/wildfly
public void receive(Message msg) {
byte[] buf=msg.getRawBuffer();
byte type=buf[msg.getOffset()];
switch(type) {
case START:
ByteBuffer tmp=ByteBuffer.wrap(buf, 1+msg.getOffset(), Global.LONG_SIZE);
num_msgs=(int)tmp.getLong();
print=num_msgs / 10;
current_value.set(0);
total_bytes.set(0);
start=System.currentTimeMillis();
break;
case DATA:
long new_val=current_value.incrementAndGet();
total_bytes.addAndGet(msg.getLength() - Global.INT_SIZE);
if(print > 0 && new_val % print == 0)
System.out.println("received " + new_val);
if(new_val >= num_msgs) {
long time=System.currentTimeMillis() - start;
double msgs_sec=(current_value.get() / (time / 1000.0));
double throughput=total_bytes.get() / (time / 1000.0);
System.out.println(String.format("\nreceived %d messages in %d ms (%.2f msgs/sec), throughput=%s",
current_value.get(), time, msgs_sec, Util.printBytes(throughput)));
break;
}
break;
default:
System.err.println("Type " + type + " is invalid");
}
}
代码示例来源:origin: org.jboss.eap/wildfly-client-all
protected void handleUpEvent(final Message msg, FcHeader hdr) {
switch(hdr.type) {
case FcHeader.REPLENISH:
num_credit_responses_received++;
handleCredit(msg.getSrc(), bufferToLong(msg.getRawBuffer(), msg.getOffset()));
break;
case FcHeader.CREDIT_REQUEST:
num_credit_requests_received++;
Address sender=msg.getSrc();
Long requested_credits=bufferToLong(msg.getRawBuffer(), msg.getOffset());
if(requested_credits != null)
handleCreditRequest(received, sender,requested_credits);
break;
default:
log.error(Util.getMessage("HeaderTypeNotKnown"), local_addr, hdr.type);
break;
}
}
代码示例来源:origin: wildfly/wildfly
public void receive(Message msg) {
byte[] buf=msg.getRawBuffer();
byte type=buf[msg.getOffset()];
switch(type) {
case START:
ByteBuffer tmp=ByteBuffer.wrap(buf, 1+msg.getOffset(), Global.LONG_SIZE);
num_msgs=(int)tmp.getLong();
print=num_msgs / 10;
current_value.set(0);
total_bytes.set(0);
start=System.currentTimeMillis();
break;
case DATA:
long new_val=current_value.incrementAndGet();
total_bytes.addAndGet(msg.getLength() - Global.INT_SIZE);
if(print > 0 && new_val % print == 0)
System.out.println("received " + new_val);
if(new_val >= num_msgs) {
long time=System.currentTimeMillis() - start;
double msgs_sec=(current_value.get() / (time / 1000.0));
double throughput=total_bytes.get() / (time / 1000.0);
System.out.println(String.format("\nreceived %d messages in %d ms (%.2f msgs/sec), throughput=%s",
current_value.get(), time, msgs_sec, Util.printBytes(throughput)));
break;
}
break;
default:
System.err.println("Type " + type + " is invalid");
}
}
代码示例来源:origin: wildfly/wildfly
public void receive(Message msg) {
byte[] buf=msg.getRawBuffer();
byte type=buf[msg.getOffset()];
switch(type) {
case START:
ByteBuffer tmp=ByteBuffer.wrap(buf, 1+msg.getOffset(), Global.LONG_SIZE);
num_msgs=(int)tmp.getLong();
print=num_msgs / 10;
current_value.set(0);
total_bytes.set(0);
start=System.currentTimeMillis();
break;
case DATA:
long new_val=current_value.incrementAndGet();
total_bytes.addAndGet(msg.getLength() - Global.INT_SIZE);
if(print > 0 && new_val % print == 0)
System.out.println("received " + new_val);
if(new_val >= num_msgs) {
long time=System.currentTimeMillis() - start;
double msgs_sec=(current_value.get() / (time / 1000.0));
double throughput=total_bytes.get() / (time / 1000.0);
System.out.println(String.format("\nreceived %d messages in %d ms (%.2f msgs/sec), throughput=%s",
current_value.get(), time, msgs_sec, Util.printBytes(throughput)));
break;
}
break;
default:
System.err.println("Type " + type + " is invalid");
}
}
代码示例来源:origin: wildfly/wildfly
public void receive(Message msg) {
if(receiver == null)
return;
try {
receiver.receive(msg.src(), msg.getRawBuffer(), msg.getOffset(), msg.getLength());
}
catch(Throwable t) {
log.error("failed delivering message", t);
}
}
代码示例来源:origin: wildfly/wildfly
public void receive(MessageBatch batch) {
if(receiver == null)
return;
for(Message msg: batch) {
try {
receiver.receive(msg.src(), msg.getRawBuffer(), msg.getOffset(), msg.getLength());
}
catch(Throwable t) {
log.error("failed delivering message from batch", t);
}
}
}
代码示例来源:origin: wildfly/wildfly
public void receive(Message msg) {
if(msg == null || msg.getLength() == 0) {
log.error("DrawApplet.run(): msg or msg.buffer is null !");
return;
}
instream=new DataInputStream(new ByteArrayInputStream(msg.getRawBuffer(), msg.getOffset(), msg.getLength()));
int r=0;
try {
r=instream.readInt();
if(r == -13) {
clearPanel();
return;
}
int g=instream.readInt();
int b=instream.readInt();
int my_x=instream.readInt();
int my_y=instream.readInt();
if(graphics != null) {
graphics.setColor(new Color(r, g, b));
graphics.fillOval(my_x, my_y, 10, 10);
graphics.setColor(default_color);
}
}
catch(Exception ex) {
ex.printStackTrace();
}
}
});
代码示例来源:origin: wildfly/wildfly
/**
* Assembles all the fragments into one buffer. Takes all Messages, and combines their buffers into one
* buffer.
* This method does not check if the fragmentation is complete (use {@link #isComplete()} to verify
* before calling this method)
* @return the complete message in one buffer
*
*/
protected Message assembleMessage() {
Message retval;
byte[] combined_buffer, tmp;
int combined_length=0, length, offset;
int index=0;
for(Message fragment: fragments)
combined_length+=fragment.getLength();
combined_buffer=new byte[combined_length];
retval=fragments[0].copy(false); // doesn't copy the payload, but copies the headers
for(int i=0; i < fragments.length; i++) {
Message fragment=fragments[i];
fragments[i]=null; // help garbage collection a bit
tmp=fragment.getRawBuffer();
length=fragment.getLength();
offset=fragment.getOffset();
System.arraycopy(tmp, offset, combined_buffer, index, length);
index+=length;
}
retval.setBuffer(combined_buffer);
return retval;
}
代码示例来源:origin: wildfly/wildfly
protected void encryptAndSend(Message msg) throws Exception {
EncryptHeader hdr=new EncryptHeader(EncryptHeader.ENCRYPT, symVersion());
// copy neeeded because same message (object) may be retransmitted -> prevent double encryption
Message msgEncrypted=msg.copy(false).putHeader(this.id, hdr);
if(msg.getLength() > 0)
msgEncrypted.setBuffer(code(msg.getRawBuffer(),msg.getOffset(),msg.getLength(),false));
else { // length is 0
byte[] payload=msg.getRawBuffer();
if(payload != null) // we don't encrypt empty buffers (https://issues.jboss.org/browse/JGRP-2153)
msgEncrypted.setBuffer(payload, msg.getOffset(), msg.getLength());
}
down_prot.down(msgEncrypted);
}
代码示例来源:origin: wildfly/wildfly
protected Object handleUpEvent(Message msg, RelayHeader hdr) {
switch(hdr.type) {
case DISSEMINATE:
Message copy=msg.copy();
if(hdr.original_sender != null)
copy.setSrc(hdr.original_sender);
return up_prot.up(copy);
case FORWARD:
if(is_coord)
forward(msg.getRawBuffer(), msg.getOffset(), msg.getLength());
break;
case VIEW:
return installView(msg.getRawBuffer(), msg.getOffset(), msg.getLength());
case BROADCAST_VIEW:
break;
default:
throw new IllegalArgumentException(hdr.type + " is not a valid type");
}
return null;
}
代码示例来源:origin: wildfly/wildfly
/** Returns a new message as a result of uncompressing msg, or null if msg couldn't be uncompressed */
protected Message uncompress(Message msg, int original_size) {
byte[] compressed_payload=msg.getRawBuffer();
if(compressed_payload != null && compressed_payload.length > 0) {
byte[] uncompressed_payload=new byte[original_size];
Inflater inflater=null;
try {
inflater=inflater_pool.take();
inflater.reset();
inflater.setInput(compressed_payload, msg.getOffset(), msg.getLength());
try {
inflater.inflate(uncompressed_payload);
// we need to copy: https://jira.jboss.org/jira/browse/JGRP-867
return msg.copy(false).setBuffer(uncompressed_payload);
}
catch(DataFormatException e) {
log.error(Util.getMessage("CompressionFailure"), e);
}
}
catch(InterruptedException e) {
Thread.currentThread().interrupt(); // set the interrupt bit again, so caller can handle it
}
finally {
if(inflater != null)
inflater_pool.offer(inflater);
}
}
return null;
}
代码示例来源:origin: wildfly/wildfly
private Callable<Object> read(Message message) throws Exception {
try (DataInputStream input = new DataInputStream(new ByteArrayInputStream(message.getRawBuffer(), message.getOffset(), message.getLength()))) {
int version = IndexSerializer.VARIABLE.readInt(input);
try (Unmarshaller unmarshaller = this.marshallingContext.createUnmarshaller(version)) {
unmarshaller.start(Marshalling.createByteInput(input));
Object clientId = unmarshaller.readObject();
Optional<Object> context = this.contexts.get(clientId);
if (context == null) return () -> NoSuchService.INSTANCE;
@SuppressWarnings("unchecked")
Command<Object, Object> command = (Command<Object, Object>) unmarshaller.readObject();
// Wrap execution result in an Optional, since command execution might return null
ExceptionSupplier<Optional<Object>, Exception> task = () -> Optional.ofNullable(command.execute(context.orElse(null)));
return () -> this.executor.execute(task).orElse(Optional.of(NoSuchService.INSTANCE)).orElse(null);
}
}
}
代码示例来源:origin: wildfly/wildfly
/** Adds a fragment to the full message */
public Message set(Message frag_msg, Frag3Header hdr) {
lock.lock();
try {
if(buffer == null)
buffer=new byte[hdr.original_length];
if(hdr.frag_id == 0) {
// the first fragment creates the message, copy the headers but not the buffer
msg=frag_msg.copy(false);
}
if(received.set(hdr.frag_id)) {
// if not yet added: copy the fragment's buffer into msg.buffer at the correct offset
int frag_length=frag_msg.getLength();
int offset=hdr.offset;
System.arraycopy(frag_msg.getRawBuffer(), frag_msg.getOffset(), buffer, offset, frag_length);
if(isComplete())
return assembleMessage();
}
return null;
}
finally {
lock.unlock();
}
}
代码示例来源:origin: wildfly/wildfly
protected void dispatch(final Message msg, final Header hdr) {
switch(hdr.type) {
case Header.REQ:
handleRequest(msg, hdr);
break;
case Header.RSP:
case Header.EXC_RSP:
Request req=requests.get(hdr.req_id);
if(req != null)
handleResponse(req, msg.src(), msg.getRawBuffer(), msg.getOffset(), msg.getLength(), hdr.type == Header.EXC_RSP);
break;
default:
log.error(Util.getMessage("HeaderSTypeIsNeitherREQNorRSP"));
break;
}
}
内容来源于网络,如有侵权,请联系作者删除!