1 /******************************************************************************
2  * $Id: gdaljp2abstractdataset.h b1c9c12ad373e40b955162b45d704070d4ebf7b0 2019-06-19 16:50:15 +0200 Even Rouault $
3  *
4  * Project:  GDAL
5  * Purpose:  GDALGeorefPamDataset with helper to read georeferencing and other
6  *           metadata from JP2Boxes
7  * Author:   Even Rouault <even dot rouault at spatialys.com>
8  *
9  ******************************************************************************
10  * Copyright (c) 2013, Even Rouault <even dot rouault at spatialys.com>
11  *
12  * Permission is hereby granted, free of charge, to any person obtaining a
13  * copy of this software and associated documentation files (the "Software"),
14  * to deal in the Software without restriction, including without limitation
15  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
16  * and/or sell copies of the Software, and to permit persons to whom the
17  * Software is furnished to do so, subject to the following conditions:
18  *
19  * The above copyright notice and this permission notice shall be included
20  * in all copies or substantial portions of the Software.
21  *
22  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
23  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
25  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
26  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
27  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
28  * DEALINGS IN THE SOFTWARE.
29  ****************************************************************************/
30 
31 #ifndef GDAL_JP2_ABSTRACT_DATASET_H_INCLUDED
32 #define GDAL_JP2_ABSTRACT_DATASET_H_INCLUDED
33 
34 //! @cond Doxygen_Suppress
35 #include "gdalgeorefpamdataset.h"
36 
37 class CPL_DLL GDALJP2AbstractDataset: public GDALGeorefPamDataset
38 {
39     char*               pszWldFilename = nullptr;
40 
41     GDALDataset*        poMemDS = nullptr;
42     char**              papszMetadataFiles = nullptr;
43     int                 m_nWORLDFILEIndex = -1;
44 
45     CPL_DISALLOW_COPY_ASSIGN(GDALJP2AbstractDataset)
46 
47   protected:
48     int CloseDependentDatasets() override;
49 
50   public:
51     GDALJP2AbstractDataset();
52     ~GDALJP2AbstractDataset() override;
53 
54     void LoadJP2Metadata( GDALOpenInfo* poOpenInfo,
55                           const char* pszOverrideFilename = nullptr );
56     void LoadVectorLayers( int bOpenRemoteResources = FALSE );
57 
58     char **GetFileList( void ) override;
59 
60     int GetLayerCount() override;
61     OGRLayer *GetLayer( int i ) override;
62 };
63 //! @endcond
64 
65 #endif /* GDAL_JP2_ABSTRACT_DATASET_H_INCLUDED */
66