GDAL

gdal_openinfo.h
1/******************************************************************************
2 *
3 * Name: gdal_openinfo.h
4 * Project: GDAL Core
5 * Purpose: Declaration of GDALOpenInfo class
6 * Author: Frank Warmerdam, warmerdam@pobox.com
7 *
8 ******************************************************************************
9 * Copyright (c) 1998, Frank Warmerdam
10 * Copyright (c) 2007-2014, Even Rouault <even dot rouault at spatialys.com>
11 *
12 * SPDX-License-Identifier: MIT
13 ****************************************************************************/
14
15#ifndef GDALOPENINFO_H_INCLUDED
16#define GDALOPENINFO_H_INCLUDED
17
18#include "cpl_port.h"
19
20#include "gdal.h"
21
22/* ******************************************************************** */
23/* GDALOpenInfo */
24/* ******************************************************************** */
25
27 class CPL_DLL GDALOpenInfo
28{
29 bool bHasGotSiblingFiles = false;
30 char **papszSiblingFiles = nullptr;
31 int nHeaderBytesTried = 0;
32
33 public:
34 GDALOpenInfo(const char *pszFile, int nOpenFlagsIn,
35 const char *const *papszSiblingFiles = nullptr);
36 ~GDALOpenInfo(void);
37
39 char *pszFilename = nullptr;
40
42 std::string osExtension{};
43
45 char **papszOpenOptions = nullptr;
46
48 GDALAccess eAccess = GA_ReadOnly;
50 int nOpenFlags = 0;
51
53 bool bStatOK = false;
55 bool bIsDirectory = false;
56
58 VSILFILE *fpL = nullptr;
59
61 int nHeaderBytes = 0;
63 GByte *pabyHeader = nullptr;
64
66 const char *const *papszAllowedDrivers = nullptr;
67
68 int TryToIngest(int nBytes);
69 char **GetSiblingFiles();
70 char **StealSiblingFiles();
71 bool AreSiblingFilesLoaded() const;
72
73 bool IsSingleAllowedDriver(const char *pszDriverName) const;
74
78 inline bool IsExtensionEqualToCI(const char *pszExt) const
79 {
80 return EQUAL(osExtension.c_str(), pszExt);
81 }
82
83 private:
84 CPL_DISALLOW_COPY_ASSIGN(GDALOpenInfo)
85};
86
87#endif
GDALOpenInfo
Class for dataset open functions.
Definition gdal_openinfo.h:28
GDALOpenInfo::IsExtensionEqualToCI
bool IsExtensionEqualToCI(const char *pszExt) const
Return whether the extension of the file is equal to pszExt, using case-insensitive comparison.
Definition gdal_openinfo.h:78
cpl_port.h
Core portability definitions for CPL.
EQUAL
#define EQUAL(a, b)
Alias for strcasecmp() == 0.
Definition cpl_port.h:541
CPL_DISALLOW_COPY_ASSIGN
#define CPL_DISALLOW_COPY_ASSIGN(ClassName)
Helper to remove the copy and assignment constructors so that the compiler will not generate the defa...
Definition cpl_port.h:936
GByte
unsigned char GByte
Unsigned byte type.
Definition cpl_port.h:175
gdal.h
Public (C callable) GDAL entry points.
GDALAccess
GDALAccess
Definition gdal.h:120
GA_ReadOnly
@ GA_ReadOnly
Definition gdal.h:121
VSIVirtualHandle
Virtual file handle.
Definition cpl_vsi_virtual.h:48