// Path: src/main/java/com/lmax/tool/disruptor/BatchListener.java
// public interface BatchListener
// {
//     /**
//      * Will be called at the end of a Disruptor batch
//      */
//     void onEndOfBatch();
// }
// 
// Path: src/main/java/com/lmax/tool/disruptor/ProxyMethodInvocation.java
// public final class ProxyMethodInvocation
// {
//     private Invoker invoker;
//     private Resetable argumentHolder;
// 
//     public Invoker getInvoker()
//     {
//         return invoker;
//     }
// 
//     public void setInvoker(final Invoker invoker)
//     {
//         this.invoker = invoker;
//     }
// 
//     public void setArgumentHolder(final Resetable argumentHolder)
//     {
//         this.argumentHolder = argumentHolder;
//     }
// 
//     public Object getArgumentHolder()
//     {
//         return argumentHolder;
//     }
// 
//     public void reset()
//     {
//         argumentHolder.reset();
//     }
// }


import com.lmax.disruptor.EventHandler;
import com.lmax.tool.disruptor.BatchListener;
import com.lmax.tool.disruptor.ProxyMethodInvocation;
package com.lmax.tool.disruptor.handlers;


/**
 * A Disruptor event handler that will notify the supplied batchListener at the end of a batch
 */
final class EndOfBatchEventHandler implements EventHandler<ProxyMethodInvocation>
{
// Path: src/main/java/com/lmax/tool/disruptor/BatchListener.java
// public interface BatchListener
// {
//     /**
//      * Will be called at the end of a Disruptor batch
//      */
//     void onEndOfBatch();
// }
// 
// Path: src/main/java/com/lmax/tool/disruptor/ProxyMethodInvocation.java
// public final class ProxyMethodInvocation
// {
//     private Invoker invoker;
//     private Resetable argumentHolder;
// 
//     public Invoker getInvoker()
//     {
//         return invoker;
//     }
// 
//     public void setInvoker(final Invoker invoker)
//     {
//         this.invoker = invoker;
//     }
// 
//     public void setArgumentHolder(final Resetable argumentHolder)
//     {
//         this.argumentHolder = argumentHolder;
//     }
// 
//     public Object getArgumentHolder()
//     {
//         return argumentHolder;
//     }
// 
//     public void reset()
//     {
//         argumentHolder.reset();
//     }
// }


// Path: src/main/java/com/lmax/tool/disruptor/handlers/EndOfBatchEventHandler.java
import com.lmax.disruptor.EventHandler;
import com.lmax.tool.disruptor.BatchListener;
import com.lmax.tool.disruptor.ProxyMethodInvocation;

package com.lmax.tool.disruptor.handlers;


/**
 * A Disruptor event handler that will notify the supplied batchListener at the end of a batch
 */
final class EndOfBatchEventHandler implements EventHandler<ProxyMethodInvocation>
{
    private final BatchListener batchListener;