Routines (alphabetical) > Object Classes > Network Object Classes > IDLnetJPIP

# IDLnetJPIP

## Overview

IDLnetJPIP provides the ability to stream JPEG2000 imagery from a remote JPIP server to an IDL client, over a network.

A JPIP client sends requests to the JPIP server for JPEG2000 image data. Typically the images served by a JPIP server are very large, which means that the client is not retrieving the entire image but only portions or regions of the image. When the JPIP server receives a request for a region of an image, it replies by sending the compressed wavelets for the requested region. When the client receives the reply it decompresses the wavelets into an image buffer, then displays it.

## Superclasses

None.

## Creation

See IDLnetJPIP::Init.

## Properties

Objects of this class have the following properties. See IDLnetJPIP Properties for details on individual properties.

- BIT_DEPTH
- CACHE_DIRECTORY
- COLOR_SPACE
- DIMENSIONS
- FILENAME
- GML
- IAS_EXTENSIONS
- IS_ALIVE
- N_COMPONENTS
- N_LAYERS
- N_LEVELS
- N_TILES
- PASSWORD
- PROGRESSION
- PROGRESSIVE_CALLBACK_DATA
- PROGRESSIVE_CALLBACK_FUNCTION
- PROGRESSSIVE_UPDATES_COMPLETE
- PROXY_NAME
- PROXY_PORT
- REVERSIBLE
- SERVER_NAME
- SERVER_PORT
- SERVER_SCHEME
- SIGNED
- STATUS_CALLBACK_DATA
- STATUS_CALLBACK_FUNCTION
- TILE_DIMENSIONS
- TILE_RANGE
- UUIDS
- USERNAME
- XML
- YCC

## Methods

This class has the following methods:

- IDLnetJPIP::Cleanup
- IDLnetJPIP::GetData
- IDLnetJPIP::GetProperty
- IDLnetJPIP::GetStatistics
- IDLnetJPIP::GetUuid
- IDLnetJPIP::Init
- IDLnetJPIP::Open
- IDLnetJPIP::SetProperty

## Examples

See the IDLnetJPIP Examples topic for more information.

## Using the IDLnetJPIP Object Class

### Retrieving JPEG2000 data

The basic steps for retrieving JPEG2000 image data from a remote JPIP server are:

1. Set the SERVER_NAME property to the host name of the remote JPIP server.
2. Call the Open method with the name of the JPEG2000 file to open.
3. Call the GetData method to retrieve image data.

### Progressive Image Updates/Callbacks

IDLnetJPIP offers progressive image updates. These updates occur when GetData is receiving image data from a remote JPIP server. As data arrives, this object can issue callbacks that give the user the opportunity to progressively update the user interface as image data arrives. To receive callbacks, the PROGRESSIVE_CALLBACK_FUNCTION property must be set and the GetData call must be invoked using its asynchronous mode.

### Status Updates/Callbacks

IDLnetJPIP offers status updates. These updates occur when GetData is receiving image data from a remote JPIP server. As data arrives, this object can issue callbacks that give the user the opportunity to see the status of the data being streamed from the remote JPIP server. To receive callbacks, the STATUS_CALLBACK_FUNCTION property must be set and the GetData call must be invoked using its asynchronous mode.

### Canceling a GetData Request

IDLnetJPIP offers the ability to cancel a GetData request that is under way. Each of the two callback functions, progressive and status, have a return value that you can set to zero to cancel the current stream request. When you call GetData, it does not return until it has retrieved all of the data. While GetData is receiving data from the server, it will periodically make progressive and or status callbacks, if enabled. If the callback returns a 0, GetData will notify the remote server that the stream request has been canceled and return to the caller. This cancel feature is only active when you invoke GetData using its asynchronous mode.

### Decompression Rates

The rate at which IDLnetJPIP can decompress images is affected by the contents of the individual images being decompressed, the processing speed of the client node, the speed of the network connection, and the processing speed of the remote server.