Introduction
The java directpublication example is extracted from the most popular open source projects, you can refer to the following example for usage.
Programming language: Java
Class/type: DirectPublication
Example#1File:
SubscriptionLink.javaProject:
edwardt/Aeron
public void close() {
positionByImageMap.forEach(PublicationImage::removeSubscriber);
if (null != directPublication) {
directPublication.removeSubscription(directPublicationSubscriberPosition);
directPublication.decRef();
}
}
Example#2File:
SubscriptionLink.javaProject:
edwardt/Aeron
public SubscriptionLink(
final long registrationId,
final int streamId,
final DirectPublication directPublication,
final ReadablePosition subscriberPosition,
final AeronClient aeronClient) {
this.registrationId = registrationId;
this.channelEndpoint =
null; // will prevent matches between PublicationImages and DirectPublications
this.streamId = streamId;
this.aeronClient = aeronClient;
this.directPublication = directPublication;
directPublication.incRef();
this.directPublicationSubscriberPosition = subscriberPosition;
}
Example#3File:
DirectPublicationTest.javaProject:
utanapishtim/Aeron
@SuppressWarnings("unchecked")
@Before
public void setUp() throws Exception {
final RingBuffer fromClientCommands =
new ManyToOneRingBuffer(
new UnsafeBuffer(ByteBuffer.allocateDirect(Configuration.CONDUCTOR_BUFFER_LENGTH)));
final RawLogFactory mockRawLogFactory = mock(RawLogFactory.class);
final UnsafeBuffer counterBuffer = new UnsafeBuffer(ByteBuffer.allocateDirect(BUFFER_LENGTH));
final CountersManager countersManager =
new CountersManager(
new UnsafeBuffer(ByteBuffer.allocateDirect(BUFFER_LENGTH)), counterBuffer);
when(mockRawLogFactory.newDirectPublication(anyInt(), anyInt(), anyLong()))
.thenReturn(LogBufferHelper.newTestLogBuffers(TERM_BUFFER_LENGTH, TERM_META_DATA_LENGTH));
final MediaDriver.Context ctx =
new MediaDriver.Context()
.toDriverCommands(fromClientCommands)
.rawLogBuffersFactory(mockRawLogFactory)
.clientProxy(mock(ClientProxy.class))
.eventLogger(mock(EventLogger.class))
.toConductorFromReceiverCommandQueue(mock(OneToOneConcurrentArrayQueue.class))
.toConductorFromSenderCommandQueue(mock(OneToOneConcurrentArrayQueue.class))
.toEventReader(mock(ManyToOneRingBuffer.class))
.epochClock(new SystemEpochClock())
.countersManager(countersManager)
.nanoClock(nanoClock);
ctx.counterValuesBuffer(counterBuffer);
driverProxy = new DriverProxy(fromClientCommands);
driverConductor = new DriverConductor(ctx);
// have a conductor construct one for us
driverProxy.addPublication(CommonContext.IPC_CHANNEL, STREAM_ID);
driverConductor.doWork();
directPublication = driverConductor.getDirectPublication(STREAM_ID);
publisherLimit = new UnsafeBufferPosition(counterBuffer, directPublication.publisherLimitId());
}
Example#4File:
DirectPublicationTest.javaProject:
utanapishtim/Aeron
@Test
public void shouldHaveJoiningPositionZeroWhenNoSubscriptions() {
assertThat(directPublication.joiningPosition(), is(0L));
}
Example#5File:
DirectPublicationTest.javaProject:
utanapishtim/Aeron
@Test
public void shouldKeepPublisherLimitZeroOnNoSubscriptionUpdate() {
directPublication.updatePublishersLimit();
assertThat(publisherLimit.get(), is(0L));
}