public void onPublicationReady( final long correlationId, final long registrationId, final int streamId, final int sessionId, final String logFileName, final int positionCounterId, final int channelStatusCounterId, final boolean isExclusive) { publicationReady .correlationId(correlationId) .registrationId(registrationId) .sessionId(sessionId) .streamId(streamId) .publicationLimitCounterId(positionCounterId) .channelStatusCounterId(channelStatusCounterId) .logFileName(logFileName); final int msgTypeId = isExclusive ? ON_EXCLUSIVE_PUBLICATION_READY : ON_PUBLICATION_READY; transmit(msgTypeId, buffer, 0, publicationReady.length()); }
public ClientProxy(final BroadcastTransmitter transmitter) { this.transmitter = transmitter; errorResponse.wrap(buffer, 0); imageReady.wrap(buffer, 0); publicationReady.wrap(buffer, 0); subscriptionReady.wrap(buffer, 0); operationSucceeded.wrap(buffer, 0); imageMessage.wrap(buffer, 0); counterUpdate.wrap(buffer, 0); clientTimeout.wrap(buffer, 0); }
@Test public void closingPublicationDoesNotRemoveOtherPublications() { whenReceiveBroadcastOnMessage( ControlProtocolEvents.ON_PUBLICATION_READY, publicationReadyBuffer, (buffer) -> publicationReady.length()); final Publication publication = conductor.addPublication(CHANNEL, STREAM_ID_1); whenReceiveBroadcastOnMessage( ControlProtocolEvents.ON_PUBLICATION_READY, publicationReadyBuffer, (buffer) -> { publicationReady.streamId(STREAM_ID_2); publicationReady.sessionId(SESSION_ID_2); publicationReady.logFileName(SESSION_ID_2 + "-log"); publicationReady.correlationId(CORRELATION_ID_2); publicationReady.registrationId(CORRELATION_ID_2); return publicationReady.length(); }); conductor.addPublication(CHANNEL, STREAM_ID_2); whenReceiveBroadcastOnMessage( ControlProtocolEvents.ON_OPERATION_SUCCESS, operationSuccessBuffer, (buffer) -> OperationSucceededFlyweight.LENGTH); publication.close(); verify(driverProxy).removePublication(CORRELATION_ID); verify(driverProxy, never()).removePublication(CORRELATION_ID_2); }
@Test public void shouldNotMapBuffersForUnknownCorrelationId() { whenReceiveBroadcastOnMessage( ControlProtocolEvents.ON_PUBLICATION_READY, publicationReadyBuffer, (buffer) -> { publicationReady.correlationId(UNKNOWN_CORRELATION_ID); publicationReady.registrationId(UNKNOWN_CORRELATION_ID); return publicationReady.length(); }); whenReceiveBroadcastOnMessage( ControlProtocolEvents.ON_PUBLICATION_READY, publicationReadyBuffer, (buffer) -> { publicationReady.correlationId(CORRELATION_ID); return publicationReady.length(); }); final Publication publication = conductor.addPublication(CHANNEL, STREAM_ID_1); conductor.doWork(); verify(logBuffersFactory, times(1)).map(anyString()); assertThat(publication.registrationId(), is(CORRELATION_ID)); }
publicationReady.wrap(publicationReadyBuffer, 0); subscriptionReady.wrap(subscriptionReadyBuffer, 0); operationSuccess.wrap(operationSuccessBuffer, 0); clientTimeout.wrap(clientTimeoutBuffer, 0); publicationReady.correlationId(CORRELATION_ID); publicationReady.registrationId(CORRELATION_ID); publicationReady.sessionId(SESSION_ID_1); publicationReady.streamId(STREAM_ID_1); publicationReady.logFileName(SESSION_ID_1 + "-log");
@Test public void addPublicationShouldMapLogFile() { whenReceiveBroadcastOnMessage( ControlProtocolEvents.ON_PUBLICATION_READY, publicationReadyBuffer, (buffer) -> publicationReady.length()); conductor.addPublication(CHANNEL, STREAM_ID_1); verify(logBuffersFactory).map(SESSION_ID_1 + "-log"); }
@Test public void addPublicationShouldNotifyMediaDriver() { whenReceiveBroadcastOnMessage( ControlProtocolEvents.ON_PUBLICATION_READY, publicationReadyBuffer, (buffer) -> publicationReady.length()); conductor.addPublication(CHANNEL, STREAM_ID_1); verify(driverProxy).addPublication(CHANNEL, STREAM_ID_1); }
private static void dissect(final PublicationBuffersReadyFlyweight msg, final StringBuilder builder) { builder .append(msg.sessionId()) .append(':') .append(msg.streamId()) .append(' ') .append(msg.publicationLimitCounterId()) .append(' ') .append(msg.channelStatusCounterId()) .append(" [") .append(msg.correlationId()) .append(' ') .append(msg.registrationId()) .append("] ") .append(msg.logFileName()); }
case CMD_OUT_EXCLUSIVE_PUBLICATION_READY: final PublicationBuffersReadyFlyweight publicationReadyEvent = PUB_READY; publicationReadyEvent.wrap(buffer, offset + relativeOffset); dissect(publicationReadyEvent, builder); break;
@Test public void closingPublicationShouldPurgeCache() { whenReceiveBroadcastOnMessage( ControlProtocolEvents.ON_PUBLICATION_READY, publicationReadyBuffer, (buffer) -> publicationReady.length()); final Publication firstPublication = conductor.addPublication(CHANNEL, STREAM_ID_1); whenReceiveBroadcastOnMessage( ControlProtocolEvents.ON_OPERATION_SUCCESS, operationSuccessBuffer, (buffer) -> OperationSucceededFlyweight.LENGTH); firstPublication.close(); whenReceiveBroadcastOnMessage( ControlProtocolEvents.ON_PUBLICATION_READY, publicationReadyBuffer, (buffer) -> publicationReady.length()); final Publication secondPublication = conductor.addPublication(CHANNEL, STREAM_ID_1); assertThat(firstPublication, not(sameInstance(secondPublication))); }
publicationReady.wrap(buffer, index); final long correlationId = publicationReady.correlationId(); if (correlationId == activeCorrelationId) listener.onNewPublication( correlationId, publicationReady.registrationId(), publicationReady.streamId(), publicationReady.sessionId(), publicationReady.publicationLimitCounterId(), publicationReady.channelStatusCounterId(), publicationReady.logFileName()); publicationReady.wrap(buffer, index); final long correlationId = publicationReady.correlationId(); if (correlationId == activeCorrelationId) listener.onNewExclusivePublication( correlationId, publicationReady.registrationId(), publicationReady.streamId(), publicationReady.sessionId(), publicationReady.publicationLimitCounterId(), publicationReady.channelStatusCounterId(), publicationReady.logFileName());
public ClientProxy(final BroadcastTransmitter transmitter) { this.transmitter = transmitter; errorResponse.wrap(buffer, 0); imageReady.wrap(buffer, 0); publicationReady.wrap(buffer, 0); subscriptionReady.wrap(buffer, 0); operationSucceeded.wrap(buffer, 0); imageMessage.wrap(buffer, 0); counterUpdate.wrap(buffer, 0); clientTimeout.wrap(buffer, 0); }
@Test public void closingPublicationShouldNotifyMediaDriver() { whenReceiveBroadcastOnMessage( ControlProtocolEvents.ON_PUBLICATION_READY, publicationReadyBuffer, (buffer) -> publicationReady.length()); final Publication publication = conductor.addPublication(CHANNEL, STREAM_ID_1); whenReceiveBroadcastOnMessage( ControlProtocolEvents.ON_OPERATION_SUCCESS, operationSuccessBuffer, (buffer) -> OperationSucceededFlyweight.LENGTH); publication.close(); verify(driverProxy).removePublication(CORRELATION_ID); }
public void onPublicationReady( final long correlationId, final long registrationId, final int streamId, final int sessionId, final String logFileName, final int positionCounterId, final int channelStatusCounterId, final boolean isExclusive) { publicationReady .correlationId(correlationId) .registrationId(registrationId) .sessionId(sessionId) .streamId(streamId) .publicationLimitCounterId(positionCounterId) .channelStatusCounterId(channelStatusCounterId) .logFileName(logFileName); final int msgTypeId = isExclusive ? ON_EXCLUSIVE_PUBLICATION_READY : ON_PUBLICATION_READY; transmit(msgTypeId, buffer, 0, publicationReady.length()); }
public ClientProxy(final BroadcastTransmitter transmitter) { this.transmitter = transmitter; errorResponse.wrap(buffer, 0); imageReady.wrap(buffer, 0); publicationReady.wrap(buffer, 0); subscriptionReady.wrap(buffer, 0); operationSucceeded.wrap(buffer, 0); imageMessage.wrap(buffer, 0); counterUpdate.wrap(buffer, 0); clientTimeout.wrap(buffer, 0); }
@Test(expected = RegistrationException.class) public void shouldFailToClosePublicationOnMediaDriverError() { whenReceiveBroadcastOnMessage( ControlProtocolEvents.ON_PUBLICATION_READY, publicationReadyBuffer, (buffer) -> publicationReady.length()); final Publication publication = conductor.addPublication(CHANNEL, STREAM_ID_1); whenReceiveBroadcastOnMessage( ControlProtocolEvents.ON_ERROR, errorMessageBuffer, (buffer) -> { errorResponse.errorCode(INVALID_CHANNEL); errorResponse.errorMessage("channel unknown"); errorResponse.offendingCommandCorrelationId(CLOSE_CORRELATION_ID); return errorResponse.length(); }); publication.close(); }
public void onPublicationReady( final long correlationId, final long registrationId, final int streamId, final int sessionId, final String logFileName, final int positionCounterId, final int channelStatusCounterId, final boolean isExclusive) { publicationReady .correlationId(correlationId) .registrationId(registrationId) .sessionId(sessionId) .streamId(streamId) .publicationLimitCounterId(positionCounterId) .channelStatusCounterId(channelStatusCounterId) .logFileName(logFileName); final int msgTypeId = isExclusive ? ON_EXCLUSIVE_PUBLICATION_READY : ON_PUBLICATION_READY; transmit(msgTypeId, buffer, 0, publicationReady.length()); }
case CMD_OUT_EXCLUSIVE_PUBLICATION_READY: final PublicationBuffersReadyFlyweight publicationReadyEvent = PUB_READY; publicationReadyEvent.wrap(buffer, offset + relativeOffset); dissect(publicationReadyEvent, builder); break;
private static void dissect(final PublicationBuffersReadyFlyweight msg, final StringBuilder builder) { builder .append(msg.sessionId()) .append(':') .append(msg.streamId()) .append(' ') .append(msg.publicationLimitCounterId()) .append(' ') .append(msg.channelStatusCounterId()) .append(" [") .append(msg.correlationId()) .append(' ') .append(msg.registrationId()) .append("] ") .append(msg.logFileName()); }
publicationReady.wrap(buffer, index); final long correlationId = publicationReady.correlationId(); if (correlationId == activeCorrelationId) listener.onNewPublication( correlationId, publicationReady.registrationId(), publicationReady.streamId(), publicationReady.sessionId(), publicationReady.publicationLimitCounterId(), publicationReady.channelStatusCounterId(), publicationReady.logFileName()); publicationReady.wrap(buffer, index); final long correlationId = publicationReady.correlationId(); if (correlationId == activeCorrelationId) listener.onNewExclusivePublication( correlationId, publicationReady.registrationId(), publicationReady.streamId(), publicationReady.sessionId(), publicationReady.publicationLimitCounterId(), publicationReady.channelStatusCounterId(), publicationReady.logFileName());