[OSM-dev] Structured error messages from API

Karl Guggisberg karl.guggisberg at guggis.ch
Thu Dec 10 17:32:34 GMT 2009


There is alreay ProgressInputStream
  http://josm.openstreetmap.de/browser/trunk/src/org/openstreetmap/josm/io/ProgressInputStream.java
in the JOSM code base and a "ProgressOutputStream" could be built easily.

But again, I don't think this would help much. If we really wanted to display progress information, we would need a kind of streaming reply from the server, as proposed by others on this thread.

Regards
Karl 


-----Ursprüngliche Nachricht-----
Von: dev-bounces at openstreetmap.org [mailto:dev-bounces at openstreetmap.org] Im Auftrag von Ævar Arnfjörð Bjarmason
Gesendet: Donnerstag, 10. Dezember 2009 18:09
An: Peter Körner
Cc: dev at openstreetmap.org
Betreff: Re: [OSM-dev] Structured error messages from API

On Thu, Dec 10, 2009 at 17:01, Peter Körner <osm-lists at mazdermind.de> wrote:
>> You mean showing upload progress in JOSM as opposed to the current 
>> cylon impression? That could be implemented by counting the number of 
>> bytes of the osmChange request that have been successfully sent over 
>> the wire. That's how upload progress bars are usually implemented.
>>
>> Obviously the upload could fail but that's another issue.
>
> That looks somehow more intelligent than streaming the progress from 
> the server back to the client.

It is:) When I upload a file with Google Chrome it always shows the progress of the upload. This isn't done with some ad-hoc streaming XML from the server, the client is just counting how many bytes it has sent over the wire and how large a percentage that is of the total.

I looked at the relevant code in JOSM once but I couldn't find a way to do it (but I'm not familiar with Java). In Perl with HTTP::Request::Common you can do e.g.:

    $HTTP::Request::Common::DYNAMIC_FILE_UPLOAD = 1
    my $req = HTTP::Request::Common->new( ... );
    $req->content( sub {
        my $chunk = &$gen();
        my $length = length $chunk;

        warn "I'm now uploading a chunk of length $length, of a total of $total bytes";

        return $chunk;
     } );
     my $result = LWP::UserAgent->request( $req );

(See this code for a practical example of this that I wrote:
http://cpansearch.perl.org/src/CPB/Flickr-Upload-1.32/Upload.pm)

I presume Java has some library to do this as well but I couldn't find it.

_______________________________________________
dev mailing list
dev at openstreetmap.org
http://lists.openstreetmap.org/listinfo/dev





More information about the dev mailing list