Line data Source code
1 : /****************************************************************************** 2 : * $Id$ 3 : * 4 : * Project: R Format Driver 5 : * Purpose: Read/write R stats package object format. 6 : * Author: Frank Warmerdam, warmerdam@pobox.com 7 : * 8 : ****************************************************************************** 9 : * Copyright (c) 2009, Frank Warmerdam <warmerdam@pobox.com> 10 : * Copyright (c) 2009-2010, Even Rouault <even dot rouault at spatialys.com> 11 : * 12 : * SPDX-License-Identifier: MIT 13 : ****************************************************************************/ 14 : 15 : #ifndef RDATASET_H_INCLUDED 16 : #define RDATASET_H_INCLUDED 17 : 18 : #include <cstddef> 19 : #include <cstdlib> 20 : #include <cstring> 21 : #include <string> 22 : #if HAVE_FCNTL_H 23 : #include <fcntl.h> 24 : #endif 25 : 26 : #include "cpl_conv.h" 27 : #include "cpl_error.h" 28 : #include "cpl_port.h" 29 : #include "cpl_progress.h" 30 : #include "cpl_string.h" 31 : #include "cpl_vsi.h" 32 : #include "gdal.h" 33 : #include "gdal_frmts.h" 34 : #include "gdal_pam.h" 35 : #include "gdal_priv.h" 36 : #include "rawdataset.h" 37 : 38 : GDALDataset *RCreateCopy(const char *pszFilename, GDALDataset *poSrcDS, 39 : int bStrict, char **papszOptions, 40 : GDALProgressFunc pfnProgress, void *pProgressData); 41 : 42 : /************************************************************************/ 43 : /* ==================================================================== */ 44 : /* RDataset */ 45 : /* ==================================================================== */ 46 : /************************************************************************/ 47 : 48 : class RDataset final : public GDALPamDataset 49 : { 50 : friend class RRasterBand; 51 : VSILFILE *fp; 52 : int bASCII; 53 : CPLString osLastStringRead; 54 : 55 : vsi_l_offset nStartOfData; 56 : 57 : double *padfMatrixValues; 58 : 59 : const char *ASCIIFGets(); 60 : int ReadInteger(); 61 : double ReadFloat(); 62 : const char *ReadString(); 63 : bool ReadPair(CPLString &osItemName, int &nItemType); 64 : 65 : public: 66 : RDataset(); 67 : ~RDataset(); 68 : 69 : static GDALDataset *Open(GDALOpenInfo *); 70 : static int Identify(GDALOpenInfo *); 71 : }; 72 : 73 : /************************************************************************/ 74 : /* ==================================================================== */ 75 : /* RRasterBand */ 76 : /* ==================================================================== */ 77 : /************************************************************************/ 78 : 79 : class RRasterBand final : public GDALPamRasterBand 80 : { 81 : friend class RDataset; 82 : 83 : const double *padfMatrixValues; 84 : 85 : public: 86 : RRasterBand(RDataset *, int, const double *); 87 : 88 14 : virtual ~RRasterBand() 89 7 : { 90 14 : } 91 : 92 : virtual CPLErr IReadBlock(int, int, void *) override; 93 : }; 94 : 95 : #endif /* RDATASET_H_INCLUDED */