13#ifndef GDALMULTIDIM_PRIV_INCLUDED
14#define GDALMULTIDIM_PRIV_INCLUDED
22struct GDALExtendedDataTypeHS
24 std::unique_ptr<GDALExtendedDataType> m_poImpl;
26 explicit GDALExtendedDataTypeHS(GDALExtendedDataType *dt) : m_poImpl(dt)
31struct GDALEDTComponentHS
33 std::unique_ptr<GDALEDTComponent> m_poImpl;
35 explicit GDALEDTComponentHS(
const GDALEDTComponent &component)
36 : m_poImpl(new GDALEDTComponent(component))
43 std::shared_ptr<GDALGroup> m_poImpl;
45 explicit GDALGroupHS(
const std::shared_ptr<GDALGroup> &poGroup)
53 std::shared_ptr<GDALMDArray> m_poImpl;
55 explicit GDALMDArrayHS(
const std::shared_ptr<GDALMDArray> &poArray)
63 std::shared_ptr<GDALAttribute> m_poImpl;
65 explicit GDALAttributeHS(
const std::shared_ptr<GDALAttribute> &poAttr)
73 std::shared_ptr<GDALDimension> m_poImpl;
75 explicit GDALDimensionHS(
const std::shared_ptr<GDALDimension> &poDim)
83 std::vector<std::shared_ptr<GDALDimension>> m_dims{};
85 std::string m_osValue;
88 GDALMDIAsAttribute(
const std::string &name,
const std::string &value)
89 : GDALAbstractMDArray(std::string(), name),
90 GDALAttribute(std::string(), name), m_osValue(value)
94 const std::vector<std::shared_ptr<GDALDimension>> &
97 const GDALExtendedDataType &
GetDataType()
const override
103 const GPtrDiff_t *,
const GDALExtendedDataType &bufferDataType,
104 void *pDstBuffer)
const override
106 const char *pszStr = m_osValue.c_str();
virtual const std::vector< std::shared_ptr< GDALDimension > > & GetDimensions() const =0
Return the dimensions of an attribute/array.
virtual const GDALExtendedDataType & GetDataType() const =0
Return the data type of an attribute/array.
Class modeling an attribute that has a name, a value and a type, and is typically used to describe a ...
Definition gdal_multidim.h:729
static bool CopyValue(const void *pSrc, const GDALExtendedDataType &srcType, void *pDst, const GDALExtendedDataType &dstType)
Convert a value from a source type to a destination type.
Definition gdalmultidim.cpp:1721
static GDALExtendedDataType CreateString(size_t nMaxStringLength=0, GDALExtendedDataTypeSubType eSubType=GEDTST_NONE)
Return a new GDALExtendedDataType of class GEDTC_STRING.
Definition gdalmultidim.cpp:10768
int GPtrDiff_t
Integer type large enough to hold the difference between 2 addresses.
Definition cpl_port.h:246
GIntBig GInt64
Signed 64 bit integer type.
Definition cpl_port.h:226
GUIntBig GUInt64
Unsigned 64 bit integer type.
Definition cpl_port.h:228
This file is legacy since GDAL 3.12, but will be kept at least in the whole GDAL 3....