Statistics
| Revision:

svn-gvsig-desktop / tags / v1_10_0_Build_1258 / libraries / libjni-readecw-linux / include / NCSJPCPPMMarker.h @ 42039

History | View | Annotate | Download (2.46 KB)

1 1448 igbrotru
/********************************************************
2
** Copyright 2002 Earth Resource Mapping Ltd.
3
** This document contains proprietary source code of
4
** Earth Resource Mapping Ltd, and can only be used under
5
** one of the three licenses as described in the
6
** license.txt file supplied with this distribution.
7
** See separate license.txt file for license details
8
** and conditions.
9
**
10
** This software is covered by US patent #6,442,298,
11
** #6,102,897 and #6,633,688.  Rights to use these patents
12
** is included in the license agreements.
13
**
14
** FILE:     $Archive: /NCS/Source/include/NCSJPCPPMMarker.h $
15
** CREATED:  18/12/2002 3:27:34 PM
16
** AUTHOR:   Simon Cope
17
** PURPOSE:  CNCSJPCPPMMarker class header
18
** EDITS:    [xx] ddMmmyy NAME COMMENTS
19
 *******************************************************/
20
21
#ifndef NCSJPCPPMMARKER_H
22
#define NCSJPCPPMMARKER_H
23
24
#include "NCSJPCMarker.h"
25
#include "NCSJPCPacket.h"
26
27
        /**
28
         * CNCSJPCPPMMarker class - the JPC PPM marker.
29
         *
30
         * @author       Simon Cope
31
         * @version      $Revision$ $Author$ $Date$
32
         */
33
class NCSJPC_EXPORT_ALL CNCSJPCPPMMarker: public CNCSJPCMarker {
34
public:
35
                /** Packet header info within a tile part */
36
        typedef struct {
37
                        /** Packet length(s) for tile-part */
38
//                CNCSJPCPacketList        m_Headers;
39
                        /** nBytes of packet-header to parse */
40
                UINT32                        m_nNppmTotal;
41
                        /** nBytes of packet-header remaining to parse in next PPM */
42
                UINT32                        m_nNppmLeft;
43
                        /** Offset to first packet header in this tile part */
44
                INT64                        m_nOffset;
45
        } TilePartPackets;
46
47
                /** Index of this marker WRT other PPM markers */
48
        UINT8                m_nZppm;
49
                /** Packet headers, each tile-part in this PPM */
50
        std::vector<TilePartPackets> m_TileParts;
51
52
                /** Default constructor, initialises members */
53
        CNCSJPCPPMMarker();
54
                /** Virtual destructor */
55
        virtual ~CNCSJPCPPMMarker();
56
57
                /**
58
                 * Parse the marker from the JPC codestream.
59
                 * @param                JPC                        CNCSJPC to use to parse file.
60
                 * @param                Stream                IOStream to use to parse file.
61
                 * @return      CNCSError        NCS_SUCCESS, or Error code on failure.
62
                 */
63
        virtual CNCSError Parse(class CNCSJPC &JPC, CNCSJPCIOStream &Stream);
64
#ifndef NCSJPC_LEAN_AND_MEAN
65
                /**
66
                 * UnParse the marker to the JPC codestream.
67
                 * @param                Stream                IOStream to use to parse file.
68
                 * @param                JPC                        CNCSJPC to use to parse file.
69
                 * @return      CNCSError        NCS_SUCCESS, or Error code on failure.
70
                 */
71
        virtual CNCSError UnParse(class CNCSJPC &JPC, CNCSJPCIOStream &Stream);
72
#endif //!NCSJPC_LEAN_AND_MEAN
73
};
74
75
76
#endif // !NCSJPCPPMMARKER_H