view src/org/dancres/blitz/entry/ci/CacheLine.java @ 35:6f68e94c1fb8 default tip

Add CondensedStats monitoring utility, equivalent to vmstat
author Dominic Cleal <dominic-cleal@cdo2.com>
date Thu, 05 Aug 2010 11:07:25 +0100
parents 3dc0c5604566
children
line wrap: on
line source

package org.dancres.blitz.entry.ci;

import java.util.Set;
import java.util.HashSet;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

import org.dancres.blitz.oid.OID;

import org.dancres.blitz.entry.TupleLocator;
import org.dancres.blitz.entry.EntrySleeve;

/**
   Maintains a list of all entries with the same hashcode for a particular
   field.
 */
class CacheLine {
    private Set theIds = new HashSet();

    TupleLocator getLocator() {
        if (theIds.size() == 0)
            return ArrayLocatorImpl.EMPTY_LOCATOR;
        else
            return new CacheLineLocatorImpl(getIdList(), this);
    }

    private Object[] getIdList() {
        Object[] myIds = new Object[theIds.size()];
        theIds.toArray(myIds);

        return myIds;
    }

    void insert(EntrySleeve aSleeve) {
        theIds.add(aSleeve.getOID());
    }

    void remove(EntrySleeve aSleeve) {
        theIds.remove(aSleeve.getOID());
    }

    int getSize() {
        return theIds.size();
    }
}