Package co.adhoclabs.ironcushion.bulkinsert

Source Code of co.adhoclabs.ironcushion.bulkinsert.BulkInsertPipelineFactory

package co.adhoclabs.ironcushion.bulkinsert;

import java.util.ArrayList;
import java.util.List;

import org.jboss.netty.channel.ChannelPipeline;
import org.jboss.netty.channel.ChannelPipelineFactory;
import org.jboss.netty.channel.Channels;
import org.jboss.netty.handler.codec.http.HttpClientCodec;

import co.adhoclabs.ironcushion.AbstractBenchmarkPipelineFactory;

/**
* The {@link ChannelPipelineFactory} for connections that perform bulk inserts.
*
* @author Michael Parker (michael.g.parker@gmail.com)
*/
public class BulkInsertPipelineFactory extends AbstractBenchmarkPipelineFactory {
  private final List<BulkInsertConnectionStatistics> allConnectionStatistics;
  private final List<BulkInsertDocumentGenerator> allBulkInsertDocumentGenerators;
  private final String bulkInsertPath;
 
  private int connectionNum;
 
  public BulkInsertPipelineFactory(int numConnections,
      List<BulkInsertDocumentGenerator> allBulkInsertDocumentGenerators, String bulkInsertPath) {
    super(numConnections);
   
    this.allConnectionStatistics = new ArrayList<BulkInsertConnectionStatistics>();
    for (int i = 0; i < numConnections; ++i) {
      allConnectionStatistics.add(new BulkInsertConnectionStatistics());
    }
    this.allBulkInsertDocumentGenerators = allBulkInsertDocumentGenerators;
    this.bulkInsertPath = bulkInsertPath;
   
    connectionNum = 0;
  }

  /**
   * @return the {@link BulkInsertConnectionStatistics} used by connections
   */
  public List<BulkInsertConnectionStatistics> getAllConnectionStatistics() {
    return allConnectionStatistics;
  }
 
  @Override
  public ChannelPipeline getPipeline() throws Exception {
    BulkInsertConnectionStatistics connectionStatistics = allConnectionStatistics.get(connectionNum);
    BulkInsertDocumentGenerator documentGenerator = allBulkInsertDocumentGenerators.get(connectionNum);
    connectionNum++;
    return Channels.pipeline(
        new HttpClientCodec(),
        // new HttpContentDecompressor(),
        new BulkInsertHandler(connectionStatistics, documentGenerator, bulkInsertPath, countDownLatch)
        );
  }
}
TOP

Related Classes of co.adhoclabs.ironcushion.bulkinsert.BulkInsertPipelineFactory

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.