package org.dcache.services.info.base;
/**
* A Class that implement StateExhibitor allows objects enquire about the
* state of dCache. This is achieved by implementing the Visitor
* pattern: a class that wishes to discover some aspect of dCache's state
* must implement the StateVisitor interface.
* <p>
* The class implementing StateExhibitor must ensure the self-consistency of
* the data produced. This is likely achieved by holding some form of
* read-lock. It is desirable that these locks are not held for an excessive
* time; therefore, it is important that the class implementing StateVisitor
* does not undertake activity that is likely to block activity of the Thread
* for an unpredictable or a long time.
*/
public interface StateExhibitor
{
/**
* Query the state of dCache.
*/
void visitState(StateVisitor visitor);
}