private void sendRequests() { Runnable task = this.requestQ.poll(); while (task != null) { if (!WorldWind.getTaskService().isFull()) { WorldWind.getTaskService().addTask(task); } task = this.requestQ.poll(); } }
/** * Thread's off a task to determine whether the resource is local or remote and then retrieves it * either from disk cache or a remote server. * * @param dc the current draw context. */ protected void requestResource(DrawContext dc) { if (WorldWind.getTaskService().isFull()) return; KMLLink link = this.model.getLink(); if (link == null) return; String address = link.getAddress(dc); if (address != null) address = address.trim(); if (WWUtil.isEmpty(address)) return; WorldWind.getTaskService().addTask(new RequestTask(this, address)); }
/** * If this instance's image source is a <code>BufferedImage</code>, creates and returns the * texture, otherwise creates a task in a separate thread to retrieve it from its local or remote * location. * * @param dc the current draw context. * @return the new texture, or null if the texture is not yet available. */ protected Texture requestTexture(DrawContext dc) { if (this.isBufferedImageSource()) return this.makeBufferedImageTexture(dc); if (this.getTextureData() != null && this.getTexture(dc) == null) return this.makeTextureFromTextureData(dc); if (WorldWind.getTaskService().isFull()) return null; Runnable task = this.createRequestTask(); if (WorldWind.getTaskService().contains(task)) return null; // Use either the current layer or the layer list as the listener to notify when the request // completes. The // latter is used when the image source is requested during ordered rendering and the current // layer is null. this.listener = dc.getCurrentLayer() != null ? dc.getCurrentLayer() : dc.getLayers(); WorldWind.getTaskService().addTask(task); return null; }