private void assertIterateKeys(final Collection<Integer> initialSet) { final Collection<Integer> copyToSet = new HashSet<>(); for (final Integer aInteger : intToObjectMap.keySet()) { //noinspection UseBulkOperation copyToSet.add(aInteger); } assertThat(copyToSet, is(initialSet)); }
public void addSubscription(final int streamId) { final StreamInterest streamInterest = streamInterestByIdMap.get(streamId); if (null == streamInterest) { streamInterestByIdMap.put(streamId, new StreamInterest(true)); } else if (!streamInterest.isForAllSessions) { streamInterest.isForAllSessions = true; for (final int sessionId : streamInterest.sessionInterestByIdMap.keySet()) { final SessionInterest sessionInterest = streamInterest.sessionInterestByIdMap.get(sessionId); if (NO_INTEREST == sessionInterest.state) { streamInterest.sessionInterestByIdMap.remove(sessionId); } } } }
@Test public void shouldIterateKeysGettingIntAsPrimitive() { final Collection<Integer> initialSet = new HashSet<>(); for (int i = 0; i < 11; i++) { final String value = Integer.toString(i); intToObjectMap.put(i, value); initialSet.add(i); } final Collection<Integer> copyToSet = new HashSet<>(); for (final Int2ObjectHashMap.KeyIterator iter = intToObjectMap.keySet().iterator(); iter.hasNext(); ) { copyToSet.add(iter.nextInt()); } assertThat(copyToSet, is(initialSet)); }
@Test public void shouldIterateAndHandleRemove() { final Collection<Integer> initialSet = new HashSet<>(); final int count = 11; for (int i = 0; i < count; i++) { final String value = Integer.toString(i); intToObjectMap.put(i, value); initialSet.add(i); } final Collection<Integer> copyOfSet = new HashSet<>(); int i = 0; for (final Iterator<Integer> iter = intToObjectMap.keySet().iterator(); iter.hasNext(); ) { final Integer item = iter.next(); if (i++ == 7) { iter.remove(); } else { copyOfSet.add(item); } } final int reducedSetSize = count - 1; assertThat(initialSet.size(), is(count)); assertThat(intToObjectMap.size(), is(reducedSetSize)); assertThat(copyOfSet.size(), is(reducedSetSize)); }
public void removeSubscription(final int streamId) { final StreamInterest streamInterest = streamInterestByIdMap.get(streamId); if (null == streamInterest) { throw new UnknownSubscriptionException("No subscription registered on stream " + streamId); } for (final int sessionId : streamInterest.sessionInterestByIdMap.keySet()) { final SessionInterest sessionInterest = streamInterest.sessionInterestByIdMap.get(sessionId); if (!streamInterest.subscribedSessionIds.contains(sessionId)) { if (null != sessionInterest.image) { sessionInterest.image.ifActiveGoInactive(); } streamInterest.sessionInterestByIdMap.remove(sessionId); } } streamInterest.isForAllSessions = false; if (streamInterest.subscribedSessionIds.isEmpty()) { streamInterestByIdMap.remove(streamId); } }
assertThat(map.keySet(), containsInAnyOrder(0, 1));
public void addSubscription(final int streamId) { final StreamInterest streamInterest = streamInterestByIdMap.get(streamId); if (null == streamInterest) { streamInterestByIdMap.put(streamId, new StreamInterest(true)); } else if (!streamInterest.isForAllSessions) { streamInterest.isForAllSessions = true; for (final int sessionId : streamInterest.sessionInterestByIdMap.keySet()) { final SessionInterest sessionInterest = streamInterest.sessionInterestByIdMap.get(sessionId); if (NO_INTEREST == sessionInterest.state) { streamInterest.sessionInterestByIdMap.remove(sessionId); } } } }
public void addSubscription(final int streamId) { final StreamInterest streamInterest = streamInterestByIdMap.get(streamId); if (null == streamInterest) { streamInterestByIdMap.put(streamId, new StreamInterest(true)); } else if (!streamInterest.isForAllSessions) { streamInterest.isForAllSessions = true; for (final int sessionId : streamInterest.sessionInterestByIdMap.keySet()) { final SessionInterest sessionInterest = streamInterest.sessionInterestByIdMap.get(sessionId); if (NO_INTEREST == sessionInterest.state) { streamInterest.sessionInterestByIdMap.remove(sessionId); } } } }
public void removeSubscription(final int streamId) { final StreamInterest streamInterest = streamInterestByIdMap.get(streamId); if (null == streamInterest) { throw new UnknownSubscriptionException("No subscription registered on stream " + streamId); } for (final int sessionId : streamInterest.sessionInterestByIdMap.keySet()) { final SessionInterest sessionInterest = streamInterest.sessionInterestByIdMap.get(sessionId); if (!streamInterest.subscribedSessionIds.contains(sessionId)) { if (null != sessionInterest.image) { sessionInterest.image.ifActiveGoInactive(); } streamInterest.sessionInterestByIdMap.remove(sessionId); } } streamInterest.isForAllSessions = false; if (streamInterest.subscribedSessionIds.isEmpty()) { streamInterestByIdMap.remove(streamId); } }
public void removeSubscription(final int streamId) { final StreamInterest streamInterest = streamInterestByIdMap.get(streamId); if (null == streamInterest) { throw new UnknownSubscriptionException("No subscription registered on stream " + streamId); } for (final int sessionId : streamInterest.sessionInterestByIdMap.keySet()) { final SessionInterest sessionInterest = streamInterest.sessionInterestByIdMap.get(sessionId); if (!streamInterest.subscribedSessionIds.contains(sessionId)) { if (null != sessionInterest.image) { sessionInterest.image.ifActiveGoInactive(); } streamInterest.sessionInterestByIdMap.remove(sessionId); } } streamInterest.isForAllSessions = false; if (streamInterest.subscribedSessionIds.isEmpty()) { streamInterestByIdMap.remove(streamId); } }
@Override public int onFragment( DirectBuffer buffer, int offset, int length, int streamId, boolean isMarkedFailed) { requestHeaderDescriptor.wrap(buffer, offset); final long requestId = requestHeaderDescriptor.requestId(); final int requestStreamId = requestHeaderDescriptor.streamId(); offset += ControlMessageRequestHeaderDescriptor.headerLength(); messageHeaderDecoder.wrap(requestBuffer, 0); offset += messageHeaderDecoder.encodedLength(); requestDecoder.wrap( buffer, offset, requestDecoder.sbeBlockLength(), requestDecoder.sbeSchemaVersion()); final ControlMessageType messageType = requestDecoder.messageType(); lastRequestMessageType(messageType); final int partitionId = requestDecoder.partitionId(); ensureBufferCapacity(requestDecoder.dataLength()); requestDecoder.getData(requestBuffer, 0, requestDecoder.dataLength()); final ControlMessageHandler handler = handlersByTypeId.get(messageType.value()); if (handler != null) { handler.handle(actor, partitionId, requestBuffer, requestId, requestStreamId); } else { sendResponse( actor, () -> errorResponseWriter .unsupportedMessage( getLastRequestMessageType().name(), handlersByTypeId.keySet().toArray()) .tryWriteResponseOrLogFailure(requestStreamId, requestId)); } return FragmentHandler.CONSUME_FRAGMENT_RESULT; }
@Override public int onFragment( DirectBuffer buffer, int offset, int length, int streamId, boolean isMarkedFailed) { requestHeaderDescriptor.wrap(buffer, offset); final long requestId = requestHeaderDescriptor.requestId(); final int requestStreamId = requestHeaderDescriptor.streamId(); offset += ControlMessageRequestHeaderDescriptor.headerLength(); messageHeaderDecoder.wrap(requestBuffer, 0); offset += messageHeaderDecoder.encodedLength(); requestDecoder.wrap( buffer, offset, requestDecoder.sbeBlockLength(), requestDecoder.sbeSchemaVersion()); final ControlMessageType messageType = requestDecoder.messageType(); lastRequestMessageType(messageType); final int partitionId = requestDecoder.partitionId(); ensureBufferCapacity(requestDecoder.dataLength()); requestDecoder.getData(requestBuffer, 0, requestDecoder.dataLength()); final ControlMessageHandler handler = handlersByTypeId.get(messageType.value()); if (handler != null) { handler.handle(actor, partitionId, requestBuffer, requestId, requestStreamId); } else { sendResponse( actor, () -> errorResponseWriter .unsupportedMessage( getLastRequestMessageType().name(), handlersByTypeId.keySet().toArray()) .tryWriteResponseOrLogFailure(requestStreamId, requestId)); } return FragmentHandler.CONSUME_FRAGMENT_RESULT; }