@cpp.js/package-gdal 1.0.0-beta.22 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (255) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/README.md +1 -1
  3. package/cppjs.build.js +1 -0
  4. package/dist/prebuilt/Android-arm64-v8a/include/gdal_version.h +3 -3
  5. package/dist/prebuilt/Android-arm64-v8a/include/ogr_api.h +4 -4
  6. package/dist/prebuilt/Android-arm64-v8a/include/ogr_feature.h +2 -2
  7. package/dist/prebuilt/Android-arm64-v8a/lib/cmake/gdal/GDALConfigVersion.cmake +3 -3
  8. package/dist/prebuilt/Android-arm64-v8a/lib/libgdal.so +0 -0
  9. package/dist/prebuilt/Android-arm64-v8a/lib/pkgconfig/gdal.pc +1 -1
  10. package/dist/prebuilt/Android-arm64-v8a/share/gdal/gdalvrt.xsd +30 -24
  11. package/dist/prebuilt/Android-x86_64/include/cpl_atomic_ops.h +90 -0
  12. package/dist/prebuilt/Android-x86_64/include/cpl_auto_close.h +73 -0
  13. package/dist/prebuilt/Android-x86_64/include/cpl_compressor.h +112 -0
  14. package/dist/prebuilt/Android-x86_64/include/cpl_config.h +215 -0
  15. package/dist/prebuilt/Android-x86_64/include/cpl_config_extras.h +34 -0
  16. package/dist/prebuilt/Android-x86_64/include/cpl_conv.h +417 -0
  17. package/dist/prebuilt/Android-x86_64/include/cpl_csv.h +71 -0
  18. package/dist/prebuilt/Android-x86_64/include/cpl_error.h +344 -0
  19. package/dist/prebuilt/Android-x86_64/include/cpl_hash_set.h +83 -0
  20. package/dist/prebuilt/Android-x86_64/include/cpl_http.h +319 -0
  21. package/dist/prebuilt/Android-x86_64/include/cpl_json.h +301 -0
  22. package/dist/prebuilt/Android-x86_64/include/cpl_list.h +59 -0
  23. package/dist/prebuilt/Android-x86_64/include/cpl_minixml.h +211 -0
  24. package/dist/prebuilt/Android-x86_64/include/cpl_multiproc.h +241 -0
  25. package/dist/prebuilt/Android-x86_64/include/cpl_port.h +1182 -0
  26. package/dist/prebuilt/Android-x86_64/include/cpl_progress.h +49 -0
  27. package/dist/prebuilt/Android-x86_64/include/cpl_quad_tree.h +105 -0
  28. package/dist/prebuilt/Android-x86_64/include/cpl_spawn.h +60 -0
  29. package/dist/prebuilt/Android-x86_64/include/cpl_string.h +863 -0
  30. package/dist/prebuilt/Android-x86_64/include/cpl_time.h +29 -0
  31. package/dist/prebuilt/Android-x86_64/include/cpl_virtualmem.h +365 -0
  32. package/dist/prebuilt/Android-x86_64/include/cpl_vsi.h +830 -0
  33. package/dist/prebuilt/Android-x86_64/include/cpl_vsi_error.h +55 -0
  34. package/dist/prebuilt/Android-x86_64/include/cpl_vsi_virtual.h +580 -0
  35. package/dist/prebuilt/Android-x86_64/include/cplkeywordparser.h +61 -0
  36. package/dist/prebuilt/Android-x86_64/include/gdal.h +2667 -0
  37. package/dist/prebuilt/Android-x86_64/include/gdal_alg.h +717 -0
  38. package/dist/prebuilt/Android-x86_64/include/gdal_alg_priv.h +386 -0
  39. package/dist/prebuilt/Android-x86_64/include/gdal_csv.h +25 -0
  40. package/dist/prebuilt/Android-x86_64/include/gdal_frmts.h +236 -0
  41. package/dist/prebuilt/Android-x86_64/include/gdal_mdreader.h +240 -0
  42. package/dist/prebuilt/Android-x86_64/include/gdal_pam.h +461 -0
  43. package/dist/prebuilt/Android-x86_64/include/gdal_priv.h +4599 -0
  44. package/dist/prebuilt/Android-x86_64/include/gdal_proxy.h +470 -0
  45. package/dist/prebuilt/Android-x86_64/include/gdal_rat.h +390 -0
  46. package/dist/prebuilt/Android-x86_64/include/gdal_simplesurf.h +579 -0
  47. package/dist/prebuilt/Android-x86_64/include/gdal_utils.h +313 -0
  48. package/dist/prebuilt/Android-x86_64/include/gdal_version.h +33 -0
  49. package/dist/prebuilt/Android-x86_64/include/gdal_vrt.h +89 -0
  50. package/dist/prebuilt/Android-x86_64/include/gdalcachedpixelaccessor.h +439 -0
  51. package/dist/prebuilt/Android-x86_64/include/gdalgeorefpamdataset.h +73 -0
  52. package/dist/prebuilt/Android-x86_64/include/gdalgrid.h +102 -0
  53. package/dist/prebuilt/Android-x86_64/include/gdalgrid_priv.h +67 -0
  54. package/dist/prebuilt/Android-x86_64/include/gdaljp2abstractdataset.h +61 -0
  55. package/dist/prebuilt/Android-x86_64/include/gdaljp2metadata.h +237 -0
  56. package/dist/prebuilt/Android-x86_64/include/gdalpansharpen.h +258 -0
  57. package/dist/prebuilt/Android-x86_64/include/gdalsubdatasetinfo.h +104 -0
  58. package/dist/prebuilt/Android-x86_64/include/gdalwarper.h +622 -0
  59. package/dist/prebuilt/Android-x86_64/include/gnm.h +750 -0
  60. package/dist/prebuilt/Android-x86_64/include/gnm_api.h +101 -0
  61. package/dist/prebuilt/Android-x86_64/include/gnmgraph.h +258 -0
  62. package/dist/prebuilt/Android-x86_64/include/memdataset.h +176 -0
  63. package/dist/prebuilt/Android-x86_64/include/ogr_api.h +1024 -0
  64. package/dist/prebuilt/Android-x86_64/include/ogr_core.h +1321 -0
  65. package/dist/prebuilt/Android-x86_64/include/ogr_feature.h +1981 -0
  66. package/dist/prebuilt/Android-x86_64/include/ogr_featurestyle.h +858 -0
  67. package/dist/prebuilt/Android-x86_64/include/ogr_geocoding.h +46 -0
  68. package/dist/prebuilt/Android-x86_64/include/ogr_geomcoordinateprecision.h +79 -0
  69. package/dist/prebuilt/Android-x86_64/include/ogr_geometry.h +4346 -0
  70. package/dist/prebuilt/Android-x86_64/include/ogr_p.h +324 -0
  71. package/dist/prebuilt/Android-x86_64/include/ogr_recordbatch.h +125 -0
  72. package/dist/prebuilt/Android-x86_64/include/ogr_spatialref.h +1007 -0
  73. package/dist/prebuilt/Android-x86_64/include/ogr_srs_api.h +1088 -0
  74. package/dist/prebuilt/Android-x86_64/include/ogr_swq.h +529 -0
  75. package/dist/prebuilt/Android-x86_64/include/ogrsf_frmts.h +746 -0
  76. package/dist/prebuilt/Android-x86_64/include/rawdataset.h +255 -0
  77. package/dist/prebuilt/Android-x86_64/include/vrtdataset.h +2426 -0
  78. package/dist/prebuilt/Android-x86_64/lib/cmake/gdal/GDAL-targets-release.cmake +19 -0
  79. package/dist/prebuilt/Android-x86_64/lib/cmake/gdal/GDAL-targets.cmake +106 -0
  80. package/dist/prebuilt/Android-x86_64/lib/cmake/gdal/GDALConfig.cmake +21 -0
  81. package/dist/prebuilt/Android-x86_64/lib/cmake/gdal/GDALConfigVersion.cmake +85 -0
  82. package/dist/prebuilt/Android-x86_64/lib/gdalplugins/drivers.ini +290 -0
  83. package/dist/prebuilt/Android-x86_64/lib/libgdal.so +0 -0
  84. package/dist/prebuilt/Android-x86_64/lib/pkgconfig/gdal.pc +17 -0
  85. package/dist/prebuilt/Android-x86_64/share/gdal/GDALLogoBW.svg +138 -0
  86. package/dist/prebuilt/Android-x86_64/share/gdal/GDALLogoColor.svg +126 -0
  87. package/dist/prebuilt/Android-x86_64/share/gdal/GDALLogoGS.svg +126 -0
  88. package/dist/prebuilt/Android-x86_64/share/gdal/LICENSE.TXT +467 -0
  89. package/dist/prebuilt/Android-x86_64/share/gdal/MM_m_idofic.csv +321 -0
  90. package/dist/prebuilt/Android-x86_64/share/gdal/cubewerx_extra.wkt +48 -0
  91. package/dist/prebuilt/Android-x86_64/share/gdal/default.rsc +0 -0
  92. package/dist/prebuilt/Android-x86_64/share/gdal/ecw_cs.wkt +1453 -0
  93. package/dist/prebuilt/Android-x86_64/share/gdal/epsg.wkt +1 -0
  94. package/dist/prebuilt/Android-x86_64/share/gdal/esri_StatePlane_extra.wkt +631 -0
  95. package/dist/prebuilt/Android-x86_64/share/gdal/gdalicon.png +0 -0
  96. package/dist/prebuilt/Android-x86_64/share/gdal/gdalinfo_output.schema.json +346 -0
  97. package/dist/prebuilt/Android-x86_64/share/gdal/gdalmdiminfo_output.schema.json +321 -0
  98. package/dist/prebuilt/Android-x86_64/share/gdal/gdaltileindex.xsd +253 -0
  99. package/dist/prebuilt/Android-x86_64/share/gdal/gdalvrt.xsd +887 -0
  100. package/dist/prebuilt/Android-x86_64/share/gdal/gfs.xsd +246 -0
  101. package/dist/prebuilt/Android-x86_64/share/gdal/gml_registry.xml +117 -0
  102. package/dist/prebuilt/Android-x86_64/share/gdal/gml_registry.xsd +66 -0
  103. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_center.csv +251 -0
  104. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_process.csv +102 -0
  105. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_subcenter.csv +63 -0
  106. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_0.csv +261 -0
  107. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_1.csv +261 -0
  108. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_13.csv +261 -0
  109. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_14.csv +261 -0
  110. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_15.csv +261 -0
  111. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_16.csv +261 -0
  112. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_17.csv +11 -0
  113. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_18.csv +261 -0
  114. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_19.csv +261 -0
  115. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_190.csv +261 -0
  116. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_191.csv +261 -0
  117. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_2.csv +261 -0
  118. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_20.csv +261 -0
  119. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_21.csv +261 -0
  120. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_3.csv +261 -0
  121. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_4.csv +261 -0
  122. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_5.csv +261 -0
  123. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_6.csv +261 -0
  124. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_7.csv +261 -0
  125. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_10_0.csv +261 -0
  126. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_10_1.csv +261 -0
  127. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_10_191.csv +261 -0
  128. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_10_2.csv +261 -0
  129. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_10_3.csv +261 -0
  130. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_10_4.csv +261 -0
  131. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_1_0.csv +261 -0
  132. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_1_1.csv +261 -0
  133. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_1_2.csv +261 -0
  134. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_20_0.csv +261 -0
  135. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_20_1.csv +261 -0
  136. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_20_2.csv +261 -0
  137. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_2_0.csv +261 -0
  138. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_2_3.csv +261 -0
  139. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_2_4.csv +261 -0
  140. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_2_5.csv +261 -0
  141. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_2_6.csv +261 -0
  142. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_3_0.csv +261 -0
  143. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_3_1.csv +261 -0
  144. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_3_2.csv +28 -0
  145. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_3_3.csv +8 -0
  146. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_3_4.csv +14 -0
  147. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_3_5.csv +11 -0
  148. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_3_6.csv +11 -0
  149. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_4_0.csv +261 -0
  150. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_4_1.csv +261 -0
  151. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_4_10.csv +261 -0
  152. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_4_2.csv +261 -0
  153. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_4_3.csv +261 -0
  154. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_4_4.csv +261 -0
  155. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_4_5.csv +261 -0
  156. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_4_6.csv +261 -0
  157. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_4_7.csv +261 -0
  158. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_4_8.csv +261 -0
  159. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_4_9.csv +261 -0
  160. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_local_Canada.csv +5 -0
  161. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_local_HPC.csv +2 -0
  162. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_local_MRMS.csv +175 -0
  163. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_local_NCEP.csv +401 -0
  164. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_local_NDFD.csv +38 -0
  165. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_local_index.csv +7 -0
  166. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_5.csv +261 -0
  167. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_versions.csv +3 -0
  168. package/dist/prebuilt/Android-x86_64/share/gdal/gt_datum.csv +229 -0
  169. package/dist/prebuilt/Android-x86_64/share/gdal/gt_ellips.csv +24 -0
  170. package/dist/prebuilt/Android-x86_64/share/gdal/header.dxf +1124 -0
  171. package/dist/prebuilt/Android-x86_64/share/gdal/inspire_cp_BasicPropertyUnit.gfs +57 -0
  172. package/dist/prebuilt/Android-x86_64/share/gdal/inspire_cp_CadastralBoundary.gfs +60 -0
  173. package/dist/prebuilt/Android-x86_64/share/gdal/inspire_cp_CadastralParcel.gfs +81 -0
  174. package/dist/prebuilt/Android-x86_64/share/gdal/inspire_cp_CadastralZoning.gfs +161 -0
  175. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_AdmArea.gfs +59 -0
  176. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_AdmBdry.gfs +49 -0
  177. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_AdmPt.gfs +59 -0
  178. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_BldA.gfs +54 -0
  179. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_BldL.gfs +54 -0
  180. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_Cntr.gfs +54 -0
  181. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_CommBdry.gfs +49 -0
  182. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_CommPt.gfs +59 -0
  183. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_Cstline.gfs +54 -0
  184. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_ElevPt.gfs +54 -0
  185. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_GCP.gfs +94 -0
  186. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_LeveeEdge.gfs +49 -0
  187. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_RailCL.gfs +54 -0
  188. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_RdASL.gfs +44 -0
  189. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_RdArea.gfs +54 -0
  190. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_RdCompt.gfs +59 -0
  191. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_RdEdg.gfs +59 -0
  192. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_RdMgtBdry.gfs +49 -0
  193. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_RdSgmtA.gfs +59 -0
  194. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_RvrMgtBdry.gfs +49 -0
  195. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_SBAPt.gfs +49 -0
  196. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_SBArea.gfs +54 -0
  197. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_SBBdry.gfs +44 -0
  198. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_WA.gfs +54 -0
  199. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_WL.gfs +54 -0
  200. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_WStrA.gfs +54 -0
  201. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_WStrL.gfs +54 -0
  202. package/dist/prebuilt/Android-x86_64/share/gdal/nitf_spec.xml +3290 -0
  203. package/dist/prebuilt/Android-x86_64/share/gdal/nitf_spec.xsd +173 -0
  204. package/dist/prebuilt/Android-x86_64/share/gdal/ogrinfo_output.schema.json +528 -0
  205. package/dist/prebuilt/Android-x86_64/share/gdal/ogrvrt.xsd +530 -0
  206. package/dist/prebuilt/Android-x86_64/share/gdal/osmconf.ini +134 -0
  207. package/dist/prebuilt/Android-x86_64/share/gdal/ozi_datum.csv +131 -0
  208. package/dist/prebuilt/Android-x86_64/share/gdal/ozi_ellips.csv +35 -0
  209. package/dist/prebuilt/Android-x86_64/share/gdal/pci_datum.txt +530 -0
  210. package/dist/prebuilt/Android-x86_64/share/gdal/pci_ellips.txt +129 -0
  211. package/dist/prebuilt/Android-x86_64/share/gdal/pdfcomposition.xsd +705 -0
  212. package/dist/prebuilt/Android-x86_64/share/gdal/ruian_vf_ob_v1.gfs +1455 -0
  213. package/dist/prebuilt/Android-x86_64/share/gdal/ruian_vf_st_uvoh_v1.gfs +86 -0
  214. package/dist/prebuilt/Android-x86_64/share/gdal/ruian_vf_st_v1.gfs +1489 -0
  215. package/dist/prebuilt/Android-x86_64/share/gdal/ruian_vf_v1.gfs +2126 -0
  216. package/dist/prebuilt/Android-x86_64/share/gdal/s57agencies.csv +249 -0
  217. package/dist/prebuilt/Android-x86_64/share/gdal/s57attributes.csv +484 -0
  218. package/dist/prebuilt/Android-x86_64/share/gdal/s57expectedinput.csv +1008 -0
  219. package/dist/prebuilt/Android-x86_64/share/gdal/s57objectclasses.csv +287 -0
  220. package/dist/prebuilt/Android-x86_64/share/gdal/seed_2d.dgn +0 -0
  221. package/dist/prebuilt/Android-x86_64/share/gdal/seed_3d.dgn +0 -0
  222. package/dist/prebuilt/Android-x86_64/share/gdal/stateplane.csv +259 -0
  223. package/dist/prebuilt/Android-x86_64/share/gdal/tms_LINZAntarticaMapTileGrid.json +190 -0
  224. package/dist/prebuilt/Android-x86_64/share/gdal/tms_MapML_APSTILE.json +268 -0
  225. package/dist/prebuilt/Android-x86_64/share/gdal/tms_MapML_CBMTILE.json +346 -0
  226. package/dist/prebuilt/Android-x86_64/share/gdal/tms_NZTM2000.json +243 -0
  227. package/dist/prebuilt/Android-x86_64/share/gdal/trailer.dxf +434 -0
  228. package/dist/prebuilt/Android-x86_64/share/gdal/vdv452.xml +351 -0
  229. package/dist/prebuilt/Android-x86_64/share/gdal/vdv452.xsd +47 -0
  230. package/dist/prebuilt/Emscripten-x86_64/include/gdal_version.h +3 -3
  231. package/dist/prebuilt/Emscripten-x86_64/include/ogr_api.h +4 -4
  232. package/dist/prebuilt/Emscripten-x86_64/include/ogr_feature.h +2 -2
  233. package/dist/prebuilt/Emscripten-x86_64/lib/cmake/gdal/GDALConfigVersion.cmake +3 -3
  234. package/dist/prebuilt/Emscripten-x86_64/lib/cmake/gdal/thirdparty/FindDotnet.cmake +33 -36
  235. package/dist/prebuilt/Emscripten-x86_64/lib/libgdal.a +0 -0
  236. package/dist/prebuilt/Emscripten-x86_64/lib/pkgconfig/gdal.pc +1 -1
  237. package/dist/prebuilt/Emscripten-x86_64/share/gdal/gdalvrt.xsd +30 -24
  238. package/dist/prebuilt/iOS-iphoneos/include/gdal_version.h +3 -3
  239. package/dist/prebuilt/iOS-iphoneos/include/ogr_api.h +4 -4
  240. package/dist/prebuilt/iOS-iphoneos/include/ogr_feature.h +2 -2
  241. package/dist/prebuilt/iOS-iphoneos/share/gdal/gdalvrt.xsd +30 -24
  242. package/dist/prebuilt/iOS-iphonesimulator/include/gdal_version.h +3 -3
  243. package/dist/prebuilt/iOS-iphonesimulator/include/ogr_api.h +4 -4
  244. package/dist/prebuilt/iOS-iphonesimulator/include/ogr_feature.h +2 -2
  245. package/dist/prebuilt/iOS-iphonesimulator/share/gdal/gdalvrt.xsd +30 -24
  246. package/gdal.xcframework/ios-arm64_arm64e/Headers/gdal_version.h +3 -3
  247. package/gdal.xcframework/ios-arm64_arm64e/Headers/ogr_api.h +4 -4
  248. package/gdal.xcframework/ios-arm64_arm64e/Headers/ogr_feature.h +2 -2
  249. package/gdal.xcframework/ios-arm64_arm64e/libgdal.a +0 -0
  250. package/gdal.xcframework/ios-arm64_arm64e_x86_64-simulator/Headers/gdal_version.h +3 -3
  251. package/gdal.xcframework/ios-arm64_arm64e_x86_64-simulator/Headers/ogr_api.h +4 -4
  252. package/gdal.xcframework/ios-arm64_arm64e_x86_64-simulator/Headers/ogr_feature.h +2 -2
  253. package/gdal.xcframework/ios-arm64_arm64e_x86_64-simulator/libgdal.a +0 -0
  254. package/package.json +13 -13
  255. package/dist/prebuilt/Emscripten-x86_64/lib/cmake/gdal/packages/FindDB2.cmake +0 -103
@@ -0,0 +1,319 @@
1
+ /******************************************************************************
2
+ * $Id$
3
+ *
4
+ * Project: Common Portability Library
5
+ * Purpose: Function wrapper for libcurl HTTP access.
6
+ * Author: Frank Warmerdam, warmerdam@pobox.com
7
+ *
8
+ ******************************************************************************
9
+ * Copyright (c) 2006, Frank Warmerdam
10
+ * Copyright (c) 2009, Even Rouault <even dot rouault at spatialys.com>
11
+ *
12
+ * SPDX-License-Identifier: MIT
13
+ ****************************************************************************/
14
+
15
+ #ifndef CPL_HTTP_H_INCLUDED
16
+ #define CPL_HTTP_H_INCLUDED
17
+
18
+ #include "cpl_conv.h"
19
+ #include "cpl_string.h"
20
+ #include "cpl_progress.h"
21
+ #include "cpl_vsi.h"
22
+
23
+ /**
24
+ * \file cpl_http.h
25
+ *
26
+ * Interface for downloading HTTP, FTP documents
27
+ */
28
+
29
+ /*! @cond Doxygen_Suppress */
30
+ #ifndef CPL_HTTP_MAX_RETRY
31
+ #define CPL_HTTP_MAX_RETRY 0
32
+ #endif
33
+
34
+ #ifndef CPL_HTTP_RETRY_DELAY
35
+ #define CPL_HTTP_RETRY_DELAY 30.0
36
+ #endif
37
+ /*! @endcond */
38
+
39
+ CPL_C_START
40
+
41
+ /*! Describe a part of a multipart message */
42
+ typedef struct
43
+ {
44
+ /*! NULL terminated array of headers */ char **papszHeaders;
45
+
46
+ /*! Buffer with data of the part */ GByte *pabyData;
47
+ /*! Buffer length */ int nDataLen;
48
+ } CPLMimePart;
49
+
50
+ /*! Describe the result of a CPLHTTPFetch() call */
51
+ typedef struct
52
+ {
53
+ /*! cURL error code : 0=success, non-zero if request failed */
54
+ int nStatus;
55
+
56
+ /*! Content-Type of the response */
57
+ char *pszContentType;
58
+
59
+ /*! Error message from curl, or NULL */
60
+ char *pszErrBuf;
61
+
62
+ /*! Length of the pabyData buffer */
63
+ int nDataLen;
64
+ /*! Allocated size of the pabyData buffer */
65
+ int nDataAlloc;
66
+
67
+ /*! Buffer with downloaded data */
68
+ GByte *pabyData;
69
+
70
+ /*! Headers returned */
71
+ char **papszHeaders;
72
+
73
+ /*! Number of parts in a multipart message */
74
+ int nMimePartCount;
75
+
76
+ /*! Array of parts (resolved by CPLHTTPParseMultipartMime()) */
77
+ CPLMimePart *pasMimePart;
78
+
79
+ } CPLHTTPResult;
80
+
81
+ /*! @cond Doxygen_Suppress */
82
+ typedef size_t (*CPLHTTPFetchWriteFunc)(void *pBuffer, size_t nSize,
83
+ size_t nMemb, void *pWriteArg);
84
+ /*! @endcond */
85
+
86
+ int CPL_DLL CPLHTTPEnabled(void);
87
+ CPLHTTPResult CPL_DLL *CPLHTTPFetch(const char *pszURL,
88
+ CSLConstList papszOptions);
89
+ CPLHTTPResult CPL_DLL *
90
+ CPLHTTPFetchEx(const char *pszURL, CSLConstList papszOptions,
91
+ GDALProgressFunc pfnProgress, void *pProgressArg,
92
+ CPLHTTPFetchWriteFunc pfnWrite, void *pWriteArg);
93
+ CPLHTTPResult CPL_DLL **CPLHTTPMultiFetch(const char *const *papszURL,
94
+ int nURLCount, int nMaxSimultaneous,
95
+ CSLConstList papszOptions);
96
+
97
+ void CPL_DLL CPLHTTPCleanup(void);
98
+ void CPL_DLL CPLHTTPDestroyResult(CPLHTTPResult *psResult);
99
+ void CPL_DLL CPLHTTPDestroyMultiResult(CPLHTTPResult **papsResults, int nCount);
100
+ int CPL_DLL CPLHTTPParseMultipartMime(CPLHTTPResult *psResult);
101
+
102
+ void CPL_DLL CPLHTTPSetDefaultUserAgent(const char *pszUserAgent);
103
+
104
+ /* -------------------------------------------------------------------- */
105
+ /* To install an alternate network layer to the default Curl one */
106
+ /* -------------------------------------------------------------------- */
107
+ /** Callback function to process network requests.
108
+ *
109
+ * If CLOSE_PERSISTENT is found in papszOptions, no network request should be
110
+ * issued, but a dummy non-null CPLHTTPResult* should be returned by the
111
+ * callback.
112
+ *
113
+ * Its first arguments are the same as CPLHTTPFetchEx()
114
+ * @param pszURL See CPLHTTPFetchEx()
115
+ * @param papszOptions See CPLHTTPFetchEx()
116
+ * @param pfnProgress See CPLHTTPFetchEx()
117
+ * @param pProgressArg See CPLHTTPFetchEx()
118
+ * @param pfnWrite See CPLHTTPFetchEx()
119
+ * @param pWriteArg See CPLHTTPFetchEx()
120
+ * @param pUserData user data value that was passed during
121
+ * CPLHTTPPushFetchCallback()
122
+ * @return nullptr if the request cannot be processed, in which case the
123
+ * previous handler will be used.
124
+ */
125
+ typedef CPLHTTPResult *(*CPLHTTPFetchCallbackFunc)(
126
+ const char *pszURL, CSLConstList papszOptions, GDALProgressFunc pfnProgress,
127
+ void *pProgressArg, CPLHTTPFetchWriteFunc pfnWrite, void *pWriteArg,
128
+ void *pUserData);
129
+
130
+ void CPL_DLL CPLHTTPSetFetchCallback(CPLHTTPFetchCallbackFunc pFunc,
131
+ void *pUserData);
132
+
133
+ int CPL_DLL CPLHTTPPushFetchCallback(CPLHTTPFetchCallbackFunc pFunc,
134
+ void *pUserData);
135
+ int CPL_DLL CPLHTTPPopFetchCallback(void);
136
+
137
+ /* -------------------------------------------------------------------- */
138
+ /* The following is related to OAuth2 authorization around */
139
+ /* google services like fusion tables, and potentially others */
140
+ /* in the future. Code in cpl_google_oauth2.cpp. */
141
+ /* */
142
+ /* These services are built on CPL HTTP services. */
143
+ /* -------------------------------------------------------------------- */
144
+
145
+ char CPL_DLL *GOA2GetAuthorizationURL(const char *pszScope);
146
+ char CPL_DLL *GOA2GetRefreshToken(const char *pszAuthToken,
147
+ const char *pszScope);
148
+ char CPL_DLL *GOA2GetAccessToken(const char *pszRefreshToken,
149
+ const char *pszScope);
150
+
151
+ char CPL_DLL **GOA2GetAccessTokenFromServiceAccount(
152
+ const char *pszPrivateKey, const char *pszClientEmail, const char *pszScope,
153
+ CSLConstList papszAdditionalClaims, CSLConstList papszOptions);
154
+
155
+ char CPL_DLL **GOA2GetAccessTokenFromCloudEngineVM(CSLConstList papszOptions);
156
+
157
+ CPL_C_END
158
+
159
+ #if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS)
160
+ /*! @cond Doxygen_Suppress */
161
+ // Not sure if this belong here, used in cpl_http.cpp, cpl_vsil_curl.cpp and
162
+ // frmts/wms/gdalhttp.cpp
163
+ void CPL_DLL *CPLHTTPSetOptions(void *pcurl, const char *pszURL,
164
+ const char *const *papszOptions);
165
+ char **CPLHTTPGetOptionsFromEnv(const char *pszFilename);
166
+
167
+ /** Stores HTTP retry parameters */
168
+ struct CPLHTTPRetryParameters
169
+ {
170
+ int nMaxRetry = CPL_HTTP_MAX_RETRY;
171
+ double dfInitialDelay = CPL_HTTP_RETRY_DELAY;
172
+ std::string osRetryCodes{};
173
+
174
+ CPLHTTPRetryParameters() = default;
175
+ explicit CPLHTTPRetryParameters(const CPLStringList &aosHTTPOptions);
176
+ };
177
+
178
+ /** HTTP retry context */
179
+ class CPLHTTPRetryContext
180
+ {
181
+ public:
182
+ explicit CPLHTTPRetryContext(const CPLHTTPRetryParameters &oParams);
183
+
184
+ bool CanRetry(int response_code, const char *pszErrBuf,
185
+ const char *pszCurlError);
186
+ bool CanRetry();
187
+
188
+ /** Returns the delay to apply. Only valid after a successful call to CanRetry() */
189
+ double GetCurrentDelay() const;
190
+
191
+ /** Reset retry counter. */
192
+ void ResetCounter()
193
+ {
194
+ m_nRetryCount = 0;
195
+ }
196
+
197
+ private:
198
+ CPLHTTPRetryParameters m_oParameters{};
199
+ int m_nRetryCount = 0;
200
+ double m_dfCurDelay = 0.0;
201
+ double m_dfNextDelay = 0.0;
202
+ };
203
+
204
+ void CPL_DLL *CPLHTTPIgnoreSigPipe();
205
+ void CPL_DLL CPLHTTPRestoreSigPipeHandler(void *old_handler);
206
+ bool CPLMultiPerformWait(void *hCurlMultiHandle, int &repeats);
207
+ /*! @endcond */
208
+
209
+ bool CPL_DLL CPLIsMachinePotentiallyGCEInstance();
210
+ bool CPLIsMachineForSureGCEInstance();
211
+
212
+ /** Manager of Google OAuth2 authentication.
213
+ *
214
+ * This class handles different authentication methods and handles renewal
215
+ * of access token.
216
+ *
217
+ * @since GDAL 2.3
218
+ */
219
+ class GOA2Manager
220
+ {
221
+ public:
222
+ GOA2Manager();
223
+
224
+ /** Authentication method */
225
+ typedef enum
226
+ {
227
+ NONE,
228
+ GCE,
229
+ ACCESS_TOKEN_FROM_REFRESH,
230
+ SERVICE_ACCOUNT
231
+ } AuthMethod;
232
+
233
+ bool SetAuthFromGCE(CSLConstList papszOptions);
234
+ bool SetAuthFromRefreshToken(const char *pszRefreshToken,
235
+ const char *pszClientId,
236
+ const char *pszClientSecret,
237
+ CSLConstList papszOptions);
238
+ bool SetAuthFromServiceAccount(const char *pszPrivateKey,
239
+ const char *pszClientEmail,
240
+ const char *pszScope,
241
+ CSLConstList papszAdditionalClaims,
242
+ CSLConstList papszOptions);
243
+
244
+ /** Returns the authentication method. */
245
+ AuthMethod GetAuthMethod() const
246
+ {
247
+ return m_eMethod;
248
+ }
249
+
250
+ const char *GetBearer() const;
251
+
252
+ /** Returns private key for SERVICE_ACCOUNT method */
253
+ const CPLString &GetPrivateKey() const
254
+ {
255
+ return m_osPrivateKey;
256
+ }
257
+
258
+ /** Returns client email for SERVICE_ACCOUNT method */
259
+ const CPLString &GetClientEmail() const
260
+ {
261
+ return m_osClientEmail;
262
+ }
263
+
264
+ /** Returns a key that can be used to uniquely identify the instance
265
+ * parameters (excluding bearer)
266
+ */
267
+ std::string GetKey() const
268
+ {
269
+ std::string osKey(std::to_string(static_cast<int>(m_eMethod))
270
+ .append(",client-id=")
271
+ .append(m_osClientId)
272
+ .append(",client-secret=")
273
+ .append(m_osClientSecret)
274
+ .append(",refresh-token=")
275
+ .append(m_osRefreshToken)
276
+ .append(",private-key=")
277
+ .append(m_osPrivateKey)
278
+ .append(",client-email=")
279
+ .append(m_osClientEmail)
280
+ .append(",scope=")
281
+ .append(m_osScope));
282
+ osKey.append(",additional-claims=");
283
+ for (const auto *pszOption : m_aosAdditionalClaims)
284
+ {
285
+ osKey.append(pszOption);
286
+ osKey.append("+");
287
+ }
288
+ osKey.append(",options=");
289
+ for (const auto *pszOption : m_aosOptions)
290
+ {
291
+ osKey.append(pszOption);
292
+ osKey.append("+");
293
+ }
294
+ return osKey;
295
+ }
296
+
297
+ private:
298
+ mutable CPLString m_osCurrentBearer{};
299
+ mutable time_t m_nExpirationTime = 0;
300
+
301
+ AuthMethod m_eMethod = NONE;
302
+
303
+ // for ACCESS_TOKEN_FROM_REFRESH
304
+ CPLString m_osClientId{};
305
+ CPLString m_osClientSecret{};
306
+ CPLString m_osRefreshToken{};
307
+
308
+ // for SERVICE_ACCOUNT
309
+ CPLString m_osPrivateKey{};
310
+ CPLString m_osClientEmail{};
311
+ CPLString m_osScope{};
312
+ CPLStringList m_aosAdditionalClaims{};
313
+
314
+ CPLStringList m_aosOptions{};
315
+ };
316
+
317
+ #endif // __cplusplus
318
+
319
+ #endif /* ndef CPL_HTTP_H_INCLUDED */
@@ -0,0 +1,301 @@
1
+ /******************************************************************************
2
+ * Project: Common Portability Library
3
+ * Purpose: Function wrapper for libjson-c access.
4
+ * Author: Dmitry Baryshnikov, dmitry.baryshnikov@nextgis.com
5
+ *
6
+ ******************************************************************************
7
+ * Copyright (c) 2017-2018 NextGIS, <info@nextgis.com>
8
+ *
9
+ * SPDX-License-Identifier: MIT
10
+ ****************************************************************************/
11
+
12
+ #ifndef CPL_JSON_H_INCLUDED
13
+ #define CPL_JSON_H_INCLUDED
14
+
15
+ #include "cpl_progress.h"
16
+ #include "cpl_string.h"
17
+
18
+ #include <cstdint>
19
+ #include <string>
20
+ #include <vector>
21
+
22
+ /**
23
+ * \file cpl_json.h
24
+ *
25
+ * Interface for read and write JSON documents
26
+ */
27
+
28
+ /*! @cond Doxygen_Suppress */
29
+ typedef void *JSONObjectH;
30
+
31
+ CPL_C_START
32
+
33
+ class CPLJSONArray;
34
+
35
+ /*! @endcond */
36
+
37
+ /**
38
+ * @brief The CPLJSONArray class holds JSON object from CPLJSONDocument
39
+ */
40
+ class CPL_DLL CPLJSONObject
41
+ {
42
+ friend class CPLJSONArray;
43
+ friend class CPLJSONDocument;
44
+
45
+ public:
46
+ /**
47
+ * Json object types
48
+ */
49
+ enum class Type
50
+ {
51
+ Unknown,
52
+ Null,
53
+ Object,
54
+ Array,
55
+ Boolean,
56
+ String,
57
+ Integer,
58
+ Long,
59
+ Double
60
+ };
61
+
62
+ /**
63
+ * Json object format to string options
64
+ */
65
+ enum class PrettyFormat
66
+ {
67
+ Plain, ///< No extra whitespace or formatting applied
68
+ Spaced, ///< Minimal whitespace inserted
69
+ Pretty ///< Formatted output
70
+ };
71
+
72
+ public:
73
+ /*! @cond Doxygen_Suppress */
74
+ CPLJSONObject();
75
+ explicit CPLJSONObject(const std::string &osName,
76
+ const CPLJSONObject &oParent);
77
+ explicit CPLJSONObject(std::nullptr_t);
78
+ explicit CPLJSONObject(const std::string &osVal);
79
+ explicit CPLJSONObject(const char *pszValue);
80
+ explicit CPLJSONObject(bool bVal);
81
+ explicit CPLJSONObject(int nVal);
82
+ explicit CPLJSONObject(int64_t nVal);
83
+ explicit CPLJSONObject(uint64_t nVal);
84
+ explicit CPLJSONObject(double dfVal);
85
+ ~CPLJSONObject();
86
+ CPLJSONObject(const CPLJSONObject &other);
87
+ CPLJSONObject(CPLJSONObject &&other);
88
+ CPLJSONObject &operator=(const CPLJSONObject &other);
89
+ CPLJSONObject &operator=(CPLJSONObject &&other);
90
+
91
+ // This method is not thread-safe
92
+ CPLJSONObject Clone() const;
93
+
94
+ private:
95
+ explicit CPLJSONObject(const std::string &osName, JSONObjectH poJsonObject);
96
+ /*! @endcond */
97
+
98
+ public:
99
+ // setters
100
+ void Add(const std::string &osName, const std::string &osValue);
101
+ void Add(const std::string &osName, const char *pszValue);
102
+ void Add(const std::string &osName, double dfValue);
103
+ void Add(const std::string &osName, int nValue);
104
+ void Add(const std::string &osName, GInt64 nValue);
105
+ void Add(const std::string &osName, uint64_t nValue);
106
+ void Add(const std::string &osName, const CPLJSONArray &oValue);
107
+ void Add(const std::string &osName, const CPLJSONObject &oValue);
108
+ void AddNoSplitName(const std::string &osName, const CPLJSONObject &oValue);
109
+ void Add(const std::string &osName, bool bValue);
110
+ void AddNull(const std::string &osName);
111
+
112
+ void Set(const std::string &osName, const std::string &osValue);
113
+ void Set(const std::string &osName, const char *pszValue);
114
+ void Set(const std::string &osName, double dfValue);
115
+ void Set(const std::string &osName, int nValue);
116
+ void Set(const std::string &osName, GInt64 nValue);
117
+ void Set(const std::string &osName, uint64_t nValue);
118
+ void Set(const std::string &osName, bool bValue);
119
+ void SetNull(const std::string &osName);
120
+
121
+ /*! @cond Doxygen_Suppress */
122
+ JSONObjectH GetInternalHandle() const
123
+ {
124
+ return m_poJsonObject;
125
+ }
126
+
127
+ /*! @endcond */
128
+
129
+ // getters
130
+ std::string GetString(const std::string &osName,
131
+ const std::string &osDefault = "") const;
132
+ double GetDouble(const std::string &osName, double dfDefault = 0.0) const;
133
+ int GetInteger(const std::string &osName, int nDefault = 0) const;
134
+ GInt64 GetLong(const std::string &osName, GInt64 nDefault = 0) const;
135
+ bool GetBool(const std::string &osName, bool bDefault = false) const;
136
+ std::string ToString(const std::string &osDefault = "") const;
137
+ double ToDouble(double dfDefault = 0.0) const;
138
+ int ToInteger(int nDefault = 0) const;
139
+ GInt64 ToLong(GInt64 nDefault = 0) const;
140
+ bool ToBool(bool bDefault = false) const;
141
+ CPLJSONArray ToArray() const;
142
+ std::string Format(PrettyFormat eFormat) const;
143
+
144
+ //
145
+ void Delete(const std::string &osName);
146
+ void DeleteNoSplitName(const std::string &osName);
147
+ CPLJSONArray GetArray(const std::string &osName) const;
148
+ CPLJSONObject GetObj(const std::string &osName) const;
149
+ CPLJSONObject operator[](const std::string &osName) const;
150
+ Type GetType() const;
151
+
152
+ /*! @cond Doxygen_Suppress */
153
+ std::string GetName() const
154
+ {
155
+ return m_osKey;
156
+ }
157
+
158
+ /*! @endcond */
159
+
160
+ std::vector<CPLJSONObject> GetChildren() const;
161
+ bool IsValid() const;
162
+ void Deinit();
163
+
164
+ protected:
165
+ /*! @cond Doxygen_Suppress */
166
+ CPLJSONObject GetObjectByPath(const std::string &osPath,
167
+ std::string &osName) const;
168
+ /*! @endcond */
169
+
170
+ private:
171
+ JSONObjectH m_poJsonObject = nullptr;
172
+ std::string m_osKey{};
173
+ };
174
+
175
+ /**
176
+ * @brief The JSONArray class JSON array from JSONDocument
177
+ */
178
+ class CPL_DLL CPLJSONArray : public CPLJSONObject
179
+ {
180
+ friend class CPLJSONObject;
181
+ friend class CPLJSONDocument;
182
+
183
+ public:
184
+ /*! @cond Doxygen_Suppress */
185
+ CPLJSONArray();
186
+ explicit CPLJSONArray(const std::string &osName);
187
+ explicit CPLJSONArray(const CPLJSONObject &other);
188
+
189
+ private:
190
+ explicit CPLJSONArray(const std::string &osName, JSONObjectH poJsonObject);
191
+
192
+ class CPL_DLL ConstIterator
193
+ {
194
+ const CPLJSONArray &m_oSelf;
195
+ int m_nIdx;
196
+ mutable CPLJSONObject m_oObj{};
197
+
198
+ public:
199
+ ConstIterator(const CPLJSONArray &oSelf, bool bStart)
200
+ : m_oSelf(oSelf), m_nIdx(bStart ? 0 : oSelf.Size())
201
+ {
202
+ }
203
+
204
+ ~ConstIterator() = default;
205
+
206
+ CPLJSONObject &operator*() const
207
+ {
208
+ m_oObj = m_oSelf[m_nIdx];
209
+ return m_oObj;
210
+ }
211
+
212
+ ConstIterator &operator++()
213
+ {
214
+ m_nIdx++;
215
+ return *this;
216
+ }
217
+
218
+ bool operator==(const ConstIterator &it) const
219
+ {
220
+ return m_nIdx == it.m_nIdx;
221
+ }
222
+
223
+ bool operator!=(const ConstIterator &it) const
224
+ {
225
+ return m_nIdx != it.m_nIdx;
226
+ }
227
+ };
228
+
229
+ /*! @endcond */
230
+ public:
231
+ int Size() const;
232
+ void AddNull();
233
+ void Add(const CPLJSONObject &oValue);
234
+ void Add(const std::string &osValue);
235
+ void Add(const char *pszValue);
236
+ void Add(double dfValue);
237
+ void Add(int nValue);
238
+ void Add(GInt64 nValue);
239
+ void Add(uint64_t nValue);
240
+ void Add(bool bValue);
241
+ CPLJSONObject operator[](int nIndex);
242
+ const CPLJSONObject operator[](int nIndex) const;
243
+
244
+ /** Iterator to first element */
245
+ ConstIterator begin() const
246
+ {
247
+ return ConstIterator(*this, true);
248
+ }
249
+
250
+ /** Iterator to after last element */
251
+ ConstIterator end() const
252
+ {
253
+ return ConstIterator(*this, false);
254
+ }
255
+ };
256
+
257
+ /**
258
+ * @brief The CPLJSONDocument class Wrapper class around json-c library
259
+ */
260
+ class CPL_DLL CPLJSONDocument
261
+ {
262
+ public:
263
+ /*! @cond Doxygen_Suppress */
264
+ CPLJSONDocument();
265
+ ~CPLJSONDocument();
266
+ CPLJSONDocument(const CPLJSONDocument &other);
267
+ CPLJSONDocument &operator=(const CPLJSONDocument &other);
268
+ CPLJSONDocument(CPLJSONDocument &&other);
269
+ CPLJSONDocument &operator=(CPLJSONDocument &&other);
270
+ /*! @endcond */
271
+
272
+ bool Save(const std::string &osPath) const;
273
+ std::string SaveAsString() const;
274
+
275
+ CPLJSONObject GetRoot();
276
+ const CPLJSONObject GetRoot() const;
277
+ void SetRoot(const CPLJSONObject &oRoot);
278
+ bool Load(const std::string &osPath);
279
+ bool LoadMemory(const std::string &osStr);
280
+ bool LoadMemory(const GByte *pabyData, int nLength = -1);
281
+ bool LoadChunks(const std::string &osPath, size_t nChunkSize = 16384,
282
+ GDALProgressFunc pfnProgress = nullptr,
283
+ void *pProgressArg = nullptr);
284
+ bool LoadUrl(const std::string &osUrl, const char *const *papszOptions,
285
+ GDALProgressFunc pfnProgress = nullptr,
286
+ void *pProgressArg = nullptr);
287
+
288
+ private:
289
+ mutable JSONObjectH m_poRootJsonObject;
290
+ };
291
+
292
+ CPL_C_END
293
+
294
+ #if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS)
295
+ extern "C++"
296
+ {
297
+ CPLStringList CPLParseKeyValueJson(const char *pszJson);
298
+ }
299
+ #endif
300
+
301
+ #endif // CPL_JSON_H_INCLUDED
@@ -0,0 +1,59 @@
1
+ /**********************************************************************
2
+ * $Id$
3
+ *
4
+ * Name: cpl_list.h
5
+ * Project: CPL - Common Portability Library
6
+ * Purpose: List functions.
7
+ * Author: Andrey Kiselev, dron@remotesensing.org
8
+ *
9
+ **********************************************************************
10
+ * Copyright (c) 2003, Andrey Kiselev <dron@remotesensing.org>
11
+ *
12
+ * SPDX-License-Identifier: MIT
13
+ ****************************************************************************/
14
+
15
+ #ifndef CPL_LIST_H_INCLUDED
16
+ #define CPL_LIST_H_INCLUDED
17
+
18
+ #include "cpl_port.h"
19
+
20
+ /**
21
+ * \file cpl_list.h
22
+ *
23
+ * Simplest list implementation. List contains only pointers to stored
24
+ * objects, not objects itself. All operations regarding allocation and
25
+ * freeing memory for objects should be performed by the caller.
26
+ *
27
+ */
28
+
29
+ CPL_C_START
30
+
31
+ /** List element structure. */
32
+ typedef struct _CPLList CPLList;
33
+
34
+ /** List element structure. */
35
+ struct _CPLList
36
+ {
37
+ /*! Pointer to the data object. Should be allocated and freed by the
38
+ * caller.
39
+ * */
40
+ void *pData;
41
+ /*! Pointer to the next element in list. NULL, if current element is the
42
+ * last one.
43
+ */
44
+ struct _CPLList *psNext;
45
+ };
46
+
47
+ CPLList CPL_DLL *CPLListAppend(CPLList *psList, void *pData);
48
+ CPLList CPL_DLL *CPLListInsert(CPLList *psList, void *pData, int nPosition);
49
+ CPLList CPL_DLL *CPLListGetLast(CPLList *psList);
50
+ CPLList CPL_DLL *CPLListGet(CPLList *const psList, int nPosition);
51
+ int CPL_DLL CPLListCount(const CPLList *psList);
52
+ CPLList CPL_DLL *CPLListRemove(CPLList *psList, int nPosition);
53
+ void CPL_DLL CPLListDestroy(CPLList *psList);
54
+ CPLList CPL_DLL *CPLListGetNext(const CPLList *psElement);
55
+ void CPL_DLL *CPLListGetData(const CPLList *psElement);
56
+
57
+ CPL_C_END
58
+
59
+ #endif /* CPL_LIST_H_INCLUDED */