Ignore:
Timestamp:
2010-01-10T15:46:08+01:00 (15 years ago)
Author:
pieren
Message:

Various minor improvements. More bboxes data in the cache. New cache format v3.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/CacheControl.java

    r18838 r19371  
    4949    private Lock imagesLock = new ReentrantLock();
    5050
     51    public boolean isCachePipeEmpty() {
     52        imagesLock.lock();
     53        boolean ret = imagesToSave.isEmpty();
     54        imagesLock.unlock();
     55        return ret;
     56    }
     57   
    5158    public CacheControl(WMSLayer wmsLayer) {
    5259        cacheEnabled = Main.pref.getBoolean("cadastrewms.enableCaching", true);
     
    171178        for (;;) {
    172179            imagesLock.lock();
    173             // copy locally the images to save for better performance
    174             ArrayList<GeorefImage> images = new ArrayList<GeorefImage>(imagesToSave);
    175             imagesToSave.clear();
     180            //ArrayList<GeorefImage> images = new ArrayList<GeorefImage>(imagesToSave);
     181            int size = imagesToSave.size();
    176182            imagesLock.unlock();
    177             if (images != null && !images.isEmpty()) {
     183            if (size > 0) {
    178184                String extension = String.valueOf((wmsLayer.getLambertZone() + 1));
    179185                if (Main.proj instanceof LambertCC9Zones)
     
    186192                        ObjectOutputStreamAppend oos = new ObjectOutputStreamAppend(
    187193                                new BufferedOutputStream(new FileOutputStream(file, true)));
    188                         for (GeorefImage img : images) {
    189                             oos.writeObject(img);
     194                        for (int i=0; i < size; i++) {
     195                            oos.writeObject(imagesToSave.get(i));
    190196                        }
    191197                        oos.close();
     
    194200                                new BufferedOutputStream(new FileOutputStream(file)));
    195201                        wmsLayer.write(oos);
    196                         for (GeorefImage img : images) {
    197                             oos.writeObject(img);
     202                        for (int i=0; i < size; i++) {
     203                            oos.writeObject(imagesToSave.get(i));
    198204                        }
    199205                        oos.close();
     
    202208                    e.printStackTrace(System.out);
    203209                }
     210                imagesLock.lock();
     211                for (int i=0; i < size; i++) {
     212                    imagesToSave.remove(0);
     213                }
     214                imagesLock.unlock();
    204215            }
    205216            try {wait();} catch (InterruptedException e) {
Note: See TracChangeset for help on using the changeset viewer.