Ignore:
Timestamp:
2014-10-27T20:47:56+01:00 (9 years ago)
Author:
Don-vip
Message:

improve performance of "Postprocessing uploaded data ..." step after upload by locking dataset (avoid map repaint each time a new primitive is assigned an id). Changes impact sds plugin.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/io/OsmServerWriter.java

    r7005 r7656  
    1313
    1414import org.openstreetmap.josm.data.osm.Changeset;
    15 import org.openstreetmap.josm.data.osm.IPrimitive;
     15import org.openstreetmap.josm.data.osm.OsmPrimitive;
    1616import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
    1717import org.openstreetmap.josm.gui.io.UploadStrategySpecification;
     
    3535     * than where passed in the list to upload*.
    3636     */
    37     private Collection<IPrimitive> processed;
     37    private Collection<OsmPrimitive> processed;
    3838
    3939    private static List<OsmServerWritePostprocessor> postprocessors;
     
    8585     * @throws OsmTransferException thrown if an exception occurs
    8686     */
    87     protected void uploadChangesIndividually(Collection<? extends IPrimitive> primitives, ProgressMonitor progressMonitor) throws OsmTransferException {
     87    protected void uploadChangesIndividually(Collection<? extends OsmPrimitive> primitives, ProgressMonitor progressMonitor) throws OsmTransferException {
    8888        try {
    8989            progressMonitor.beginTask(tr("Starting to upload with one request per primitive ..."));
    9090            progressMonitor.setTicksCount(primitives.size());
    9191            uploadStartTime = System.currentTimeMillis();
    92             for (IPrimitive osm : primitives) {
     92            for (OsmPrimitive osm : primitives) {
    9393                int progress = progressMonitor.getTicks();
    9494                String time_left_str = timeLeft(progress, primitives.size());
     
    127127     * @throws OsmTransferException thrown if an exception occurs
    128128     */
    129     protected void uploadChangesAsDiffUpload(Collection<? extends IPrimitive> primitives, ProgressMonitor progressMonitor) throws OsmTransferException {
     129    protected void uploadChangesAsDiffUpload(Collection<? extends OsmPrimitive> primitives, ProgressMonitor progressMonitor) throws OsmTransferException {
    130130        try {
    131131            progressMonitor.beginTask(tr("Starting to upload in one request ..."));
     
    147147     * @throws OsmTransferException thrown if an exception occurs
    148148     */
    149     protected void uploadChangesInChunks(Collection<? extends IPrimitive> primitives, ProgressMonitor progressMonitor, int chunkSize) throws OsmTransferException, IllegalArgumentException {
     149    protected void uploadChangesInChunks(Collection<? extends OsmPrimitive> primitives, ProgressMonitor progressMonitor, int chunkSize) throws OsmTransferException, IllegalArgumentException {
    150150        if (chunkSize <=0)
    151151            throw new IllegalArgumentException(tr("Value >0 expected for parameter ''{0}'', got {1}", "chunkSize", chunkSize));
    152152        try {
    153153            progressMonitor.beginTask(tr("Starting to upload in chunks..."));
    154             List<IPrimitive> chunk = new ArrayList<>(chunkSize);
    155             Iterator<? extends IPrimitive> it = primitives.iterator();
     154            List<OsmPrimitive> chunk = new ArrayList<>(chunkSize);
     155            Iterator<? extends OsmPrimitive> it = primitives.iterator();
    156156            int numChunks = (int)Math.ceil((double)primitives.size() / (double)chunkSize);
    157157            int i= 0;
     
    190190     * @throws OsmTransferException thrown if something goes wrong
    191191     */
    192     public void uploadOsm(UploadStrategySpecification strategy, Collection<? extends IPrimitive> primitives, Changeset changeset, ProgressMonitor monitor) throws OsmTransferException {
     192    public void uploadOsm(UploadStrategySpecification strategy, Collection<? extends OsmPrimitive> primitives, Changeset changeset, ProgressMonitor monitor) throws OsmTransferException {
    193193        CheckParameterUtil.ensureParameterNotNull(changeset, "changeset");
    194194        processed = new LinkedList<>();
     
    224224    }
    225225
    226     void makeApiRequest(IPrimitive osm, ProgressMonitor progressMonitor) throws OsmTransferException {
     226    void makeApiRequest(OsmPrimitive osm, ProgressMonitor progressMonitor) throws OsmTransferException {
    227227        if (osm.isDeleted()) {
    228228            api.deletePrimitive(osm, progressMonitor);
     
    246246     * @return the collection of successfully processed primitives
    247247     */
    248     public Collection<IPrimitive> getProcessedPrimitives() {
     248    public Collection<OsmPrimitive> getProcessedPrimitives() {
    249249        return processed;
    250250    }
Note: See TracChangeset for help on using the changeset viewer.