libpcidsk
pcidsk_segment.h
00001 /******************************************************************************
00002  *
00003  * Purpose:  Primary public include file for PCIDSK SDK.
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  
00028 #ifndef __INCLUDE_SEGMENT_PCIDSKSEGMENT_H
00029 #define __INCLUDE_SEGMENT_PCIDSKSEGMENT_H
00030 
00031 #include "pcidsk_config.h"
00032 #include "pcidsk_types.h"
00033 #include <string>
00034 #include <vector>
00035 
00036 namespace PCIDSK
00037 {
00038 /************************************************************************/
00039 /*                            PCIDSKSegment                             */
00040 /************************************************************************/
00041 
00043 
00044     class PCIDSKSegment 
00045     {
00046     public:
00047         virtual ~PCIDSKSegment() {}
00048 
00049         virtual void WriteToFile( const void *buffer, uint64 offset, uint64 size)=0;
00050         virtual void ReadFromFile( void *buffer, uint64 offset, uint64 size ) = 0;
00051 
00052         virtual eSegType    GetSegmentType() = 0;
00053         virtual std::string GetName() = 0;
00054         virtual std::string GetDescription() = 0;
00055         virtual int         GetSegmentNumber() = 0;
00056         virtual uint64      GetContentSize() = 0;
00057         virtual bool        IsAtEOF() = 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 
00066 } // end namespace PCIDSK
00067 
00068 #endif // __INCLUDE_SEGMENT_PCIDSKSEGMENT_H

Generated for GDAL by doxygen 1.7.4.