// 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); } } } }