package org.jactr.core.queue.timedevents; /* * default logging */ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jactr.core.buffer.IActivationBuffer; import org.jactr.core.buffer.delegate.IRequestDelegate; import org.jactr.core.chunk.IChunk; import org.jactr.core.production.request.ChunkRequest; import org.jactr.core.production.request.IRequest; public class DelayedIndirectBufferRequestTimedEvent extends AbstractTimedEvent implements IBufferBasedTimedEvent { /** * Logger definition */ static private final transient Log LOGGER = LogFactory .getLog(DelayedIndirectBufferRequestTimedEvent.class); IRequest _request; IActivationBuffer _buffer; IRequestDelegate _delegate; public DelayedIndirectBufferRequestTimedEvent(IRequest request, IActivationBuffer buffer, org.jactr.core.buffer.delegate.IRequestDelegate delegate, double start, double end) { super(start, end); _request = request; _buffer = buffer; _delegate = delegate; } public void fire(double currentTime) { super.fire(currentTime); _delegate.request(_request, getBuffer(), currentTime); } public IChunk getBoundChunk() { if(_request instanceof ChunkRequest) return ((ChunkRequest)_request).getChunk(); return null; } public IActivationBuffer getBuffer() { return _buffer; } }