libpcidsk

pcidsk_channel.h

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

Generated for GDAL by doxygen 1.7.3.