Coverage Report

Created: 2025-07-23 09:13

/src/gdal/frmts/pcidsk/sdk/pcidsk_segment.h
Line
Count
Source
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
        virtual ~PCIDSKSegment();
32
33
50
        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