pcidsk_edb.h

00001 /******************************************************************************
00002  *
00003  * Purpose:  PCIDSK External Database Interface declaration.  This provides
00004  *           mechanisms for access to external linked image file formats.
00005  * 
00006  ******************************************************************************
00007  * Copyright (c) 2010
00008  * PCI Geomatics, 50 West Wilmot Street, Richmond Hill, Ont, Canada
00009  *
00010  * Permission is hereby granted, free of charge, to any person obtaining a
00011  * copy of this software and associated documentation files (the "Software"),
00012  * to deal in the Software without restriction, including without limitation
00013  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
00014  * and/or sell copies of the Software, and to permit persons to whom the
00015  * Software is furnished to do so, subject to the following conditions:
00016  *
00017  * The above copyright notice and this permission notice shall be included
00018  * in all copies or substantial portions of the Software.
00019  *
00020  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
00021  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00022  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
00023  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
00024  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
00025  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
00026  * DEALINGS IN THE SOFTWARE.
00027  ****************************************************************************/
00028 #ifndef __INCLUDE_PCIDSK_EDB_H
00029 #define __INCLUDE_PCIDSK_EDB_H
00030 
00031 #include "pcidsk_config.h"
00032 
00033 #include <string>
00034 
00035 namespace PCIDSK
00036 {
00037 /************************************************************************/
00038 /*                               EDBFile                                */
00039 /************************************************************************/
00040 
00042 
00043     class EDBFile
00044     {
00045     public:
00046         virtual ~EDBFile() {}
00047         virtual int Close() const = 0;
00048 
00049         virtual int GetWidth() const = 0;
00050         virtual int GetHeight() const = 0;
00051         virtual int GetChannels() const = 0;
00052         virtual int GetBlockWidth(int channel ) const = 0;
00053         virtual int GetBlockHeight(int channel ) const = 0;
00054         virtual eChanType GetType(int channel ) const = 0;
00055         virtual int ReadBlock(int channel,
00056             int block_index, void *buffer,
00057             int win_xoff=-1, int win_yoff=-1,
00058             int win_xsize=-1, int win_ysize=-1 ) = 0;
00059         virtual int WriteBlock( int channel, int block_index, void *buffer) = 0;
00060     };
00061 
00062     EDBFile PCIDSK_DLL *DefaultOpenEDB(std::string filename, 
00063                                        std::string access);    
00064 } // end namespace PCIDSK
00065 
00066 #endif // __INCLUDE_PCIDSK_EDB_H

Generated on Fri Jul 16 16:01:31 2010 for libpcidsk by  doxygen 1.5.1