org.jgroups.Message.isFlagSet()方法的使用及代码示例

x33g5p2x  于2022-01-25 转载在 其他  
字(9.7k)|赞(0)|评价(0)|浏览(178)

本文整理了Java中org.jgroups.Message.isFlagSet()方法的一些代码示例,展示了Message.isFlagSet()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Message.isFlagSet()方法的具体详情如下:
包路径:org.jgroups.Message
类名称:Message
方法名:isFlagSet

Message.isFlagSet介绍

[英]Checks if a given flag is set
[中]检查是否设置了给定的标志

代码示例

代码示例来源:origin: wildfly/wildfly

  1. /**
  2. * Checks if a given flag is set
  3. * @param flag The flag
  4. * @return Whether or not the flag is currently set
  5. */
  6. public boolean isFlagSet(Flag flag) {
  7. return isFlagSet(flags, flag);
  8. }

代码示例来源:origin: wildfly/wildfly

  1. public Mode determineMode() {
  2. int num_oob=0, num_reg=0, num_internal=0;
  3. for(int i=0; i < index; i++) {
  4. if(messages[i] == null)
  5. continue;
  6. if(messages[i].isFlagSet(Message.Flag.OOB))
  7. num_oob++;
  8. else if(messages[i].isFlagSet(Message.Flag.INTERNAL))
  9. num_internal++;
  10. else
  11. num_reg++;
  12. }
  13. if(num_internal > 0 && num_oob == 0 && num_reg == 0)
  14. return Mode.INTERNAL;
  15. if(num_oob > 0 && num_internal == 0 && num_reg == 0)
  16. return Mode.OOB;
  17. if(num_reg > 0 && num_oob == 0 && num_internal == 0)
  18. return Mode.REG;
  19. return Mode.MIXED;
  20. }

代码示例来源:origin: wildfly/wildfly

  1. protected void flushQueue(final Map<Address,Message> queue) {
  2. if(queue.isEmpty())
  3. return;
  4. for(Message msg: queue.values()) {
  5. boolean oob=msg.isFlagSet(Message.Flag.OOB), internal=msg.isFlagSet(Message.Flag.INTERNAL);
  6. transport.msg_processing_policy.process(msg, oob, internal);
  7. }
  8. queue.clear();
  9. }

代码示例来源:origin: wildfly/wildfly

  1. protected void queue(Message msg) {
  2. Address dest=msg.dest();
  3. Map<Address,List<Message>> map;
  4. if(dest == null)
  5. map=msg.isFlagSet(Message.Flag.OOB)? oob_map_mcast : reg_map_mcast;
  6. else
  7. map=msg.isFlagSet(Message.Flag.OOB)? oob_map_ucast : reg_map_ucast;
  8. Address sender=msg.src();
  9. synchronized(map) {
  10. List<Message> list=map.get(sender);
  11. if(list == null)
  12. map.put(sender, list=new ArrayList<>());
  13. list.add(msg);
  14. }
  15. }

代码示例来源:origin: wildfly/wildfly

  1. public static String flagsToString(short flags) {
  2. StringBuilder sb=new StringBuilder();
  3. boolean first=true;
  4. Flag[] all_flags=Flag.values();
  5. for(Flag flag: all_flags) {
  6. if(isFlagSet(flags, flag)) {
  7. if(first)
  8. first=false;
  9. else
  10. sb.append("|");
  11. sb.append(flag);
  12. }
  13. }
  14. return sb.toString();
  15. }

代码示例来源:origin: wildfly/wildfly

  1. public Object up(Message msg) {
  2. // https://issues.jboss.org/browse/JGRP-1341: let unicast messages pass
  3. if(msg.isFlagSet(Message.Flag.SKIP_BARRIER) || msg.getDest() != null
  4. && ((msg.isFlagSet(Message.Flag.OOB) && msg.isFlagSet(Message.Flag.INTERNAL)) || holes.contains(msg.getSrc())))
  5. return up_prot.up(msg);
  6. if(barrier_closed.get()) {
  7. final Map<Address,Message> map=msg.getDest() == null? mcast_queue : ucast_queue;
  8. map.put(msg.getSrc(), msg);
  9. return null; // queue and drop the message
  10. }
  11. Thread current_thread=Thread.currentThread();
  12. in_flight_threads.put(current_thread, NULL);
  13. try {
  14. return up_prot.up(msg);
  15. }
  16. finally {
  17. unblock(current_thread);
  18. }
  19. }

代码示例来源:origin: wildfly/wildfly

  1. public Object down(Message msg) {
  2. if(msg.getDest() != null || msg.isFlagSet(Message.Flag.NO_TOTAL_ORDER) || msg.isFlagSet(Message.Flag.OOB))
  3. return down_prot.down(msg);
  4. if(msg.getSrc() == null)
  5. msg.setSrc(local_addr);
  6. try {
  7. fwd_queue.put(msg);
  8. if(seqno_reqs.getAndIncrement() == 0) {
  9. int num_reqs=seqno_reqs.get();
  10. sendSeqnoRequest(num_reqs);
  11. }
  12. }
  13. catch(InterruptedException e) {
  14. if(!running)
  15. return null;
  16. throw new RuntimeException(e);
  17. }
  18. return null; // don't pass down
  19. }

代码示例来源:origin: wildfly/wildfly

  1. public Object up(Message msg) {
  2. if(msg.isFlagSet(Message.Flag.OOB) && msg.isFlagSet(Message.Flag.INTERNAL))
  3. return up_prot.up(msg);
  4. if((msg.dest() == null && multicasts) || (msg.dest() != null && unicasts)) {
  5. queue(msg);
  6. return null;
  7. }
  8. return up_prot.up(msg);
  9. }

代码示例来源:origin: wildfly/wildfly

  1. protected void loopback(Message msg, final boolean multicast) {
  2. final Message copy=loopback_copy? msg.copy() : msg;
  3. if(is_trace)
  4. log.trace("%s: looping back message %s, headers are %s", local_addr, copy, copy.printHeaders());
  5. if(!loopback_separate_thread) {
  6. passMessageUp(copy, null, false, multicast, false);
  7. return;
  8. }
  9. // changed to fix http://jira.jboss.com/jira/browse/JGRP-506
  10. boolean internal=msg.isFlagSet(Message.Flag.INTERNAL);
  11. boolean oob=msg.isFlagSet(Message.Flag.OOB);
  12. // submitToThreadPool(() -> passMessageUp(copy, null, false, multicast, false), internal);
  13. msg_processing_policy.loopback(msg, oob, internal);
  14. }

代码示例来源:origin: wildfly/wildfly

  1. /**
  2. * Removes messages with flags DONT_BUNDLE and OOB set and executes them in the oob or internal thread pool. JGRP-1737
  3. */
  4. protected void removeAndDispatchNonBundledMessages(MessageBatch oob_batch) {
  5. if(oob_batch == null)
  6. return;
  7. AsciiString tmp=oob_batch.clusterName();
  8. byte[] cname=tmp != null? tmp.chars() : null;
  9. for(Iterator<Message> it=oob_batch.iterator(); it.hasNext();) {
  10. Message msg=it.next();
  11. if(msg.isFlagSet(Message.Flag.DONT_BUNDLE) && msg.isFlagSet(Message.Flag.OOB)) {
  12. boolean internal=msg.isFlagSet(Message.Flag.INTERNAL);
  13. it.remove();
  14. if(tp.statsEnabled())
  15. tp.getMessageStats().incrNumOOBMsgsReceived(1);
  16. tp.submitToThreadPool(new SingleMessageHandlerWithClusterName(msg, cname), internal);
  17. }
  18. }
  19. }

代码示例来源:origin: wildfly/wildfly

  1. public Object down(Message msg) {
  2. Address dest=msg.getDest();
  3. if(dest != null || msg.isFlagSet(Message.Flag.NO_RELIABILITY))
  4. return down_prot.down(msg); // unicast address: not null and not mcast, pass down unchanged
  5. send(msg);
  6. return null; // don't pass down the stack
  7. }

代码示例来源:origin: wildfly/wildfly

  1. protected void handleSingleMessage(DataInput in, boolean multicast) {
  2. try {
  3. Message msg=new Message(false); // don't create headers, readFrom() will do this
  4. msg.readFrom(in);
  5. if(!multicast && unicastDestMismatch(msg.getDest()))
  6. return;
  7. boolean oob=msg.isFlagSet(Message.Flag.OOB), internal=msg.isFlagSet(Message.Flag.INTERNAL);
  8. msg_processing_policy.process(msg, oob, internal);
  9. }
  10. catch(Throwable t) {
  11. log.error(String.format(Util.getMessage("IncomingMsgFailure"), local_addr), t);
  12. }
  13. }

代码示例来源:origin: wildfly/wildfly

  1. protected void deliverMessage(final Message msg, final Address sender, final long seqno) {
  2. if(is_trace)
  3. log.trace("%s: delivering %s#%s", local_addr, sender, seqno);
  4. try {
  5. up_prot.up(msg);
  6. }
  7. catch(Throwable t) {
  8. log.warn(Util.getMessage("FailedToDeliverMsg"), local_addr, msg.isFlagSet(Message.Flag.OOB) ?
  9. "OOB message" : "message", msg, t);
  10. }
  11. }

代码示例来源:origin: wildfly/wildfly

  1. public void up(MessageBatch batch) {
  2. for(Message msg: batch) {
  3. if(msg.isFlagSet(Message.Flag.NO_TOTAL_ORDER) || msg.isFlagSet(Message.Flag.OOB) || msg.getHeader(id) == null)
  4. continue;
  5. batch.remove(msg);
  6. // simplistic implementation
  7. try {
  8. up(msg);
  9. }
  10. catch(Throwable t) {
  11. log.error(Util.getMessage("FailedPassingUpMessage"), t);
  12. }
  13. }
  14. if(!batch.isEmpty())
  15. up_prot.up(batch);
  16. }

代码示例来源:origin: wildfly/wildfly

  1. public void up(MessageBatch batch) {
  2. for(Message msg: batch) {
  3. if(msg.isFlagSet(Message.Flag.NO_TOTAL_ORDER) || msg.isFlagSet(Message.Flag.OOB) || msg.getHeader(id) == null)
  4. continue;
  5. batch.remove(msg);
  6. // simplistic implementation
  7. try {
  8. up(msg);
  9. }
  10. catch(Throwable t) {
  11. log.error(Util.getMessage("FailedPassingUpMessage"), t);
  12. }
  13. }
  14. if(!batch.isEmpty())
  15. up_prot.up(batch);
  16. }

代码示例来源:origin: wildfly/wildfly

  1. public Object down(Message message) {
  2. Address dest = message.getDest();
  3. if (dest != null && dest instanceof AnycastAddress && !message.isFlagSet(Message.Flag.NO_TOTAL_ORDER)) {
  4. // anycast message
  5. sendTotalOrderAnycastMessage(extract((AnycastAddress) dest), message);
  6. } else if (dest != null && dest instanceof AnycastAddress) {
  7. //anycast address with NO_TOTAL_ORDER flag (should no be possible, but...)
  8. send(extract((AnycastAddress) dest), message, true);
  9. } else {
  10. //normal message
  11. down_prot.down(message);
  12. }
  13. return null;
  14. }

代码示例来源:origin: wildfly/wildfly

  1. public void run() {
  2. Address dest=msg.getDest();
  3. boolean multicast=dest == null;
  4. try {
  5. if(tp.statsEnabled()) {
  6. MsgStats msg_stats=tp.getMessageStats();
  7. if(msg.isFlagSet(Message.Flag.OOB))
  8. msg_stats.incrNumOOBMsgsReceived(1);
  9. else if(msg.isFlagSet(Message.Flag.INTERNAL))
  10. msg_stats.incrNumInternalMsgsReceived(1);
  11. else
  12. msg_stats.incrNumMsgsReceived(1);
  13. msg_stats.incrNumBytesReceived(msg.getLength());
  14. }
  15. byte[] cname=getClusterName();
  16. tp.passMessageUp(msg, cname, true, multicast, true);
  17. }
  18. catch(Throwable t) {
  19. log.error(Util.getMessage("PassUpFailure"), t);
  20. }
  21. }

代码示例来源:origin: wildfly/wildfly

  1. public Object up(Message msg) {
  2. if(msg.getDest() == null || msg.isFlagSet(Message.Flag.NO_RELIABILITY)) // only handle unicast messages
  3. return up_prot.up(msg); // pass up
  4. UnicastHeader3 hdr=msg.getHeader(this.id);
  5. if(hdr == null)
  6. return up_prot.up(msg);
  7. Address sender=msg.getSrc();
  8. switch(hdr.type) {
  9. case UnicastHeader3.DATA: // received regular message
  10. if(is_trace)
  11. log.trace("%s <-- DATA(%s: #%d, conn_id=%d%s)", local_addr, sender, hdr.seqno, hdr.conn_id, hdr.first? ", first" : "");
  12. if(Objects.equals(local_addr, sender))
  13. handleDataReceivedFromSelf(sender, hdr.seqno, msg);
  14. else
  15. handleDataReceived(sender, hdr.seqno, hdr.conn_id, hdr.first, msg);
  16. break; // we pass the deliverable message up in handleDataReceived()
  17. default:
  18. handleUpEvent(sender, msg, hdr);
  19. break;
  20. }
  21. return null;
  22. }

代码示例来源:origin: wildfly/wildfly

  1. public Object up(Message msg) {
  2. Address dest=msg.getDest();
  3. RelayHeader hdr=msg.getHeader(getId());
  4. if(hdr != null)
  5. return handleUpEvent(msg, hdr);
  6. if(is_coord && relay && dest == null && !msg.isFlagSet(Message.Flag.NO_RELAY)) {
  7. Message tmp=msg.copy(true, Global.BLOCKS_START_ID); // we only copy headers from building blocks
  8. try {
  9. byte[] buf=Util.streamableToByteBuffer(tmp);
  10. forward(buf, 0, buf.length);
  11. }
  12. catch(Exception e) {
  13. log.warn("failed relaying message", e);
  14. }
  15. }
  16. return up_prot.up(msg);
  17. }

代码示例来源:origin: wildfly/wildfly

  1. public Object down(Message msg) {
  2. if(msg.isFlagSet(Message.Flag.NO_FC))
  3. return down_prot.down(msg);
  4. Address dest=msg.getDest();
  5. boolean multicast=dest == null;
  6. boolean handle_multicasts=handleMulticastMessage();
  7. boolean process=(handle_multicasts && multicast) || (!handle_multicasts && !multicast);
  8. if(!process)
  9. return down_prot.down(msg);
  10. int length=msg.getLength();
  11. if(length == 0)
  12. return down_prot.down(msg);
  13. Object retval=handleDownMessage(msg);
  14. // if the message is DONT_LOOPBACK, we will not receive it, therefore the credit
  15. // check needs to be done now
  16. if(msg.isTransientFlagSet(Message.TransientFlag.DONT_LOOPBACK)) {
  17. long new_credits=adjustCredit(received, local_addr, length);
  18. if(new_credits > 0)
  19. sendCredit(local_addr, new_credits);
  20. }
  21. return retval;
  22. }

相关文章