@cpp.js/package-gdal 1.0.0-beta.21 → 1.0.0-beta.23

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 (225) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/cppjs-package-gdal.podspec +1 -1
  3. package/cppjs.build.js +1 -0
  4. package/dist/prebuilt/Android-x86_64/include/cpl_atomic_ops.h +90 -0
  5. package/dist/prebuilt/Android-x86_64/include/cpl_auto_close.h +73 -0
  6. package/dist/prebuilt/Android-x86_64/include/cpl_compressor.h +112 -0
  7. package/dist/prebuilt/Android-x86_64/include/cpl_config.h +215 -0
  8. package/dist/prebuilt/Android-x86_64/include/cpl_config_extras.h +34 -0
  9. package/dist/prebuilt/Android-x86_64/include/cpl_conv.h +417 -0
  10. package/dist/prebuilt/Android-x86_64/include/cpl_csv.h +71 -0
  11. package/dist/prebuilt/Android-x86_64/include/cpl_error.h +344 -0
  12. package/dist/prebuilt/Android-x86_64/include/cpl_hash_set.h +83 -0
  13. package/dist/prebuilt/Android-x86_64/include/cpl_http.h +319 -0
  14. package/dist/prebuilt/Android-x86_64/include/cpl_json.h +301 -0
  15. package/dist/prebuilt/Android-x86_64/include/cpl_list.h +59 -0
  16. package/dist/prebuilt/Android-x86_64/include/cpl_minixml.h +211 -0
  17. package/dist/prebuilt/Android-x86_64/include/cpl_multiproc.h +241 -0
  18. package/dist/prebuilt/Android-x86_64/include/cpl_port.h +1182 -0
  19. package/dist/prebuilt/Android-x86_64/include/cpl_progress.h +49 -0
  20. package/dist/prebuilt/Android-x86_64/include/cpl_quad_tree.h +105 -0
  21. package/dist/prebuilt/Android-x86_64/include/cpl_spawn.h +60 -0
  22. package/dist/prebuilt/Android-x86_64/include/cpl_string.h +863 -0
  23. package/dist/prebuilt/Android-x86_64/include/cpl_time.h +29 -0
  24. package/dist/prebuilt/Android-x86_64/include/cpl_virtualmem.h +365 -0
  25. package/dist/prebuilt/Android-x86_64/include/cpl_vsi.h +830 -0
  26. package/dist/prebuilt/Android-x86_64/include/cpl_vsi_error.h +55 -0
  27. package/dist/prebuilt/Android-x86_64/include/cpl_vsi_virtual.h +580 -0
  28. package/dist/prebuilt/Android-x86_64/include/cplkeywordparser.h +61 -0
  29. package/dist/prebuilt/Android-x86_64/include/gdal.h +2667 -0
  30. package/dist/prebuilt/Android-x86_64/include/gdal_alg.h +717 -0
  31. package/dist/prebuilt/Android-x86_64/include/gdal_alg_priv.h +386 -0
  32. package/dist/prebuilt/Android-x86_64/include/gdal_csv.h +25 -0
  33. package/dist/prebuilt/Android-x86_64/include/gdal_frmts.h +236 -0
  34. package/dist/prebuilt/Android-x86_64/include/gdal_mdreader.h +240 -0
  35. package/dist/prebuilt/Android-x86_64/include/gdal_pam.h +461 -0
  36. package/dist/prebuilt/Android-x86_64/include/gdal_priv.h +4599 -0
  37. package/dist/prebuilt/Android-x86_64/include/gdal_proxy.h +470 -0
  38. package/dist/prebuilt/Android-x86_64/include/gdal_rat.h +390 -0
  39. package/dist/prebuilt/Android-x86_64/include/gdal_simplesurf.h +579 -0
  40. package/dist/prebuilt/Android-x86_64/include/gdal_utils.h +313 -0
  41. package/dist/prebuilt/Android-x86_64/include/gdal_version.h +33 -0
  42. package/dist/prebuilt/Android-x86_64/include/gdal_vrt.h +89 -0
  43. package/dist/prebuilt/Android-x86_64/include/gdalcachedpixelaccessor.h +439 -0
  44. package/dist/prebuilt/Android-x86_64/include/gdalgeorefpamdataset.h +73 -0
  45. package/dist/prebuilt/Android-x86_64/include/gdalgrid.h +102 -0
  46. package/dist/prebuilt/Android-x86_64/include/gdalgrid_priv.h +67 -0
  47. package/dist/prebuilt/Android-x86_64/include/gdaljp2abstractdataset.h +61 -0
  48. package/dist/prebuilt/Android-x86_64/include/gdaljp2metadata.h +237 -0
  49. package/dist/prebuilt/Android-x86_64/include/gdalpansharpen.h +258 -0
  50. package/dist/prebuilt/Android-x86_64/include/gdalsubdatasetinfo.h +104 -0
  51. package/dist/prebuilt/Android-x86_64/include/gdalwarper.h +622 -0
  52. package/dist/prebuilt/Android-x86_64/include/gnm.h +750 -0
  53. package/dist/prebuilt/Android-x86_64/include/gnm_api.h +101 -0
  54. package/dist/prebuilt/Android-x86_64/include/gnmgraph.h +258 -0
  55. package/dist/prebuilt/Android-x86_64/include/memdataset.h +176 -0
  56. package/dist/prebuilt/Android-x86_64/include/ogr_api.h +1024 -0
  57. package/dist/prebuilt/Android-x86_64/include/ogr_core.h +1321 -0
  58. package/dist/prebuilt/Android-x86_64/include/ogr_feature.h +1981 -0
  59. package/dist/prebuilt/Android-x86_64/include/ogr_featurestyle.h +858 -0
  60. package/dist/prebuilt/Android-x86_64/include/ogr_geocoding.h +46 -0
  61. package/dist/prebuilt/Android-x86_64/include/ogr_geomcoordinateprecision.h +79 -0
  62. package/dist/prebuilt/Android-x86_64/include/ogr_geometry.h +4346 -0
  63. package/dist/prebuilt/Android-x86_64/include/ogr_p.h +324 -0
  64. package/dist/prebuilt/Android-x86_64/include/ogr_recordbatch.h +125 -0
  65. package/dist/prebuilt/Android-x86_64/include/ogr_spatialref.h +1007 -0
  66. package/dist/prebuilt/Android-x86_64/include/ogr_srs_api.h +1088 -0
  67. package/dist/prebuilt/Android-x86_64/include/ogr_swq.h +529 -0
  68. package/dist/prebuilt/Android-x86_64/include/ogrsf_frmts.h +746 -0
  69. package/dist/prebuilt/Android-x86_64/include/rawdataset.h +255 -0
  70. package/dist/prebuilt/Android-x86_64/include/vrtdataset.h +2426 -0
  71. package/dist/prebuilt/Android-x86_64/lib/cmake/gdal/GDAL-targets-release.cmake +19 -0
  72. package/dist/prebuilt/Android-x86_64/lib/cmake/gdal/GDAL-targets.cmake +106 -0
  73. package/dist/prebuilt/Android-x86_64/lib/cmake/gdal/GDALConfig.cmake +21 -0
  74. package/dist/prebuilt/Android-x86_64/lib/cmake/gdal/GDALConfigVersion.cmake +85 -0
  75. package/dist/prebuilt/Android-x86_64/lib/gdalplugins/drivers.ini +290 -0
  76. package/dist/prebuilt/Android-x86_64/lib/libgdal.so +0 -0
  77. package/dist/prebuilt/Android-x86_64/lib/pkgconfig/gdal.pc +17 -0
  78. package/dist/prebuilt/Android-x86_64/share/gdal/GDALLogoBW.svg +138 -0
  79. package/dist/prebuilt/Android-x86_64/share/gdal/GDALLogoColor.svg +126 -0
  80. package/dist/prebuilt/Android-x86_64/share/gdal/GDALLogoGS.svg +126 -0
  81. package/dist/prebuilt/Android-x86_64/share/gdal/LICENSE.TXT +467 -0
  82. package/dist/prebuilt/Android-x86_64/share/gdal/MM_m_idofic.csv +321 -0
  83. package/dist/prebuilt/Android-x86_64/share/gdal/cubewerx_extra.wkt +48 -0
  84. package/dist/prebuilt/Android-x86_64/share/gdal/default.rsc +0 -0
  85. package/dist/prebuilt/Android-x86_64/share/gdal/ecw_cs.wkt +1453 -0
  86. package/dist/prebuilt/Android-x86_64/share/gdal/epsg.wkt +1 -0
  87. package/dist/prebuilt/Android-x86_64/share/gdal/esri_StatePlane_extra.wkt +631 -0
  88. package/dist/prebuilt/Android-x86_64/share/gdal/gdalicon.png +0 -0
  89. package/dist/prebuilt/Android-x86_64/share/gdal/gdalinfo_output.schema.json +346 -0
  90. package/dist/prebuilt/Android-x86_64/share/gdal/gdalmdiminfo_output.schema.json +321 -0
  91. package/dist/prebuilt/Android-x86_64/share/gdal/gdaltileindex.xsd +253 -0
  92. package/dist/prebuilt/Android-x86_64/share/gdal/gdalvrt.xsd +881 -0
  93. package/dist/prebuilt/Android-x86_64/share/gdal/gfs.xsd +246 -0
  94. package/dist/prebuilt/Android-x86_64/share/gdal/gml_registry.xml +117 -0
  95. package/dist/prebuilt/Android-x86_64/share/gdal/gml_registry.xsd +66 -0
  96. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_center.csv +251 -0
  97. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_process.csv +102 -0
  98. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_subcenter.csv +63 -0
  99. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_0.csv +261 -0
  100. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_1.csv +261 -0
  101. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_13.csv +261 -0
  102. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_14.csv +261 -0
  103. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_15.csv +261 -0
  104. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_16.csv +261 -0
  105. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_17.csv +11 -0
  106. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_18.csv +261 -0
  107. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_19.csv +261 -0
  108. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_190.csv +261 -0
  109. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_191.csv +261 -0
  110. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_2.csv +261 -0
  111. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_20.csv +261 -0
  112. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_21.csv +261 -0
  113. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_3.csv +261 -0
  114. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_4.csv +261 -0
  115. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_5.csv +261 -0
  116. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_6.csv +261 -0
  117. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_7.csv +261 -0
  118. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_10_0.csv +261 -0
  119. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_10_1.csv +261 -0
  120. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_10_191.csv +261 -0
  121. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_10_2.csv +261 -0
  122. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_10_3.csv +261 -0
  123. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_10_4.csv +261 -0
  124. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_1_0.csv +261 -0
  125. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_1_1.csv +261 -0
  126. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_1_2.csv +261 -0
  127. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_20_0.csv +261 -0
  128. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_20_1.csv +261 -0
  129. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_20_2.csv +261 -0
  130. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_2_0.csv +261 -0
  131. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_2_3.csv +261 -0
  132. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_2_4.csv +261 -0
  133. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_2_5.csv +261 -0
  134. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_2_6.csv +261 -0
  135. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_3_0.csv +261 -0
  136. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_3_1.csv +261 -0
  137. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_3_2.csv +28 -0
  138. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_3_3.csv +8 -0
  139. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_3_4.csv +14 -0
  140. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_3_5.csv +11 -0
  141. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_3_6.csv +11 -0
  142. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_4_0.csv +261 -0
  143. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_4_1.csv +261 -0
  144. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_4_10.csv +261 -0
  145. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_4_2.csv +261 -0
  146. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_4_3.csv +261 -0
  147. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_4_4.csv +261 -0
  148. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_4_5.csv +261 -0
  149. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_4_6.csv +261 -0
  150. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_4_7.csv +261 -0
  151. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_4_8.csv +261 -0
  152. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_4_9.csv +261 -0
  153. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_local_Canada.csv +5 -0
  154. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_local_HPC.csv +2 -0
  155. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_local_MRMS.csv +175 -0
  156. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_local_NCEP.csv +401 -0
  157. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_local_NDFD.csv +38 -0
  158. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_local_index.csv +7 -0
  159. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_5.csv +261 -0
  160. package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_versions.csv +3 -0
  161. package/dist/prebuilt/Android-x86_64/share/gdal/gt_datum.csv +229 -0
  162. package/dist/prebuilt/Android-x86_64/share/gdal/gt_ellips.csv +24 -0
  163. package/dist/prebuilt/Android-x86_64/share/gdal/header.dxf +1124 -0
  164. package/dist/prebuilt/Android-x86_64/share/gdal/inspire_cp_BasicPropertyUnit.gfs +57 -0
  165. package/dist/prebuilt/Android-x86_64/share/gdal/inspire_cp_CadastralBoundary.gfs +60 -0
  166. package/dist/prebuilt/Android-x86_64/share/gdal/inspire_cp_CadastralParcel.gfs +81 -0
  167. package/dist/prebuilt/Android-x86_64/share/gdal/inspire_cp_CadastralZoning.gfs +161 -0
  168. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_AdmArea.gfs +59 -0
  169. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_AdmBdry.gfs +49 -0
  170. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_AdmPt.gfs +59 -0
  171. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_BldA.gfs +54 -0
  172. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_BldL.gfs +54 -0
  173. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_Cntr.gfs +54 -0
  174. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_CommBdry.gfs +49 -0
  175. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_CommPt.gfs +59 -0
  176. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_Cstline.gfs +54 -0
  177. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_ElevPt.gfs +54 -0
  178. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_GCP.gfs +94 -0
  179. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_LeveeEdge.gfs +49 -0
  180. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_RailCL.gfs +54 -0
  181. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_RdASL.gfs +44 -0
  182. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_RdArea.gfs +54 -0
  183. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_RdCompt.gfs +59 -0
  184. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_RdEdg.gfs +59 -0
  185. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_RdMgtBdry.gfs +49 -0
  186. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_RdSgmtA.gfs +59 -0
  187. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_RvrMgtBdry.gfs +49 -0
  188. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_SBAPt.gfs +49 -0
  189. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_SBArea.gfs +54 -0
  190. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_SBBdry.gfs +44 -0
  191. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_WA.gfs +54 -0
  192. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_WL.gfs +54 -0
  193. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_WStrA.gfs +54 -0
  194. package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_WStrL.gfs +54 -0
  195. package/dist/prebuilt/Android-x86_64/share/gdal/nitf_spec.xml +3290 -0
  196. package/dist/prebuilt/Android-x86_64/share/gdal/nitf_spec.xsd +173 -0
  197. package/dist/prebuilt/Android-x86_64/share/gdal/ogrinfo_output.schema.json +528 -0
  198. package/dist/prebuilt/Android-x86_64/share/gdal/ogrvrt.xsd +530 -0
  199. package/dist/prebuilt/Android-x86_64/share/gdal/osmconf.ini +134 -0
  200. package/dist/prebuilt/Android-x86_64/share/gdal/ozi_datum.csv +131 -0
  201. package/dist/prebuilt/Android-x86_64/share/gdal/ozi_ellips.csv +35 -0
  202. package/dist/prebuilt/Android-x86_64/share/gdal/pci_datum.txt +530 -0
  203. package/dist/prebuilt/Android-x86_64/share/gdal/pci_ellips.txt +129 -0
  204. package/dist/prebuilt/Android-x86_64/share/gdal/pdfcomposition.xsd +705 -0
  205. package/dist/prebuilt/Android-x86_64/share/gdal/ruian_vf_ob_v1.gfs +1455 -0
  206. package/dist/prebuilt/Android-x86_64/share/gdal/ruian_vf_st_uvoh_v1.gfs +86 -0
  207. package/dist/prebuilt/Android-x86_64/share/gdal/ruian_vf_st_v1.gfs +1489 -0
  208. package/dist/prebuilt/Android-x86_64/share/gdal/ruian_vf_v1.gfs +2126 -0
  209. package/dist/prebuilt/Android-x86_64/share/gdal/s57agencies.csv +249 -0
  210. package/dist/prebuilt/Android-x86_64/share/gdal/s57attributes.csv +484 -0
  211. package/dist/prebuilt/Android-x86_64/share/gdal/s57expectedinput.csv +1008 -0
  212. package/dist/prebuilt/Android-x86_64/share/gdal/s57objectclasses.csv +287 -0
  213. package/dist/prebuilt/Android-x86_64/share/gdal/seed_2d.dgn +0 -0
  214. package/dist/prebuilt/Android-x86_64/share/gdal/seed_3d.dgn +0 -0
  215. package/dist/prebuilt/Android-x86_64/share/gdal/stateplane.csv +259 -0
  216. package/dist/prebuilt/Android-x86_64/share/gdal/tms_LINZAntarticaMapTileGrid.json +190 -0
  217. package/dist/prebuilt/Android-x86_64/share/gdal/tms_MapML_APSTILE.json +268 -0
  218. package/dist/prebuilt/Android-x86_64/share/gdal/tms_MapML_CBMTILE.json +346 -0
  219. package/dist/prebuilt/Android-x86_64/share/gdal/tms_NZTM2000.json +243 -0
  220. package/dist/prebuilt/Android-x86_64/share/gdal/trailer.dxf +434 -0
  221. package/dist/prebuilt/Android-x86_64/share/gdal/vdv452.xml +351 -0
  222. package/dist/prebuilt/Android-x86_64/share/gdal/vdv452.xsd +47 -0
  223. package/gdal.xcframework/ios-arm64_arm64e/libgdal.a +0 -0
  224. package/gdal.xcframework/ios-arm64_arm64e_x86_64-simulator/libgdal.a +0 -0
  225. package/package.json +12 -12
@@ -0,0 +1,211 @@
1
+ /**********************************************************************
2
+ * $Id$
3
+ *
4
+ * Project: CPL - Common Portability Library
5
+ * Purpose: Declarations for MiniXML Handler.
6
+ * Author: Frank Warmerdam, warmerdam@pobox.com
7
+ *
8
+ **********************************************************************
9
+ * Copyright (c) 2001, Frank Warmerdam
10
+ *
11
+ * SPDX-License-Identifier: MIT
12
+ ****************************************************************************/
13
+
14
+ #ifndef CPL_MINIXML_H_INCLUDED
15
+ #define CPL_MINIXML_H_INCLUDED
16
+
17
+ #include "cpl_port.h"
18
+
19
+ /**
20
+ * \file cpl_minixml.h
21
+ *
22
+ * Definitions for CPL mini XML Parser/Serializer.
23
+ */
24
+
25
+ CPL_C_START
26
+
27
+ /** XML node type */
28
+ typedef enum
29
+ {
30
+ /*! Node is an element */ CXT_Element = 0,
31
+ /*! Node is a raw text value */ CXT_Text = 1,
32
+ /*! Node is attribute */ CXT_Attribute = 2,
33
+ /*! Node is an XML comment. */ CXT_Comment = 3,
34
+ /*! Node is a special literal */ CXT_Literal = 4
35
+ } CPLXMLNodeType;
36
+
37
+ /*! @cond Doxygen_Suppress */
38
+ typedef struct CPLXMLNode CPLXMLNode;
39
+
40
+ /*! @endcond */
41
+
42
+ /**
43
+ * Document node structure.
44
+ *
45
+ * This C structure is used to hold a single text fragment representing a
46
+ * component of the document when parsed. It should be allocated with the
47
+ * appropriate CPL function, and freed with CPLDestroyXMLNode(). The structure
48
+ * contents should not normally be altered by application code, but may be
49
+ * freely examined by application code.
50
+ *
51
+ * Using the psChild and psNext pointers, a hierarchical tree structure
52
+ * for a document can be represented as a tree of CPLXMLNode structures.
53
+ */
54
+ struct CPLXMLNode
55
+ {
56
+ /**
57
+ * \brief Node type
58
+ *
59
+ * One of CXT_Element, CXT_Text, CXT_Attribute, CXT_Comment,
60
+ * or CXT_Literal.
61
+ */
62
+ CPLXMLNodeType eType;
63
+
64
+ /**
65
+ * \brief Node value
66
+ *
67
+ * For CXT_Element this is the name of the element, without the angle
68
+ * brackets. Note there is a single CXT_Element even when the document
69
+ * contains a start and end element tag. The node represents the pair.
70
+ * All text or other elements between the start and end tag will appear
71
+ * as children nodes of this CXT_Element node.
72
+ *
73
+ * For CXT_Attribute the pszValue is the attribute name. The value of
74
+ * the attribute will be a CXT_Text child.
75
+ *
76
+ * For CXT_Text this is the text itself (value of an attribute, or a
77
+ * text fragment between an element start and end tags.
78
+ *
79
+ * For CXT_Literal it is all the literal text. Currently this is just
80
+ * used for !DOCTYPE lines, and the value would be the entire line.
81
+ *
82
+ * For CXT_Comment the value is all the literal text within the comment,
83
+ * but not including the comment start/end indicators ("<--" and "-->").
84
+ */
85
+ char *pszValue;
86
+
87
+ /**
88
+ * \brief Next sibling.
89
+ *
90
+ * Pointer to next sibling, that is the next node appearing after this
91
+ * one that has the same parent as this node. NULL if this node is the
92
+ * last child of the parent element.
93
+ */
94
+ struct CPLXMLNode *psNext;
95
+
96
+ /**
97
+ * \brief Child node.
98
+ *
99
+ * Pointer to first child node, if any. Only CXT_Element and CXT_Attribute
100
+ * nodes should have children. For CXT_Attribute it should be a single
101
+ * CXT_Text value node, while CXT_Element can have any kind of child.
102
+ * The full list of children for a node are identified by walking the
103
+ * psNext's starting with the psChild node.
104
+ */
105
+
106
+ struct CPLXMLNode *psChild;
107
+ };
108
+
109
+ CPLXMLNode CPL_DLL *CPLParseXMLString(const char *);
110
+ void CPL_DLL CPLDestroyXMLNode(CPLXMLNode *);
111
+ CPLXMLNode CPL_DLL *CPLGetXMLNode(CPLXMLNode *poRoot, const char *pszPath);
112
+ #if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS)
113
+ /*! @cond Doxygen_Suppress */
114
+ extern "C++"
115
+ {
116
+ inline const CPLXMLNode *CPLGetXMLNode(const CPLXMLNode *poRoot,
117
+ const char *pszPath)
118
+ {
119
+ return const_cast<const CPLXMLNode *>(
120
+ CPLGetXMLNode(const_cast<CPLXMLNode *>(poRoot), pszPath));
121
+ }
122
+ }
123
+ /*! @endcond */
124
+ #endif
125
+ CPLXMLNode CPL_DLL *CPLSearchXMLNode(CPLXMLNode *poRoot, const char *pszTarget);
126
+ #if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS)
127
+ /*! @cond Doxygen_Suppress */
128
+ extern "C++"
129
+ {
130
+ inline const CPLXMLNode *CPLSearchXMLNode(const CPLXMLNode *poRoot,
131
+ const char *pszTarget)
132
+ {
133
+ return const_cast<const CPLXMLNode *>(
134
+ CPLSearchXMLNode(const_cast<CPLXMLNode *>(poRoot), pszTarget));
135
+ }
136
+ }
137
+ /*! @endcond */
138
+ #endif
139
+ const char CPL_DLL *CPLGetXMLValue(const CPLXMLNode *poRoot,
140
+ const char *pszPath, const char *pszDefault);
141
+ CPLXMLNode CPL_DLL *CPLCreateXMLNode(CPLXMLNode *poParent, CPLXMLNodeType eType,
142
+ const char *pszText);
143
+ char CPL_DLL *CPLSerializeXMLTree(const CPLXMLNode *psNode);
144
+ void CPL_DLL CPLAddXMLChild(CPLXMLNode *psParent, CPLXMLNode *psChild);
145
+ int CPL_DLL CPLRemoveXMLChild(CPLXMLNode *psParent, CPLXMLNode *psChild);
146
+ void CPL_DLL CPLAddXMLSibling(CPLXMLNode *psOlderSibling,
147
+ CPLXMLNode *psNewSibling);
148
+ CPLXMLNode CPL_DLL *CPLCreateXMLElementAndValue(CPLXMLNode *psParent,
149
+ const char *pszName,
150
+ const char *pszValue);
151
+ void CPL_DLL CPLAddXMLAttributeAndValue(CPLXMLNode *psParent,
152
+ const char *pszName,
153
+ const char *pszValue);
154
+ CPLXMLNode CPL_DLL *CPLCloneXMLTree(const CPLXMLNode *psTree);
155
+ int CPL_DLL CPLSetXMLValue(CPLXMLNode *psRoot, const char *pszPath,
156
+ const char *pszValue);
157
+ void CPL_DLL CPLStripXMLNamespace(CPLXMLNode *psRoot, const char *pszNameSpace,
158
+ int bRecurse);
159
+ void CPL_DLL CPLCleanXMLElementName(char *);
160
+
161
+ CPLXMLNode CPL_DLL *CPLParseXMLFile(const char *pszFilename);
162
+ int CPL_DLL CPLSerializeXMLTreeToFile(const CPLXMLNode *psTree,
163
+ const char *pszFilename);
164
+
165
+ size_t CPL_DLL CPLXMLNodeGetRAMUsageEstimate(const CPLXMLNode *psNode);
166
+
167
+ CPL_C_END
168
+
169
+ #if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS)
170
+
171
+ extern "C++"
172
+ {
173
+ #ifndef DOXYGEN_SKIP
174
+ #include <memory>
175
+ #endif
176
+
177
+ /*! @cond Doxygen_Suppress */
178
+ struct CPL_DLL CPLXMLTreeCloserDeleter
179
+ {
180
+ void operator()(CPLXMLNode *psNode) const
181
+ {
182
+ CPLDestroyXMLNode(psNode);
183
+ }
184
+ };
185
+
186
+ /*! @endcond */
187
+
188
+ /** Manage a tree of XML nodes so that all nodes are freed when the instance
189
+ * goes out of scope. Only the top level node should be in a
190
+ * CPLXMLTreeCloser.
191
+ */
192
+ class CPL_DLL CPLXMLTreeCloser
193
+ : public std::unique_ptr<CPLXMLNode, CPLXMLTreeCloserDeleter>
194
+ {
195
+ public:
196
+ /** Constructor */
197
+ explicit CPLXMLTreeCloser(CPLXMLNode *data)
198
+ : std::unique_ptr<CPLXMLNode, CPLXMLTreeCloserDeleter>(data)
199
+ {
200
+ }
201
+
202
+ /** Returns a pointer to the document (root) element
203
+ * @return the node pointer */
204
+ CPLXMLNode *getDocumentElement();
205
+ };
206
+
207
+ } // extern "C++"
208
+
209
+ #endif /* __cplusplus */
210
+
211
+ #endif /* CPL_MINIXML_H_INCLUDED */
@@ -0,0 +1,241 @@
1
+ /**********************************************************************
2
+ * $Id$
3
+ *
4
+ * Project: CPL - Common Portability Library
5
+ * Purpose: CPL Multi-Threading, and process handling portability functions.
6
+ * Author: Frank Warmerdam, warmerdam@pobox.com
7
+ *
8
+ **********************************************************************
9
+ * Copyright (c) 2002, Frank Warmerdam
10
+ * Copyright (c) 2008-2013, Even Rouault <even dot rouault at spatialys.com>
11
+ *
12
+ * SPDX-License-Identifier: MIT
13
+ ****************************************************************************/
14
+
15
+ #ifndef CPL_MULTIPROC_H_INCLUDED_
16
+ #define CPL_MULTIPROC_H_INCLUDED_
17
+
18
+ #include "cpl_port.h"
19
+
20
+ /*
21
+ ** There are three primary implementations of the multi-process support
22
+ ** controlled by one of CPL_MULTIPROC_WIN32, CPL_MULTIPROC_PTHREAD or
23
+ ** CPL_MULTIPROC_STUB being defined. If none are defined, the stub
24
+ ** implementation will be used.
25
+ */
26
+
27
+ #if defined(_WIN32) && !defined(CPL_MULTIPROC_STUB)
28
+ #define CPL_MULTIPROC_WIN32
29
+ /* MinGW can have pthread support, so disable it to avoid issues */
30
+ /* in cpl_multiproc.cpp */
31
+ #undef CPL_MULTIPROC_PTHREAD
32
+ #endif
33
+
34
+ #if !defined(CPL_MULTIPROC_WIN32) && !defined(CPL_MULTIPROC_PTHREAD) && \
35
+ !defined(CPL_MULTIPROC_STUB) && !defined(CPL_MULTIPROC_NONE)
36
+ #define CPL_MULTIPROC_STUB
37
+ #endif
38
+
39
+ CPL_C_START
40
+
41
+ typedef void (*CPLThreadFunc)(void *);
42
+
43
+ void CPL_DLL *CPLLockFile(const char *pszPath, double dfWaitInSeconds);
44
+ void CPL_DLL CPLUnlockFile(void *hLock);
45
+
46
+ typedef struct _CPLMutex CPLMutex;
47
+ typedef struct _CPLCond CPLCond;
48
+ typedef struct _CPLJoinableThread CPLJoinableThread;
49
+
50
+ /* Options for CPLCreateMutexEx() and CPLCreateOrAcquireMutexEx() */
51
+ #define CPL_MUTEX_RECURSIVE 0
52
+ #define CPL_MUTEX_ADAPTIVE 1
53
+ #define CPL_MUTEX_REGULAR 2
54
+
55
+ CPLMutex CPL_DLL *CPLCreateMutex(void); /* returned acquired */
56
+ CPLMutex CPL_DLL *CPLCreateMutexEx(int nOptions); /* returned acquired */
57
+ int CPL_DLL CPLCreateOrAcquireMutex(CPLMutex **, double dfWaitInSeconds);
58
+ int CPL_DLL CPLCreateOrAcquireMutexEx(CPLMutex **, double dfWaitInSeconds,
59
+ int nOptions);
60
+ int CPL_DLL CPLAcquireMutex(CPLMutex *hMutex, double dfWaitInSeconds);
61
+ void CPL_DLL CPLReleaseMutex(CPLMutex *hMutex);
62
+ void CPL_DLL CPLDestroyMutex(CPLMutex *hMutex);
63
+ void CPL_DLL CPLCleanupMasterMutex(void);
64
+
65
+ CPLCond CPL_DLL *CPLCreateCond(void);
66
+ void CPL_DLL CPLCondWait(CPLCond *hCond, CPLMutex *hMutex);
67
+
68
+ typedef enum
69
+ {
70
+ COND_TIMED_WAIT_COND,
71
+ COND_TIMED_WAIT_TIME_OUT,
72
+ COND_TIMED_WAIT_OTHER
73
+ } CPLCondTimedWaitReason;
74
+
75
+ CPLCondTimedWaitReason CPL_DLL CPLCondTimedWait(CPLCond *hCond,
76
+ CPLMutex *hMutex,
77
+ double dfWaitInSeconds);
78
+ void CPL_DLL CPLCondSignal(CPLCond *hCond);
79
+ void CPL_DLL CPLCondBroadcast(CPLCond *hCond);
80
+ void CPL_DLL CPLDestroyCond(CPLCond *hCond);
81
+
82
+ /** Contrary to what its name suggests, CPLGetPID() actually returns the thread
83
+ * id */
84
+ GIntBig CPL_DLL CPLGetPID(void);
85
+ int CPL_DLL CPLGetCurrentProcessID(void);
86
+ int CPL_DLL CPLCreateThread(CPLThreadFunc pfnMain, void *pArg);
87
+ CPLJoinableThread CPL_DLL *CPLCreateJoinableThread(CPLThreadFunc pfnMain,
88
+ void *pArg);
89
+ void CPL_DLL CPLJoinThread(CPLJoinableThread *hJoinableThread);
90
+ void CPL_DLL CPLSleep(double dfWaitInSeconds);
91
+
92
+ const char CPL_DLL *CPLGetThreadingModel(void);
93
+
94
+ int CPL_DLL CPLGetNumCPUs(void);
95
+
96
+ typedef struct _CPLLock CPLLock;
97
+
98
+ /* Currently LOCK_ADAPTIVE_MUTEX is Linux-only and LOCK_SPIN only available */
99
+ /* on systems with pthread_spinlock API (so not MacOsX). If a requested type */
100
+ /* isn't available, it fallbacks to LOCK_RECURSIVE_MUTEX */
101
+ typedef enum
102
+ {
103
+ LOCK_RECURSIVE_MUTEX,
104
+ LOCK_ADAPTIVE_MUTEX,
105
+ LOCK_SPIN
106
+ } CPLLockType;
107
+
108
+ CPLLock CPL_DLL *CPLCreateLock(CPLLockType eType); /* returned NON acquired */
109
+ int CPL_DLL CPLCreateOrAcquireLock(CPLLock **, CPLLockType eType);
110
+ int CPL_DLL CPLAcquireLock(CPLLock *);
111
+ void CPL_DLL CPLReleaseLock(CPLLock *);
112
+ void CPL_DLL CPLDestroyLock(CPLLock *);
113
+ void CPL_DLL CPLLockSetDebugPerf(
114
+ CPLLock *,
115
+ int bEnableIn); /* only available on x86/x86_64 with GCC for now */
116
+
117
+ CPL_C_END
118
+
119
+ #if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS)
120
+
121
+ /* Instantiates the mutex if not already done. The parameter x should be a
122
+ * (void**). */
123
+ #define CPLMutexHolderD(x) CPLMutexHolder oHolder(x, 1000.0, __FILE__, __LINE__)
124
+
125
+ /* Instantiates the mutex with options if not already done. */
126
+ /* The parameter x should be a (void**). */
127
+ #define CPLMutexHolderExD(x, nOptions) \
128
+ CPLMutexHolder oHolder(x, 1000.0, __FILE__, __LINE__, nOptions)
129
+
130
+ /* This variant assumes the mutex has already been created. If not, it will */
131
+ /* be a no-op. The parameter x should be a (void*) */
132
+ #define CPLMutexHolderOptionalLockD(x) \
133
+ CPLMutexHolder oHolder(x, 1000.0, __FILE__, __LINE__)
134
+
135
+ /** Object to hold a mutex */
136
+ class CPL_DLL CPLMutexHolder
137
+ {
138
+ private:
139
+ CPLMutex *hMutex = nullptr;
140
+ // Only used for debugging.
141
+ const char *pszFile = nullptr;
142
+ int nLine = 0;
143
+
144
+ CPL_DISALLOW_COPY_ASSIGN(CPLMutexHolder)
145
+
146
+ public:
147
+ /** Instantiates the mutex if not already done. */
148
+ explicit CPLMutexHolder(CPLMutex **phMutex, double dfWaitInSeconds = 1000.0,
149
+ const char *pszFile = __FILE__,
150
+ int nLine = __LINE__,
151
+ int nOptions = CPL_MUTEX_RECURSIVE);
152
+
153
+ /** This variant assumes the mutex has already been created. If not, it will
154
+ * be a no-op */
155
+ explicit CPLMutexHolder(CPLMutex *hMutex, double dfWaitInSeconds = 1000.0,
156
+ const char *pszFile = __FILE__,
157
+ int nLine = __LINE__);
158
+
159
+ ~CPLMutexHolder();
160
+ };
161
+
162
+ /* Instantiates the lock if not already done. The parameter x should be a
163
+ * (CPLLock**). */
164
+ #define CPLLockHolderD(x, eType) \
165
+ CPLLockHolder oHolder(x, eType, __FILE__, __LINE__);
166
+
167
+ /* This variant assumes the lock has already been created. If not, it will */
168
+ /* be a no-op. The parameter should be (CPLLock*) */
169
+ #define CPLLockHolderOptionalLockD(x) \
170
+ CPLLockHolder oHolder(x, __FILE__, __LINE__);
171
+
172
+ /** Object to hold a lock */
173
+ class CPL_DLL CPLLockHolder
174
+ {
175
+ private:
176
+ CPLLock *hLock = nullptr;
177
+ const char *pszFile = nullptr;
178
+ int nLine = 0;
179
+
180
+ CPL_DISALLOW_COPY_ASSIGN(CPLLockHolder)
181
+
182
+ public:
183
+ /** Instantiates the lock if not already done. */
184
+ CPLLockHolder(CPLLock **phSpin, CPLLockType eType,
185
+ const char *pszFile = __FILE__, int nLine = __LINE__);
186
+
187
+ /** This variant assumes the lock has already been created. If not, it will
188
+ * be a no-op */
189
+ explicit CPLLockHolder(CPLLock *hSpin, const char *pszFile = __FILE__,
190
+ int nLine = __LINE__);
191
+
192
+ ~CPLLockHolder();
193
+ };
194
+
195
+ #endif /* def __cplusplus */
196
+
197
+ /* -------------------------------------------------------------------- */
198
+ /* Thread local storage. */
199
+ /* -------------------------------------------------------------------- */
200
+
201
+ #define CTLS_RLBUFFERINFO 1 /* cpl_conv.cpp */
202
+ #define CTLS_WIN32_COND 2 /* cpl_multiproc.cpp */
203
+ #define CTLS_CSVTABLEPTR 3 /* cpl_csv.cpp */
204
+ #define CTLS_CSVDEFAULTFILENAME 4 /* cpl_csv.cpp */
205
+ #define CTLS_ERRORCONTEXT 5 /* cpl_error.cpp */
206
+ #define CTLS_VSICURL_CACHEDCONNECTION 6 /* cpl_vsil_curl.cpp */
207
+ #define CTLS_PATHBUF 7 /* cpl_path.cpp */
208
+ #define CTLS_ABSTRACTARCHIVE_SPLIT 8 /* cpl_vsil_abstract_archive.cpp */
209
+ #define CTLS_GDALOPEN_ANTIRECURSION 9 /* gdaldataset.cpp */
210
+ #define CTLS_CPLSPRINTF 10 /* cpl_string.h */
211
+ #define CTLS_RESPONSIBLEPID 11 /* gdaldataset.cpp */
212
+ #define CTLS_VERSIONINFO 12 /* gdal_misc.cpp */
213
+ #define CTLS_VERSIONINFO_LICENCE 13 /* gdal_misc.cpp */
214
+ #define CTLS_CONFIGOPTIONS 14 /* cpl_conv.cpp */
215
+ #define CTLS_FINDFILE 15 /* cpl_findfile.cpp */
216
+ #define CTLS_VSIERRORCONTEXT 16 /* cpl_vsi_error.cpp */
217
+ /* 17: unused */
218
+ #define CTLS_PROJCONTEXTHOLDER 18 /* ogr_proj_p.cpp */
219
+ #define CTLS_GDALDEFAULTOVR_ANTIREC 19 /* gdaldefaultoverviews.cpp */
220
+ #define CTLS_HTTPFETCHCALLBACK 20 /* cpl_http.cpp */
221
+
222
+ #define CTLS_MAX 32
223
+
224
+ CPL_C_START
225
+ void CPL_DLL *CPLGetTLS(int nIndex);
226
+ void CPL_DLL *CPLGetTLSEx(int nIndex, int *pbMemoryErrorOccurred);
227
+ void CPL_DLL CPLSetTLS(int nIndex, void *pData, int bFreeOnExit);
228
+
229
+ /* Warning : the CPLTLSFreeFunc must not in any case directly or indirectly */
230
+ /* use or fetch any TLS data, or a terminating thread will hang ! */
231
+ typedef void (*CPLTLSFreeFunc)(void *pData);
232
+ void CPL_DLL CPLSetTLSWithFreeFunc(int nIndex, void *pData,
233
+ CPLTLSFreeFunc pfnFree);
234
+ void CPL_DLL CPLSetTLSWithFreeFuncEx(int nIndex, void *pData,
235
+ CPLTLSFreeFunc pfnFree,
236
+ int *pbMemoryErrorOccurred);
237
+
238
+ void CPL_DLL CPLCleanupTLS(void);
239
+ CPL_C_END
240
+
241
+ #endif /* CPL_MULTIPROC_H_INCLUDED_ */