00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
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
00038
00039
00041
00042 class PCIDSK_DLL PCIDSKChannel
00043 {
00044 public:
00045 virtual ~PCIDSKChannel() {};
00046 virtual int GetBlockWidth() const = 0;
00047 virtual int GetBlockHeight() const = 0;
00048 virtual int GetBlockCount() const = 0;
00049 virtual int GetWidth() const = 0;
00050 virtual int GetHeight() const = 0;
00051 virtual eChanType GetType() const = 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 virtual bool IsOverviewValid( int i ) = 0;
00059 virtual std::string GetOverviewResampling( int i ) = 0;
00060 virtual void SetOverviewValidity( int i, bool validity ) = 0;
00061 virtual std::vector<int> GetOverviewLevelMapping() const = 0;
00062
00063 virtual std::string GetMetadataValue( const std::string &key ) const = 0;
00064 virtual void SetMetadataValue( const std::string &key, const std::string &value ) = 0;
00065 virtual std::vector<std::string> GetMetadataKeys() const = 0;
00066
00067 virtual void Synchronize() = 0;
00068
00069 virtual std::string GetDescription() = 0;
00070 virtual void SetDescription( const std::string &description ) = 0;
00071
00072 virtual std::vector<std::string> GetHistoryEntries() const = 0;
00073 virtual void SetHistoryEntries( const std::vector<std::string> &entries ) = 0;
00074 virtual void PushHistory(const std::string &app,
00075 const std::string &message) = 0;
00076 };
00077 }
00078
00079 #endif // __INCLUDE_PCIDSK_CHANNEL_H