Line data Source code
1 : /****************************************************************************** 2 : * 3 : * Purpose: PCIDSK External Database Interface declaration. This provides 4 : * mechanisms for access to external linked image file formats. 5 : * 6 : ****************************************************************************** 7 : * Copyright (c) 2010 8 : * PCI Geomatics, 90 Allstate Parkway, Markham, Ontario, Canada. 9 : * 10 : * SPDX-License-Identifier: MIT 11 : ****************************************************************************/ 12 : #ifndef INCLUDE_PCIDSK_EDB_H 13 : #define INCLUDE_PCIDSK_EDB_H 14 : 15 : #include "pcidsk_config.h" 16 : 17 : #include <string> 18 : 19 : namespace PCIDSK 20 : { 21 : /************************************************************************/ 22 : /* EDBFile */ 23 : /************************************************************************/ 24 : 25 : //! External Database Interface class. 26 : 27 : class EDBFile 28 : { 29 : public: 30 0 : virtual ~EDBFile() {} 31 : virtual int Close() const = 0; 32 : 33 : virtual int GetWidth() const = 0; 34 : virtual int GetHeight() const = 0; 35 : virtual int GetChannels() const = 0; 36 : virtual int GetBlockWidth(int channel ) const = 0; 37 : virtual int GetBlockHeight(int channel ) const = 0; 38 : virtual eChanType GetType(int channel ) const = 0; 39 : virtual int ReadBlock(int channel, 40 : int block_index, void *buffer, 41 : int win_xoff=-1, int win_yoff=-1, 42 : int win_xsize=-1, int win_ysize=-1 ) = 0; 43 : virtual int WriteBlock( int channel, int block_index, void *buffer) = 0; 44 : }; 45 : 46 : EDBFile PCIDSK_DLL *DefaultOpenEDB(const std::string& filename, 47 : const std::string& access); 48 : } // end namespace PCIDSK 49 : 50 : #endif // INCLUDE_PCIDSK_EDB_H