package org.dcache.cells;
import diskCacheV111.util.CacheException;
import diskCacheV111.vehicles.Message;
import dmg.cells.nucleus.CellPath;
/**
* Abstract base class for MessageCallback implementations.
*/
public abstract class AbstractMessageCallback<T extends Message> implements MessageCallback<T>
{
private T _reply;
public abstract void success(T message);
public T getReply()
{
return _reply;
}
@Override
public void setReply(T message)
{
_reply = message;
}
@Override
public void success()
{
success(getReply());
}
@Override
public void noroute(CellPath path)
{
failure(CacheException.TIMEOUT, "No route to " + path);
}
@Override
public void timeout(String message)
{
failure(CacheException.TIMEOUT, message);
}
}