public String toString() { final StringBuilder sb = new StringBuilder(); final String formattedFlags = String.format("%1$8s", Integer.toBinaryString(flags())).replace(' ', '0'); sb.append("NAK Message{") .append("frame_length=").append(frameLength()) .append(" version=").append(version()) .append(" flags=").append(formattedFlags) .append(" type=").append(headerType()) .append(" term_offset=").append(termOffset()) .append(" session_id=").append(sessionId()) .append(" stream_id=").append(streamId()) .append(" term_id=").append(termId()) .append(" length=").append(length()) .append("}"); return sb.toString(); } }
public ControlTransportPoller() { byteBuffer = NetworkUtil.allocateDirectAlignedAndPadded( Configuration.MAX_UDP_PAYLOAD_LENGTH, CACHE_LINE_LENGTH * 2); unsafeBuffer = new UnsafeBuffer(byteBuffer); nakMessage = new NakFlyweight(unsafeBuffer); statusMessage = new StatusMessageFlyweight(unsafeBuffer); rttMeasurement = new RttMeasurementFlyweight(unsafeBuffer); }
public void sendNakMessage( final ImageConnection[] controlAddresses, final int sessionId, final int streamId, final int termId, final int termOffset, final int length) { if (!isClosed) { nakBuffer.clear(); nakFlyweight .streamId(streamId) .sessionId(sessionId) .termId(termId) .termOffset(termOffset) .length(length); send(nakBuffer, NakFlyweight.HEADER_LENGTH, controlAddresses); } }
private static void dissect(final NakFlyweight msg, final StringBuilder builder) { builder .append("NAK ") .append(msg.flags()) .append(" len ") .append(msg.frameLength()) .append(' ') .append(msg.sessionId()) .append(':') .append(msg.streamId()) .append(':') .append(msg.termId()) .append(" @") .append(msg.termOffset()) .append(' ') .append(msg.length()); }
byteBuffer.limit(nakMessageOffset + NakFlyweight.HEADER_LENGTH).position(nakMessageOffset); nakBuffer = byteBuffer.slice(); nakFlyweight = new NakFlyweight(nakBuffer); .version(HeaderFlyweight.CURRENT_VERSION) .headerType(HeaderFlyweight.HDR_TYPE_NAK) .frameLength(NakFlyweight.HEADER_LENGTH);
public void onNakMessage( final NakFlyweight msg, final UnsafeBuffer buffer, final int length, final InetSocketAddress srcAddress) { if (!controlLossGenerator.shouldDropFrame(srcAddress, msg, msg.frameLength())) { super.onNakMessage(msg, buffer, length, srcAddress); } }
public void onNakMessage( final NakFlyweight msg, final UnsafeBuffer buffer, final int length, final InetSocketAddress srcAddress) { final NetworkPublication publication = publicationBySessionAndStreamId.get(msg.sessionId(), msg.streamId()); if (null != publication) { publication.onNak(msg.termId(), msg.termOffset(), msg.length()); nakMessagesReceived.incrementOrdered(); } }
private static void dissect(final NakFlyweight msg, final StringBuilder builder) { builder .append("NAK ") .append(msg.flags()) .append(" len ") .append(msg.frameLength()) .append(' ') .append(msg.sessionId()) .append(':') .append(msg.streamId()) .append(':') .append(msg.termId()) .append(" @") .append(msg.termOffset()) .append(' ') .append(msg.length()); }
byteBuffer.limit(nakMessageOffset + NakFlyweight.HEADER_LENGTH).position(nakMessageOffset); nakBuffer = byteBuffer.slice(); nakFlyweight = new NakFlyweight(nakBuffer); .version(HeaderFlyweight.CURRENT_VERSION) .headerType(HeaderFlyweight.HDR_TYPE_NAK) .frameLength(NakFlyweight.HEADER_LENGTH);
public void onNakMessage( final NakFlyweight msg, final UnsafeBuffer buffer, final int length, final InetSocketAddress srcAddress) { if (!controlLossGenerator.shouldDropFrame(srcAddress, msg, msg.frameLength())) { super.onNakMessage(msg, buffer, length, srcAddress); } }
@Test public void shouldEncodeAndDecodeNakCorrectly() { encodeNakHeader.wrap(aBuff); encodeNakHeader.version((short)1); encodeNakHeader.flags((byte)0); encodeNakHeader.headerType(HeaderFlyweight.HDR_TYPE_NAK); encodeNakHeader.frameLength(NakFlyweight.HEADER_LENGTH); encodeNakHeader.sessionId(0xdeadbeef); encodeNakHeader.streamId(0x44332211); encodeNakHeader.termId(0x99887766); encodeNakHeader.termOffset(0x22334); encodeNakHeader.length(512); decodeNakHeader.wrap(aBuff); assertThat(decodeNakHeader.version(), is((short)1)); assertThat(decodeNakHeader.flags(), is((short)0)); assertThat(decodeNakHeader.headerType(), is(HeaderFlyweight.HDR_TYPE_NAK)); assertThat(decodeNakHeader.frameLength(), is(NakFlyweight.HEADER_LENGTH)); assertThat(decodeNakHeader.sessionId(), is(0xdeadbeef)); assertThat(decodeNakHeader.streamId(), is(0x44332211)); assertThat(decodeNakHeader.termId(), is(0x99887766)); assertThat(decodeNakHeader.termOffset(), is(0x22334)); assertThat(decodeNakHeader.length(), is(512)); }
public void onNakMessage( final NakFlyweight msg, final UnsafeBuffer buffer, final int length, final InetSocketAddress srcAddress) { final NetworkPublication publication = publicationBySessionAndStreamId.get(msg.sessionId(), msg.streamId()); if (null != publication) { publication.onNak(msg.termId(), msg.termOffset(), msg.length()); nakMessagesReceived.incrementOrdered(); } }
byteBuffer.limit(nakMessageOffset + NakFlyweight.HEADER_LENGTH).position(nakMessageOffset); nakBuffer = byteBuffer.slice(); nakFlyweight = new NakFlyweight(nakBuffer); .version(HeaderFlyweight.CURRENT_VERSION) .headerType(HeaderFlyweight.HDR_TYPE_NAK) .frameLength(NakFlyweight.HEADER_LENGTH);
public void onNakMessage( final NakFlyweight msg, final UnsafeBuffer buffer, final int length, final InetSocketAddress srcAddress) { if (!controlLossGenerator.shouldDropFrame(srcAddress, msg, msg.frameLength())) { super.onNakMessage(msg, buffer, length, srcAddress); } }
public ControlTransportPoller() { byteBuffer = NetworkUtil.allocateDirectAlignedAndPadded( Configuration.MAX_UDP_PAYLOAD_LENGTH, CACHE_LINE_LENGTH * 2); unsafeBuffer = new UnsafeBuffer(byteBuffer); nakMessage = new NakFlyweight(unsafeBuffer); statusMessage = new StatusMessageFlyweight(unsafeBuffer); rttMeasurement = new RttMeasurementFlyweight(unsafeBuffer); }
public String toString() { final StringBuilder sb = new StringBuilder(); final String formattedFlags = String.format("%1$8s", Integer.toBinaryString(flags())).replace(' ', '0'); sb.append("NAK Message{") .append("frame_length=").append(frameLength()) .append(" version=").append(version()) .append(" flags=").append(formattedFlags) .append(" type=").append(headerType()) .append(" term_offset=").append(termOffset()) .append(" session_id=").append(sessionId()) .append(" stream_id=").append(streamId()) .append(" term_id=").append(termId()) .append(" length=").append(length()) .append("}"); return sb.toString(); } }
public void sendNakMessage( final ImageConnection[] controlAddresses, final int sessionId, final int streamId, final int termId, final int termOffset, final int length) { if (!isClosed) { nakBuffer.clear(); nakFlyweight .streamId(streamId) .sessionId(sessionId) .termId(termId) .termOffset(termOffset) .length(length); send(nakBuffer, NakFlyweight.HEADER_LENGTH, controlAddresses); } }
public ControlTransportPoller() { byteBuffer = NetworkUtil.allocateDirectAlignedAndPadded( Configuration.MAX_UDP_PAYLOAD_LENGTH, CACHE_LINE_LENGTH * 2); unsafeBuffer = new UnsafeBuffer(byteBuffer); nakMessage = new NakFlyweight(unsafeBuffer); statusMessage = new StatusMessageFlyweight(unsafeBuffer); rttMeasurement = new RttMeasurementFlyweight(unsafeBuffer); }
public String toString() { final StringBuilder sb = new StringBuilder(); final String formattedFlags = String.format("%1$8s", Integer.toBinaryString(flags())).replace(' ', '0'); sb.append("NAK Message{") .append("frame_length=").append(frameLength()) .append(" version=").append(version()) .append(" flags=").append(formattedFlags) .append(" type=").append(headerType()) .append(" term_offset=").append(termOffset()) .append(" session_id=").append(sessionId()) .append(" stream_id=").append(streamId()) .append(" term_id=").append(termId()) .append(" length=").append(length()) .append("}"); return sb.toString(); } }
public void sendNakMessage( final ImageConnection[] controlAddresses, final int sessionId, final int streamId, final int termId, final int termOffset, final int length) { if (!isClosed) { nakBuffer.clear(); nakFlyweight .streamId(streamId) .sessionId(sessionId) .termId(termId) .termOffset(termOffset) .length(length); send(nakBuffer, NakFlyweight.HEADER_LENGTH, controlAddresses); } }