/** * Send the bcast request with the given localSeqID * * @param seqID the local sequence id of the */ private void _transmitBcastRequest(long seqID) { Message reqMsg; // i. If NULL_STATE, then ignore, just transient state before // shutting down the retransmission thread // ii. If blocked, be patient - reschedule // iii. If the request is not pending any more, acknowledge it // iv. Create a broadcast request and send it to the sequencer if(state == NULL_STATE) { if(log.isInfoEnabled()) log.info(ExternalStrings.TOTAL_TRANSMIT_BCAST_REQ_0__IN_NULL_STATE, seqID); return; } if(state == BLOCK) return; synchronized(reqTbl) { if(!reqTbl.containsKey(Long.valueOf(seqID))) { retransmitter.ack(seqID); return; } } reqMsg=new Message(sequencerAddr, addr, new byte[0]); reqMsg.putHeader(getName(), new Header(Header.REQ, seqID, NULL_ID)); passDown(new Event(Event.MSG, reqMsg)); }
retransmitter.ack(header.localSequenceID); id=header.localSequenceID;