/****************************************************************************
* rasterio.h :
* header file for raster file-based i/o.
* Change Log :
* July-28 1997 Initial version, Liujian Qian
*
* $Id: grasterio.h,v 1.3 1998/12/10 00:11:44 qian Exp $
***************************************************************************/
#ifndef _RASTERIO_H_
#define _RASTERIO_H_
#include <stdio.h>
#include "gdatapipe.h"
#include "gslab.h"
struct GRasterHdr;
/**
* @internal
* Internal class used only by GRaster file-based raster data access.
DESCRIPTION
This class maintains the file-based I/O facility
for raster class. ONly used by GRaster. This class for now
directs all the read/write to a unix file; however a particular
user of the GRaster class (such as Tempest) can choose to
derive a class from it and let an instance of GRaster be hooked with
this derived RasterIO object, which can read/write raster data in a
way defined differently from the default.
*/
class GRasterIO
{
friend class GRaster;
static int next_temp_fid; //for generating temporary file name
FILE* ras_fp; //desc for the open file
long offset;
char slab_id[8]; //for slab id (holds the slab offset in a file)
int total_compact_sz,
total_sz, original_sz;
DataPipe ph, ps; //used for loading/storing header/slab
char file_name[384];
public:
NOP GRasterIO();
virtual NOP ~GRasterIO() {};
virtual void init();
virtual bool exists(const char* path);
virtual char* slabID(void) {return slab_id; }
virtual void stats();
virtual void setName(const char* name);
virtual void setNewTempName();
virtual Result openRead(); // defaults to GRaster::binary
virtual Result openWrite();
virtual Result openAppend();
virtual Result openReadWrite();
virtual Result readHeader();
virtual Result writeHeader(GRasterHdr& hdr);
virtual Result readSlab(GSlab& slab, char* id);
virtual char* writeSlab(GSlab& slab, bool zipit);
virtual Result closeFile();
virtual Result deleteFile();
virtual Result copySlabsTo(GRasterHdr& hdr, const char* file);
};
#endif
Documentation generated by lqian@lqian-sun on Wed Jul 14 09:36:10 EDT 1999