org.apache.activemq.artemis.core.paging.cursor.PageCache

Here are the examples of the java api class org.apache.activemq.artemis.core.paging.cursor.PageCache taken from open source projects.

1. PageCursorStressTest#testReadNextPage()

Project: activemq-artemis
File: PageCursorStressTest.java
@Test
public void testReadNextPage() throws Exception {
    final int NUM_MESSAGES = 1;
    int numberOfPages = addMessages(NUM_MESSAGES, 1024);
    System.out.println("NumberOfPages = " + numberOfPages);
    PageCursorProvider cursorProvider = lookupCursorProvider();
    PageCache cache = cursorProvider.getPageCache(2);
    assertNull(cache);
}

2. PageCursorProviderImpl#getMessage()

Project: activemq-artemis
File: PageCursorProviderImpl.java
@Override
public PagedMessage getMessage(final PagePosition pos) {
    PageCache cache = getPageCache(pos.getPageNr());
    if (cache == null || pos.getMessageNr() >= cache.getNumberOfMessages()) {
        // sanity check, this should never happen unless there's a bug
        throw new NonExistentPage("Invalid messageNumber passed = " + pos + " on " + cache);
    }
    return cache.getMessage(pos.getMessageNr());
}

3. PageSubscriptionImpl#internalGetNext()

Project: activemq-artemis
File: PageSubscriptionImpl.java
private PagedReference internalGetNext(final PagePosition pos) {
    PagePosition retPos = pos.nextMessage();
    PageCache cache = cursorProvider.getPageCache(pos.getPageNr());
    if (cache != null && !cache.isLive() && retPos.getMessageNr() >= cache.getNumberOfMessages()) {
        // The next message is beyond what's available at the current page, so we need to move to the next page
        cache = null;
    }
    // it will scan for the next available page
    while ((cache == null && retPos.getPageNr() <= pageStore.getCurrentWritingPage()) || (cache != null && retPos.getPageNr() <= pageStore.getCurrentWritingPage() && cache.getNumberOfMessages() == 0)) {
        retPos = moveNextPage(retPos);
        cache = cursorProvider.getPageCache(retPos.getPageNr());
    }
    if (cache == null) {
        // it will be null in the case of the current writing page
        return null;
    } else {
        PagedMessage serverMessage = cache.getMessage(retPos.getMessageNr());
        if (serverMessage != null) {
            return cursorProvider.newReference(retPos, serverMessage, this);
        } else {
            return null;
        }
    }
}

4. PageCursorProviderImpl#printDebug()

Project: activemq-artemis
File: PageCursorProviderImpl.java
@Override
public void printDebug() {
    System.out.println("Debug information for PageCursorProviderImpl:");
    for (PageCache cache : softCache.values()) {
        System.out.println("Cache " + cache);
    }
}