view src/org/dancres/blitz/entry/CountersImpl.java @ 17:46ac1a45718a

Add support for cache partitioning to improve concurrency.
author Dan Creswell <dan.creswell@gmail.com>
date Sun, 05 Jul 2009 16:25:18 +0100
parents 3dc0c5604566
children
line wrap: on
line source

package org.dancres.blitz.entry;

/**
   Manages operation and instance counters
 */
class CountersImpl implements Counters {
    private OpSwitchListener theOpSwitchListener;
    private InstanceSwitchListener theInstanceSwitchListener;

    CountersImpl(String aType, int anInitialCount) {
        theOpSwitchListener = new OpSwitchListener(aType);
        theInstanceSwitchListener =
            new InstanceSwitchListener(aType, anInitialCount);
    }

    public int getInstanceCount() {
        return theInstanceSwitchListener.getTotal();
    }

    public void didRead() {
        // Reads are only relevant to op counts not instance counts
        theOpSwitchListener.didRead();
    }

    public void didTake() {
        theOpSwitchListener.didTake();
        theInstanceSwitchListener.took();
    }

    public void didWrite() {
        theOpSwitchListener.didWrite();
        theInstanceSwitchListener.wrote();
    }

    public void didPurge() {
        theInstanceSwitchListener.took();
    }

    void destroy() {
        theOpSwitchListener.destroy();
        theInstanceSwitchListener.destroy();
    }
}