Line data Source code
1 : /****************************************************************************** 2 : * 3 : * Purpose: Primary public include file for PCIDSK SDK. 4 : * 5 : ****************************************************************************** 6 : * Copyright (c) 2009 7 : * PCI Geomatics, 90 Allstate Parkway, Markham, Ontario, Canada. 8 : * 9 : * SPDX-License-Identifier: MIT 10 : ****************************************************************************/ 11 : 12 : #ifndef INCLUDE_PCIDSKSEGMENT_H 13 : #define INCLUDE_PCIDSKSEGMENT_H 14 : 15 : #include "pcidsk_config.h" 16 : #include "pcidsk_types.h" 17 : #include <string> 18 : #include <vector> 19 : 20 : namespace PCIDSK 21 : { 22 : /************************************************************************/ 23 : /* PCIDSKSegment */ 24 : /************************************************************************/ 25 : 26 : //! Public interface for the PCIDSK Segment Type 27 : 28 : class PCIDSKSegment 29 : { 30 : public: 31 1463 : virtual ~PCIDSKSegment() {} 32 : 33 41 : virtual void Initialize() {} 34 : 35 : virtual void LoadSegmentPointer( const char *segment_pointer ) = 0; 36 : 37 : virtual void WriteToFile( const void *buffer, uint64 offset, uint64 size)=0; 38 : virtual void ReadFromFile( void *buffer, uint64 offset, uint64 size ) = 0; 39 : 40 : virtual eSegType GetSegmentType() = 0; 41 : virtual std::string GetName() = 0; 42 : virtual std::string GetDescription() = 0; 43 : virtual int GetSegmentNumber() = 0; 44 : virtual bool IsContentSizeValid() const = 0; 45 : virtual uint64 GetContentSize() = 0; 46 : virtual uint64 GetContentOffset() = 0; 47 : virtual bool IsAtEOF() = 0; 48 : virtual bool CanExtend(uint64 size) const = 0; 49 : 50 : virtual void SetDescription( const std::string &description) = 0; 51 : 52 : virtual std::string GetMetadataValue( const std::string &key ) const = 0; 53 : virtual void SetMetadataValue( const std::string &key, const std::string &value ) = 0; 54 : virtual std::vector<std::string> GetMetadataKeys() const = 0; 55 : 56 : virtual std::vector<std::string> GetHistoryEntries() const = 0; 57 : virtual void SetHistoryEntries( const std::vector<std::string> &entries ) = 0; 58 : virtual void PushHistory(const std::string &app, 59 : const std::string &message) = 0; 60 : 61 : virtual void Synchronize() = 0; 62 : 63 : virtual std::string ConsistencyCheck() = 0; 64 : }; 65 : 66 : } // end namespace PCIDSK 67 : 68 : #endif // INCLUDE_PCIDSKSEGMENT_H