GDAL
Public Member Functions | Protected Attributes | List of all members
GDALAsyncReader Class Referenceabstract

Class used as a session object for asynchronous requests. More...

#include <gdal_priv.h>

Inherited by GDALDefaultAsyncReader.

Public Member Functions

GDALDatasetGetGDALDataset ()
 
int GetXOffset ()
 
int GetYOffset ()
 
int GetXSize ()
 
int GetYSize ()
 
void * GetBuffer ()
 
int GetBufferXSize ()
 
int GetBufferYSize ()
 
GDALDataType GetBufferType ()
 
int GetBandCount ()
 
int * GetBandMap ()
 
int GetPixelSpace ()
 
int GetLineSpace ()
 
int GetBandSpace ()
 
virtual GDALAsyncStatusType GetNextUpdatedRegion (double dfTimeout, int *pnBufXOff, int *pnBufYOff, int *pnBufXSize, int *pnBufYSize)=0
 Get async IO update. More...
 
virtual int LockBuffer (double dfTimeout=-1.0)
 Lock image buffer. More...
 
virtual void UnlockBuffer ()
 Unlock image buffer. More...
 

Protected Attributes

GDALDatasetpoDS
 
int nXOff
 
int nYOff
 
int nXSize
 
int nYSize
 
void * pBuf
 
int nBufXSize
 
int nBufYSize
 
GDALDataType eBufType
 
int nBandCount
 
int * panBandMap
 
int nPixelSpace
 
int nLineSpace
 
int nBandSpace
 

Detailed Description

Class used as a session object for asynchronous requests.

They are created with GDALDataset::BeginAsyncReader(), and destroyed with GDALDataset::EndAsyncReader().

Member Function Documentation

GDALAsyncStatusType GDALAsyncReader::GetNextUpdatedRegion ( double  dfTimeout,
int *  pnBufXOff,
int *  pnBufYOff,
int *  pnBufXSize,
int *  pnBufXSize 
)
pure virtual

Get async IO update.

Provide an opportunity for an asynchronous IO request to update the image buffer and return an indication of the area of the buffer that has been updated.

The dfTimeout parameter can be used to wait for additional data to become available. The timeout does not limit the amount of time this method may spend actually processing available data.

The following return status are possible.

  • GARIO_PENDING: No imagery was altered in the buffer, but there is still activity pending, and the application should continue to call GetNextUpdatedRegion() as time permits.
  • GARIO_UPDATE: Some of the imagery has been updated, but there is still activity pending.
  • GARIO_ERROR: Something has gone wrong. The asynchronous request should be ended.
  • GARIO_COMPLETE: An update has occurred and there is no more pending work on this request. The request should be ended and the buffer used.
Parameters
dfTimeoutthe number of seconds to wait for additional updates. Use -1 to wait indefinately, or zero to not wait at all if there is no data available.
pnBufXOfflocation to return the X offset of the area of the request buffer that has been updated.
pnBufYOfflocation to return the Y offset of the area of the request buffer that has been updated.
pnBufXSizelocation to return the X size of the area of the request buffer that has been updated.
pnBufYSizelocation to return the Y size of the area of the request buffer that has been updated.
Returns
GARIO_ status, details described above.
int GDALAsyncReader::LockBuffer ( double  dfTimeout = -1.0)
virtual

Lock image buffer.

Locks the image buffer passed into GDALDataset::BeginAsyncReader(). This is useful to ensure the image buffer is not being modified while it is being used by the application. UnlockBuffer() should be used to release this lock when it is no longer needed.

Parameters
dfTimeoutthe time in seconds to wait attempting to lock the buffer. -1.0 to wait indefinately and 0 to not wait at all if it can't be acquired immediately. Default is -1.0 (infinite wait).
Returns
TRUE if successful, or FALSE on an error.
void GDALAsyncReader::UnlockBuffer ( )
virtual

Unlock image buffer.

Releases a lock on the image buffer previously taken with LockBuffer().


The documentation for this class was generated from the following files:

Generated for GDAL by doxygen 1.8.11.