Package org.openstreetmap.osmosis.core.store

Source Code of org.openstreetmap.osmosis.core.store.DataPostboxLoadInjector$Writer

// This software is released into the Public Domain.  See copying.txt for details.
package org.openstreetmap.osmosis.core.store;

import java.util.Date;

import org.openstreetmap.osmosis.core.buffer.v0_6.EntityBuffer;
import org.openstreetmap.osmosis.core.container.v0_6.NodeContainer;
import org.openstreetmap.osmosis.core.domain.v0_6.CommonEntityData;
import org.openstreetmap.osmosis.core.domain.v0_6.Node;
import org.openstreetmap.osmosis.core.domain.v0_6.OsmUser;
import org.openstreetmap.osmosis.core.misc.v0_6.NullWriter;
import org.openstreetmap.osmosis.core.progress.v0_6.EntityProgressLogger;

/**
* Very simple class for applying load to the DataPostbox class and measuring
* performance.
*
* @author Brett Henderson
*/
public final class DataPostboxLoadInjector implements Runnable {

  private EntityBuffer buffer;
  private EntityProgressLogger progressLogger;
  private NullWriter nullWriter;

  /**
   * Launches the application.
   *
   * @param args
   *            The program arguments.
   */
  public static void main(String[] args) {
    new DataPostboxLoadInjector().run();
  }

 
  private DataPostboxLoadInjector() {
    buffer = new EntityBuffer(10000);
    progressLogger = new EntityProgressLogger(5000, null);
    buffer.setSink(progressLogger);
    nullWriter = new NullWriter();
    progressLogger.setSink(nullWriter);
  }

 
  /**
   * {@inheritDoc}
   */
  public void run() {
    Thread t1;
    Thread t2;

    t1 = new Thread(new Writer(), "input");
    t2 = new Thread(buffer, "output");

    t1.start();
    t2.start();

    try {
      t1.join();
    } catch (InterruptedException e) {
      e.printStackTrace();
    }

    try {
      t2.join();
    } catch (InterruptedException e) {
      e.printStackTrace();
    }
  }

  private class Writer implements Runnable {
    private Node node;
    private NodeContainer nodeContainer;

    public Writer() {
      node = new Node(new CommonEntityData(1, 2, new Date(), OsmUser.NONE, 3), 10, 10);
      nodeContainer = new NodeContainer(node);
    }

    public void run() {
      while (true) {
        buffer.process(nodeContainer);
      }
    }
  }
}
TOP

Related Classes of org.openstreetmap.osmosis.core.store.DataPostboxLoadInjector$Writer

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.