\hypertarget{io_8hpp_source}{}\doxysection{io.\+hpp}
\label{io_8hpp_source}\index{include/proj/io.hpp@{include/proj/io.hpp}}

\begin{DoxyCode}{0}
\DoxyCodeLine{1 \textcolor{comment}{/******************************************************************************}}
\DoxyCodeLine{2 \textcolor{comment}{ *}}
\DoxyCodeLine{3 \textcolor{comment}{ * Project:  PROJ}}
\DoxyCodeLine{4 \textcolor{comment}{ * Purpose:  ISO19111:2019 implementation}}
\DoxyCodeLine{5 \textcolor{comment}{ * Author:   Even Rouault <even dot rouault at spatialys dot com>}}
\DoxyCodeLine{6 \textcolor{comment}{ *}}
\DoxyCodeLine{7 \textcolor{comment}{ ******************************************************************************}}
\DoxyCodeLine{8 \textcolor{comment}{ * Copyright (c) 2018, Even Rouault <even dot rouault at spatialys dot com>}}
\DoxyCodeLine{9 \textcolor{comment}{ *}}
\DoxyCodeLine{10 \textcolor{comment}{ * Permission is hereby granted, free of charge, to any person obtaining a}}
\DoxyCodeLine{11 \textcolor{comment}{ * copy of this software and associated documentation files (the "{}Software"{}),}}
\DoxyCodeLine{12 \textcolor{comment}{ * to deal in the Software without restriction, including without limitation}}
\DoxyCodeLine{13 \textcolor{comment}{ * the rights to use, copy, modify, merge, publish, distribute, sublicense,}}
\DoxyCodeLine{14 \textcolor{comment}{ * and/or sell copies of the Software, and to permit persons to whom the}}
\DoxyCodeLine{15 \textcolor{comment}{ * Software is furnished to do so, subject to the following conditions:}}
\DoxyCodeLine{16 \textcolor{comment}{ *}}
\DoxyCodeLine{17 \textcolor{comment}{ * The above copyright notice and this permission notice shall be included}}
\DoxyCodeLine{18 \textcolor{comment}{ * in all copies or substantial portions of the Software.}}
\DoxyCodeLine{19 \textcolor{comment}{ *}}
\DoxyCodeLine{20 \textcolor{comment}{ * THE SOFTWARE IS PROVIDED "{}AS IS"{}, WITHOUT WARRANTY OF ANY KIND, EXPRESS}}
\DoxyCodeLine{21 \textcolor{comment}{ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,}}
\DoxyCodeLine{22 \textcolor{comment}{ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL}}
\DoxyCodeLine{23 \textcolor{comment}{ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER}}
\DoxyCodeLine{24 \textcolor{comment}{ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING}}
\DoxyCodeLine{25 \textcolor{comment}{ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER}}
\DoxyCodeLine{26 \textcolor{comment}{ * DEALINGS IN THE SOFTWARE.}}
\DoxyCodeLine{27 \textcolor{comment}{ ****************************************************************************/}}
\DoxyCodeLine{28 }
\DoxyCodeLine{29 \textcolor{preprocessor}{\#ifndef IO\_HH\_INCLUDED}}
\DoxyCodeLine{30 \textcolor{preprocessor}{\#define IO\_HH\_INCLUDED}}
\DoxyCodeLine{31 }
\DoxyCodeLine{32 \textcolor{preprocessor}{\#include <list>}}
\DoxyCodeLine{33 \textcolor{preprocessor}{\#include <memory>}}
\DoxyCodeLine{34 \textcolor{preprocessor}{\#include <set>}}
\DoxyCodeLine{35 \textcolor{preprocessor}{\#include <string>}}
\DoxyCodeLine{36 \textcolor{preprocessor}{\#include <utility>}}
\DoxyCodeLine{37 \textcolor{preprocessor}{\#include <vector>}}
\DoxyCodeLine{38 }
\DoxyCodeLine{39 \textcolor{preprocessor}{\#include "{}\mbox{\hyperlink{proj_8h}{proj.h}}"{}}}
\DoxyCodeLine{40 }
\DoxyCodeLine{41 \textcolor{preprocessor}{\#include "{}util.hpp"{}}}
\DoxyCodeLine{42 }
\DoxyCodeLine{43 NS\_PROJ\_START}
\DoxyCodeLine{44 }
\DoxyCodeLine{45 \textcolor{keyword}{class }CPLJSonStreamingWriter;}
\DoxyCodeLine{46 }
\DoxyCodeLine{47 \textcolor{keyword}{namespace }common \{}
\DoxyCodeLine{48 \textcolor{keyword}{class }UnitOfMeasure;}
\DoxyCodeLine{49 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1common_aaceb0025e7d31df0fc219145b6a59908}{UnitOfMeasurePtr}} = std::shared\_ptr<UnitOfMeasure>;}
\DoxyCodeLine{50 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1common_abd72c7d84f852c41c7c2a528f8fa1d62}{UnitOfMeasureNNPtr}} = util::nn<UnitOfMeasurePtr>;}
\DoxyCodeLine{51 }
\DoxyCodeLine{52 \textcolor{keyword}{class }IdentifiedObject;}
\DoxyCodeLine{53 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1common_accd81b8802949ca7ecd25579c55cfae2}{IdentifiedObjectPtr}} = std::shared\_ptr<IdentifiedObject>;}
\DoxyCodeLine{54 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1common_ada5c6f6eed30d72e1849e5aa583e2e99}{IdentifiedObjectNNPtr}} = util::nn<IdentifiedObjectPtr>;}
\DoxyCodeLine{55 \} \textcolor{comment}{// namespace common}}
\DoxyCodeLine{56 }
\DoxyCodeLine{57 \textcolor{keyword}{namespace }cs \{}
\DoxyCodeLine{58 \textcolor{keyword}{class }CoordinateSystem;}
\DoxyCodeLine{59 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1cs_a66c19f0bcdab0820fdbf2caf02406fb8}{CoordinateSystemPtr}} = std::shared\_ptr<CoordinateSystem>;}
\DoxyCodeLine{60 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1cs_aad7f9f4fbc0234c98f447c74037c50b4}{CoordinateSystemNNPtr}} = util::nn<CoordinateSystemPtr>;}
\DoxyCodeLine{61 \} \textcolor{comment}{// namespace cs}}
\DoxyCodeLine{62 }
\DoxyCodeLine{63 \textcolor{keyword}{namespace }metadata \{}
\DoxyCodeLine{64 \textcolor{keyword}{class }Extent;}
\DoxyCodeLine{65 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_a0d6b619c883f52d0e1f2b112c6f4dc96}{ExtentPtr}} = std::shared\_ptr<Extent>;}
\DoxyCodeLine{66 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_af1a3c8cdeaecefe3e24f6d6b88b084f3}{ExtentNNPtr}} = util::nn<ExtentPtr>;}
\DoxyCodeLine{67 \} \textcolor{comment}{// namespace metadata}}
\DoxyCodeLine{68 }
\DoxyCodeLine{69 \textcolor{keyword}{namespace }datum \{}
\DoxyCodeLine{70 \textcolor{keyword}{class }Datum;}
\DoxyCodeLine{71 \textcolor{keyword}{using} DatumPtr = std::shared\_ptr<Datum>;}
\DoxyCodeLine{72 \textcolor{keyword}{using} DatumNNPtr = util::nn<DatumPtr>;}
\DoxyCodeLine{73 }
\DoxyCodeLine{74 \textcolor{keyword}{class }DatumEnsemble;}
\DoxyCodeLine{75 \textcolor{keyword}{using} DatumEnsemblePtr = std::shared\_ptr<DatumEnsemble>;}
\DoxyCodeLine{76 \textcolor{keyword}{using} DatumEnsembleNNPtr = util::nn<DatumEnsemblePtr>;}
\DoxyCodeLine{77 }
\DoxyCodeLine{78 \textcolor{keyword}{class }Ellipsoid;}
\DoxyCodeLine{79 \textcolor{keyword}{using} EllipsoidPtr = std::shared\_ptr<Ellipsoid>;}
\DoxyCodeLine{80 \textcolor{keyword}{using} EllipsoidNNPtr = util::nn<EllipsoidPtr>;}
\DoxyCodeLine{81 }
\DoxyCodeLine{82 \textcolor{keyword}{class }PrimeMeridian;}
\DoxyCodeLine{83 \textcolor{keyword}{using} PrimeMeridianPtr = std::shared\_ptr<PrimeMeridian>;}
\DoxyCodeLine{84 \textcolor{keyword}{using} PrimeMeridianNNPtr = util::nn<PrimeMeridianPtr>;}
\DoxyCodeLine{85 }
\DoxyCodeLine{86 \textcolor{keyword}{class }GeodeticReferenceFrame;}
\DoxyCodeLine{87 \textcolor{keyword}{using} GeodeticReferenceFramePtr = std::shared\_ptr<GeodeticReferenceFrame>;}
\DoxyCodeLine{88 \textcolor{keyword}{using} GeodeticReferenceFrameNNPtr = util::nn<GeodeticReferenceFramePtr>;}
\DoxyCodeLine{89 }
\DoxyCodeLine{90 \textcolor{keyword}{class }VerticalReferenceFrame;}
\DoxyCodeLine{91 \textcolor{keyword}{using} VerticalReferenceFramePtr = std::shared\_ptr<VerticalReferenceFrame>;}
\DoxyCodeLine{92 \textcolor{keyword}{using} VerticalReferenceFrameNNPtr = util::nn<VerticalReferenceFramePtr>;}
\DoxyCodeLine{93 \} \textcolor{comment}{// namespace datum}}
\DoxyCodeLine{94 }
\DoxyCodeLine{95 \textcolor{keyword}{namespace }crs \{}
\DoxyCodeLine{96 \textcolor{keyword}{class }CRS;}
\DoxyCodeLine{97 \textcolor{keyword}{using} CRSPtr = std::shared\_ptr<CRS>;}
\DoxyCodeLine{98 \textcolor{keyword}{using} CRSNNPtr = util::nn<CRSPtr>;}
\DoxyCodeLine{99 }
\DoxyCodeLine{100 \textcolor{keyword}{class }GeodeticCRS;}
\DoxyCodeLine{101 \textcolor{keyword}{using} GeodeticCRSPtr = std::shared\_ptr<GeodeticCRS>;}
\DoxyCodeLine{102 \textcolor{keyword}{using} GeodeticCRSNNPtr = util::nn<GeodeticCRSPtr>;}
\DoxyCodeLine{103 }
\DoxyCodeLine{104 \textcolor{keyword}{class }GeographicCRS;}
\DoxyCodeLine{105 \textcolor{keyword}{using} GeographicCRSPtr = std::shared\_ptr<GeographicCRS>;}
\DoxyCodeLine{106 \textcolor{keyword}{using} GeographicCRSNNPtr = util::nn<GeographicCRSPtr>;}
\DoxyCodeLine{107 }
\DoxyCodeLine{108 \textcolor{keyword}{class }VerticalCRS;}
\DoxyCodeLine{109 \textcolor{keyword}{using} VerticalCRSPtr = std::shared\_ptr<VerticalCRS>;}
\DoxyCodeLine{110 \textcolor{keyword}{using} VerticalCRSNNPtr = util::nn<VerticalCRSPtr>;}
\DoxyCodeLine{111 }
\DoxyCodeLine{112 \textcolor{keyword}{class }ProjectedCRS;}
\DoxyCodeLine{113 \textcolor{keyword}{using} ProjectedCRSPtr = std::shared\_ptr<ProjectedCRS>;}
\DoxyCodeLine{114 \textcolor{keyword}{using} ProjectedCRSNNPtr = util::nn<ProjectedCRSPtr>;}
\DoxyCodeLine{115 }
\DoxyCodeLine{116 \textcolor{keyword}{class }CompoundCRS;}
\DoxyCodeLine{117 \textcolor{keyword}{using} CompoundCRSPtr = std::shared\_ptr<CompoundCRS>;}
\DoxyCodeLine{118 \textcolor{keyword}{using} CompoundCRSNNPtr = util::nn<CompoundCRSPtr>;}
\DoxyCodeLine{119 \} \textcolor{comment}{// namespace crs}}
\DoxyCodeLine{120 }
\DoxyCodeLine{121 \textcolor{keyword}{namespace }operation \{}
\DoxyCodeLine{122 \textcolor{keyword}{class }Conversion;}
\DoxyCodeLine{123 \textcolor{keyword}{using} ConversionPtr = std::shared\_ptr<Conversion>;}
\DoxyCodeLine{124 \textcolor{keyword}{using} ConversionNNPtr = util::nn<ConversionPtr>;}
\DoxyCodeLine{125 }
\DoxyCodeLine{126 \textcolor{keyword}{class }CoordinateOperation;}
\DoxyCodeLine{127 \textcolor{keyword}{using} CoordinateOperationPtr = std::shared\_ptr<CoordinateOperation>;}
\DoxyCodeLine{128 \textcolor{keyword}{using} CoordinateOperationNNPtr = util::nn<CoordinateOperationPtr>;}
\DoxyCodeLine{129 \} \textcolor{comment}{// namespace operation}}
\DoxyCodeLine{130 }
\DoxyCodeLine{135 \textcolor{keyword}{namespace }io \{}
\DoxyCodeLine{136 }
\DoxyCodeLine{137 \textcolor{keyword}{class }DatabaseContext;}
\DoxyCodeLine{139 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_ac071e92c14195058e37bcd4c7b75b42f}{DatabaseContextPtr}} = std::shared\_ptr<DatabaseContext>;}
\DoxyCodeLine{141 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_a776e066c227b9607a8c8e9e356bb9c40}{DatabaseContextNNPtr}} = util::nn<DatabaseContextPtr>;}
\DoxyCodeLine{142 }
\DoxyCodeLine{143 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{144 }
\DoxyCodeLine{145 \textcolor{keyword}{class }\mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1WKTNode}{WKTNode}};}
\DoxyCodeLine{147 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_a5dc6e0362ef50a2272a337cde9ee3628}{WKTNodePtr}} = std::unique\_ptr<WKTNode>;}
\DoxyCodeLine{149 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_a0d7db6c3ecf8d65414061530289f4d8b}{WKTNodeNNPtr}} = util::nn<WKTNodePtr>;}
\DoxyCodeLine{150 }
\DoxyCodeLine{151 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{152 }
\DoxyCodeLine{153 \textcolor{keyword}{class }\mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1WKTFormatter}{WKTFormatter}};}
\DoxyCodeLine{155 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_ad5ed03672a2bcb1c4619a4184cb2fb45}{WKTFormatterPtr}} = std::unique\_ptr<WKTFormatter>;}
\DoxyCodeLine{157 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_af24cb641beac0083bd63f376dda49d39}{WKTFormatterNNPtr}} = util::nn<WKTFormatterPtr>;}
\DoxyCodeLine{158 }
\DoxyCodeLine{164 \textcolor{keyword}{class }PROJ\_GCC\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1WKTFormatter}{WKTFormatter}} \{}
\DoxyCodeLine{165   \textcolor{keyword}{public}:}
\DoxyCodeLine{167     \textcolor{keyword}{enum class} PROJ\_MSVC\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1WKTFormatter_ae94f4401c1eeae3808dce1aaa8d25f42}{Convention}} \{}
\DoxyCodeLine{171         WKT2,}
\DoxyCodeLine{172         WKT2\_2015 = WKT2,}
\DoxyCodeLine{173 }
\DoxyCodeLine{187         WKT2\_SIMPLIFIED,}
\DoxyCodeLine{188         WKT2\_2015\_SIMPLIFIED = WKT2\_SIMPLIFIED,}
\DoxyCodeLine{189 }
\DoxyCodeLine{198         WKT2\_2019,}
\DoxyCodeLine{199 }
\DoxyCodeLine{201         WKT2\_2018 = WKT2\_2019,}
\DoxyCodeLine{202 }
\DoxyCodeLine{204         WKT2\_2019\_SIMPLIFIED,}
\DoxyCodeLine{205 }
\DoxyCodeLine{207         WKT2\_2018\_SIMPLIFIED = WKT2\_2019\_SIMPLIFIED,}
\DoxyCodeLine{208 }
\DoxyCodeLine{213         WKT1\_GDAL,}
\DoxyCodeLine{214 }
\DoxyCodeLine{217         WKT1\_ESRI,}
\DoxyCodeLine{218     \};}
\DoxyCodeLine{219 }
\DoxyCodeLine{220     PROJ\_DLL \textcolor{keyword}{static} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_af24cb641beac0083bd63f376dda49d39}{WKTFormatterNNPtr}}}
\DoxyCodeLine{221     create(Convention convention = Convention::WKT2,}
\DoxyCodeLine{222            \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_ac071e92c14195058e37bcd4c7b75b42f}{DatabaseContextPtr}} dbContext = \textcolor{keyword}{nullptr});}
\DoxyCodeLine{223     PROJ\_DLL \textcolor{keyword}{static} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_af24cb641beac0083bd63f376dda49d39}{WKTFormatterNNPtr}} create(\textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_af24cb641beac0083bd63f376dda49d39}{WKTFormatterNNPtr}} \&other);}
\DoxyCodeLine{225     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1WKTFormatter}{\string~WKTFormatter}}();}
\DoxyCodeLine{227 }
\DoxyCodeLine{228     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1WKTFormatter}{WKTFormatter}} \&setMultiLine(\textcolor{keywordtype}{bool} multiLine) \textcolor{keyword}{noexcept};}
\DoxyCodeLine{229     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1WKTFormatter}{WKTFormatter}} \&setIndentationWidth(\textcolor{keywordtype}{int} width) \textcolor{keyword}{noexcept};}
\DoxyCodeLine{230 }
\DoxyCodeLine{232     \textcolor{keyword}{enum class} \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1WKTFormatter_a659d0fa2167959bc2b3c876638a026be}{OutputAxisRule}} \{}
\DoxyCodeLine{234         YES,}
\DoxyCodeLine{236         NO,}
\DoxyCodeLine{239         WKT1\_GDAL\_EPSG\_STYLE,}
\DoxyCodeLine{240     \};}
\DoxyCodeLine{241 }
\DoxyCodeLine{242     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1WKTFormatter}{WKTFormatter}} \&setOutputAxis(OutputAxisRule outputAxis) \textcolor{keyword}{noexcept};}
\DoxyCodeLine{243     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1WKTFormatter}{WKTFormatter}} \&setStrict(\textcolor{keywordtype}{bool} strict) \textcolor{keyword}{noexcept};}
\DoxyCodeLine{244     PROJ\_DLL \textcolor{keywordtype}{bool} isStrict() const noexcept;}
\DoxyCodeLine{245 }
\DoxyCodeLine{246     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1WKTFormatter}{WKTFormatter}} \&}
\DoxyCodeLine{247     setAllowEllipsoidalHeightAsVerticalCRS(\textcolor{keywordtype}{bool} allow) noexcept;}
\DoxyCodeLine{248     PROJ\_DLL \textcolor{keywordtype}{bool} isAllowedEllipsoidalHeightAsVerticalCRS() const noexcept;}
\DoxyCodeLine{249 }
\DoxyCodeLine{250     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1WKTFormatter}{WKTFormatter}} \&setAllowLINUNITNode(\textcolor{keywordtype}{bool} allow) noexcept;}
\DoxyCodeLine{251     PROJ\_DLL \textcolor{keywordtype}{bool} isAllowedLINUNITNode() const noexcept;}
\DoxyCodeLine{252 }
\DoxyCodeLine{253     PROJ\_DLL const std::\textcolor{keywordtype}{string} \&toString() const;}
\DoxyCodeLine{254 }
\DoxyCodeLine{255     PROJ\_PRIVATE :}
\DoxyCodeLine{257         PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1WKTFormatter}{WKTFormatter}} \&}
\DoxyCodeLine{258         setOutputId(\textcolor{keywordtype}{bool} outputIdIn);}
\DoxyCodeLine{259 }
\DoxyCodeLine{260     PROJ\_INTERNAL \textcolor{keywordtype}{void} enter();}
\DoxyCodeLine{261     PROJ\_INTERNAL \textcolor{keywordtype}{void} leave();}
\DoxyCodeLine{262 }
\DoxyCodeLine{263     PROJ\_INTERNAL \textcolor{keywordtype}{void} startNode(const std::\textcolor{keywordtype}{string} \&keyword, \textcolor{keywordtype}{bool} hasId);}
\DoxyCodeLine{264     PROJ\_INTERNAL \textcolor{keywordtype}{void} endNode();}
\DoxyCodeLine{265 }
\DoxyCodeLine{266     PROJ\_INTERNAL \textcolor{keywordtype}{bool} isAtTopLevel() const;}
\DoxyCodeLine{267 }
\DoxyCodeLine{268     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1WKTFormatter}{WKTFormatter}} \&simulCurNodeHasId();}
\DoxyCodeLine{269 }
\DoxyCodeLine{270     PROJ\_INTERNAL \textcolor{keywordtype}{void} addQuotedString(const \textcolor{keywordtype}{char} *str);}
\DoxyCodeLine{271     PROJ\_INTERNAL \textcolor{keywordtype}{void} addQuotedString(const std::\textcolor{keywordtype}{string} \&str);}
\DoxyCodeLine{272     PROJ\_INTERNAL \textcolor{keywordtype}{void} add(const std::\textcolor{keywordtype}{string} \&str);}
\DoxyCodeLine{273     PROJ\_INTERNAL \textcolor{keywordtype}{void} add(\textcolor{keywordtype}{int} number);}
\DoxyCodeLine{274     PROJ\_INTERNAL \textcolor{keywordtype}{void} add(\textcolor{keywordtype}{size\_t} number) = delete;}
\DoxyCodeLine{275     PROJ\_INTERNAL \textcolor{keywordtype}{void} add(\textcolor{keywordtype}{double} number, \textcolor{keywordtype}{int} precision = 15);}
\DoxyCodeLine{276 }
\DoxyCodeLine{277     PROJ\_INTERNAL \textcolor{keywordtype}{void} pushOutputUnit(\textcolor{keywordtype}{bool} outputUnitIn);}
\DoxyCodeLine{278     PROJ\_INTERNAL \textcolor{keywordtype}{void} popOutputUnit();}
\DoxyCodeLine{279     PROJ\_INTERNAL \textcolor{keywordtype}{bool} outputUnit() const;}
\DoxyCodeLine{280 }
\DoxyCodeLine{281     PROJ\_INTERNAL \textcolor{keywordtype}{void} pushOutputId(\textcolor{keywordtype}{bool} outputIdIn);}
\DoxyCodeLine{282     PROJ\_INTERNAL \textcolor{keywordtype}{void} popOutputId();}
\DoxyCodeLine{283     PROJ\_INTERNAL \textcolor{keywordtype}{bool} outputId() const;}
\DoxyCodeLine{284 }
\DoxyCodeLine{285     PROJ\_INTERNAL \textcolor{keywordtype}{void} pushHasId(\textcolor{keywordtype}{bool} hasId);}
\DoxyCodeLine{286     PROJ\_INTERNAL \textcolor{keywordtype}{void} popHasId();}
\DoxyCodeLine{287 }
\DoxyCodeLine{288     PROJ\_INTERNAL \textcolor{keywordtype}{void} pushDisableUsage();}
\DoxyCodeLine{289     PROJ\_INTERNAL \textcolor{keywordtype}{void} popDisableUsage();}
\DoxyCodeLine{290     PROJ\_INTERNAL \textcolor{keywordtype}{bool} outputUsage() const;}
\DoxyCodeLine{291 }
\DoxyCodeLine{292     PROJ\_INTERNAL \textcolor{keywordtype}{void}}
\DoxyCodeLine{293     pushAxisLinearUnit(const common::UnitOfMeasureNNPtr \&unit);}
\DoxyCodeLine{294     PROJ\_INTERNAL \textcolor{keywordtype}{void} popAxisLinearUnit();}
\DoxyCodeLine{295     PROJ\_INTERNAL const common::UnitOfMeasureNNPtr \&axisLinearUnit() const;}
\DoxyCodeLine{296 }
\DoxyCodeLine{297     PROJ\_INTERNAL \textcolor{keywordtype}{void}}
\DoxyCodeLine{298     pushAxisAngularUnit(const common::UnitOfMeasureNNPtr \&unit);}
\DoxyCodeLine{299     PROJ\_INTERNAL \textcolor{keywordtype}{void} popAxisAngularUnit();}
\DoxyCodeLine{300     PROJ\_INTERNAL const common::UnitOfMeasureNNPtr \&axisAngularUnit() const;}
\DoxyCodeLine{301 }
\DoxyCodeLine{302     PROJ\_INTERNAL \textcolor{keywordtype}{void} setAbridgedTransformation(\textcolor{keywordtype}{bool} abriged);}
\DoxyCodeLine{303     PROJ\_INTERNAL \textcolor{keywordtype}{bool} abridgedTransformation() const;}
\DoxyCodeLine{304 }
\DoxyCodeLine{305     PROJ\_INTERNAL \textcolor{keywordtype}{void} setUseDerivingConversion(\textcolor{keywordtype}{bool} useDerivingConversionIn);}
\DoxyCodeLine{306     PROJ\_INTERNAL \textcolor{keywordtype}{bool} useDerivingConversion() const;}
\DoxyCodeLine{307 }
\DoxyCodeLine{308     PROJ\_INTERNAL \textcolor{keywordtype}{void} setTOWGS84Parameters(const std::vector<\textcolor{keywordtype}{double}> \&params);}
\DoxyCodeLine{309     PROJ\_INTERNAL const std::vector<\textcolor{keywordtype}{double}> \&getTOWGS84Parameters() const;}
\DoxyCodeLine{310 }
\DoxyCodeLine{311     PROJ\_INTERNAL \textcolor{keywordtype}{void} setVDatumExtension(const std::\textcolor{keywordtype}{string} \&filename);}
\DoxyCodeLine{312     PROJ\_INTERNAL const std::\textcolor{keywordtype}{string} \&getVDatumExtension() const;}
\DoxyCodeLine{313 }
\DoxyCodeLine{314     PROJ\_INTERNAL \textcolor{keywordtype}{void} setHDatumExtension(const std::\textcolor{keywordtype}{string} \&filename);}
\DoxyCodeLine{315     PROJ\_INTERNAL const std::\textcolor{keywordtype}{string} \&getHDatumExtension() const;}
\DoxyCodeLine{316 }
\DoxyCodeLine{317     PROJ\_INTERNAL \textcolor{keywordtype}{void}}
\DoxyCodeLine{318     setGeogCRSOfCompoundCRS(const crs::GeographicCRSPtr \&crs);}
\DoxyCodeLine{319     PROJ\_INTERNAL const crs::GeographicCRSPtr \&getGeogCRSOfCompoundCRS() const;}
\DoxyCodeLine{320 }
\DoxyCodeLine{321     PROJ\_INTERNAL static std::\textcolor{keywordtype}{string} morphNameToESRI(const std::\textcolor{keywordtype}{string} \&name);}
\DoxyCodeLine{322 }
\DoxyCodeLine{323 \textcolor{preprocessor}{\#ifdef unused}}
\DoxyCodeLine{324     PROJ\_INTERNAL \textcolor{keywordtype}{void} startInversion();}
\DoxyCodeLine{325     PROJ\_INTERNAL \textcolor{keywordtype}{void} stopInversion();}
\DoxyCodeLine{326     PROJ\_INTERNAL \textcolor{keywordtype}{bool} isInverted() \textcolor{keyword}{const};}
\DoxyCodeLine{327 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{328 }
\DoxyCodeLine{329     PROJ\_INTERNAL OutputAxisRule outputAxis() \textcolor{keyword}{const};}
\DoxyCodeLine{330     PROJ\_INTERNAL \textcolor{keywordtype}{bool} outputAxisOrder() \textcolor{keyword}{const};}
\DoxyCodeLine{331     PROJ\_INTERNAL \textcolor{keywordtype}{bool} primeMeridianOmittedIfGreenwich() \textcolor{keyword}{const};}
\DoxyCodeLine{332     PROJ\_INTERNAL \textcolor{keywordtype}{bool} ellipsoidUnitOmittedIfMetre() \textcolor{keyword}{const};}
\DoxyCodeLine{333     PROJ\_INTERNAL \textcolor{keywordtype}{bool} forceUNITKeyword() \textcolor{keyword}{const};}
\DoxyCodeLine{334     PROJ\_INTERNAL \textcolor{keywordtype}{bool} primeMeridianOrParameterUnitOmittedIfSameAsAxis() \textcolor{keyword}{const};}
\DoxyCodeLine{335     PROJ\_INTERNAL \textcolor{keywordtype}{bool} primeMeridianInDegree() \textcolor{keyword}{const};}
\DoxyCodeLine{336     PROJ\_INTERNAL \textcolor{keywordtype}{bool} outputCSUnitOnlyOnceIfSame() \textcolor{keyword}{const};}
\DoxyCodeLine{337     PROJ\_INTERNAL \textcolor{keywordtype}{bool} idOnTopLevelOnly() \textcolor{keyword}{const};}
\DoxyCodeLine{338     PROJ\_INTERNAL \textcolor{keywordtype}{bool} topLevelHasId() \textcolor{keyword}{const};}
\DoxyCodeLine{339 }
\DoxyCodeLine{341     \textcolor{keyword}{enum class} Version \{}
\DoxyCodeLine{343         WKT1,}
\DoxyCodeLine{345         WKT2}
\DoxyCodeLine{346     \};}
\DoxyCodeLine{347 }
\DoxyCodeLine{348     PROJ\_INTERNAL Version version() \textcolor{keyword}{const};}
\DoxyCodeLine{349     PROJ\_INTERNAL \textcolor{keywordtype}{bool} use2019Keywords() \textcolor{keyword}{const};}
\DoxyCodeLine{350     PROJ\_INTERNAL \textcolor{keywordtype}{bool} useESRIDialect() \textcolor{keyword}{const};}
\DoxyCodeLine{351 }
\DoxyCodeLine{352     PROJ\_INTERNAL \textcolor{keyword}{const} DatabaseContextPtr \&databaseContext() \textcolor{keyword}{const};}
\DoxyCodeLine{353 }
\DoxyCodeLine{354     PROJ\_INTERNAL \textcolor{keywordtype}{void} ingestWKTNode(\textcolor{keyword}{const} WKTNodeNNPtr \&node);}
\DoxyCodeLine{355 }
\DoxyCodeLine{357 }
\DoxyCodeLine{358   \textcolor{keyword}{protected}:}
\DoxyCodeLine{360     PROJ\_INTERNAL \textcolor{keyword}{explicit} WKTFormatter(Convention convention);}
\DoxyCodeLine{361     WKTFormatter(\textcolor{keyword}{const} WKTFormatter \&other) = \textcolor{keyword}{delete};}
\DoxyCodeLine{362 }
\DoxyCodeLine{363     INLINED\_MAKE\_UNIQUE}
\DoxyCodeLine{365 }
\DoxyCodeLine{366   \textcolor{keyword}{private}:}
\DoxyCodeLine{367     PROJ\_OPAQUE\_PRIVATE\_DATA}
\DoxyCodeLine{368 \};}
\DoxyCodeLine{369 }
\DoxyCodeLine{370 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{371 }
\DoxyCodeLine{372 \textcolor{keyword}{class }PROJStringFormatter;}
\DoxyCodeLine{374 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_a954d930eba34fd9810a6221819dfdf18}{PROJStringFormatterPtr}} = std::unique\_ptr<PROJStringFormatter>;}
\DoxyCodeLine{376 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_a33fa50ad8d2ecdd6f1f6037a3cb00011}{PROJStringFormatterNNPtr}} = util::nn<PROJStringFormatterPtr>;}
\DoxyCodeLine{377 }
\DoxyCodeLine{383 \textcolor{keyword}{class }PROJ\_GCC\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1PROJStringFormatter}{PROJStringFormatter}} \{}
\DoxyCodeLine{384   \textcolor{keyword}{public}:}
\DoxyCodeLine{386     \textcolor{keyword}{enum class} PROJ\_MSVC\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1PROJStringFormatter_a797997db6984aa2bad279abb0010ff13}{Convention}} \{}
\DoxyCodeLine{388         PROJ\_5,}
\DoxyCodeLine{389 }
\DoxyCodeLine{391         PROJ\_4}
\DoxyCodeLine{392     \};}
\DoxyCodeLine{393 }
\DoxyCodeLine{394     PROJ\_DLL \textcolor{keyword}{static} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_a33fa50ad8d2ecdd6f1f6037a3cb00011}{PROJStringFormatterNNPtr}}}
\DoxyCodeLine{395     create(Convention conventionIn = Convention::PROJ\_5,}
\DoxyCodeLine{396            \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_ac071e92c14195058e37bcd4c7b75b42f}{DatabaseContextPtr}} dbContext = \textcolor{keyword}{nullptr});}
\DoxyCodeLine{398     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1PROJStringFormatter}{\string~PROJStringFormatter}}();}
\DoxyCodeLine{400 }
\DoxyCodeLine{401     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1PROJStringFormatter}{PROJStringFormatter}} \&setMultiLine(\textcolor{keywordtype}{bool} multiLine) \textcolor{keyword}{noexcept};}
\DoxyCodeLine{402     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1PROJStringFormatter}{PROJStringFormatter}} \&setIndentationWidth(\textcolor{keywordtype}{int} width) \textcolor{keyword}{noexcept};}
\DoxyCodeLine{403     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1PROJStringFormatter}{PROJStringFormatter}} \&setMaxLineLength(\textcolor{keywordtype}{int} maxLineLength) \textcolor{keyword}{noexcept};}
\DoxyCodeLine{404 }
\DoxyCodeLine{405     PROJ\_DLL \textcolor{keywordtype}{void} setUseApproxTMerc(\textcolor{keywordtype}{bool} flag);}
\DoxyCodeLine{406 }
\DoxyCodeLine{407     PROJ\_DLL \textcolor{keyword}{const} std::string \&toString() \textcolor{keyword}{const};}
\DoxyCodeLine{408 }
\DoxyCodeLine{409     PROJ\_PRIVATE :}
\DoxyCodeLine{411 }
\DoxyCodeLine{412         PROJ\_DLL \textcolor{keywordtype}{void}}
\DoxyCodeLine{413         setCRSExport(\textcolor{keywordtype}{bool} b);}
\DoxyCodeLine{414     PROJ\_INTERNAL \textcolor{keywordtype}{bool} getCRSExport() \textcolor{keyword}{const};}
\DoxyCodeLine{415     PROJ\_DLL \textcolor{keywordtype}{void} startInversion();}
\DoxyCodeLine{416     PROJ\_DLL \textcolor{keywordtype}{void} stopInversion();}
\DoxyCodeLine{417     PROJ\_INTERNAL \textcolor{keywordtype}{bool} isInverted() \textcolor{keyword}{const};}
\DoxyCodeLine{418     PROJ\_INTERNAL \textcolor{keywordtype}{bool} getUseApproxTMerc() \textcolor{keyword}{const};}
\DoxyCodeLine{419     PROJ\_INTERNAL \textcolor{keywordtype}{void} setCoordinateOperationOptimizations(\textcolor{keywordtype}{bool} enable);}
\DoxyCodeLine{420 }
\DoxyCodeLine{421     PROJ\_DLL \textcolor{keywordtype}{void}}
\DoxyCodeLine{422     ingestPROJString(\textcolor{keyword}{const} std::string \&str); \textcolor{comment}{// throw ParsingException}}
\DoxyCodeLine{423 }
\DoxyCodeLine{424     PROJ\_DLL \textcolor{keywordtype}{void} addStep(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *step);}
\DoxyCodeLine{425     PROJ\_DLL \textcolor{keywordtype}{void} addStep(\textcolor{keyword}{const} std::string \&step);}
\DoxyCodeLine{426     PROJ\_DLL \textcolor{keywordtype}{void} setCurrentStepInverted(\textcolor{keywordtype}{bool} inverted);}
\DoxyCodeLine{427     PROJ\_DLL \textcolor{keywordtype}{void} addParam(\textcolor{keyword}{const} std::string \&paramName);}
\DoxyCodeLine{428     PROJ\_DLL \textcolor{keywordtype}{void} addParam(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *paramName, \textcolor{keywordtype}{double} val);}
\DoxyCodeLine{429     PROJ\_DLL \textcolor{keywordtype}{void} addParam(\textcolor{keyword}{const} std::string \&paramName, \textcolor{keywordtype}{double} val);}
\DoxyCodeLine{430     PROJ\_DLL \textcolor{keywordtype}{void} addParam(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *paramName, \textcolor{keywordtype}{int} val);}
\DoxyCodeLine{431     PROJ\_DLL \textcolor{keywordtype}{void} addParam(\textcolor{keyword}{const} std::string \&paramName, \textcolor{keywordtype}{int} val);}
\DoxyCodeLine{432     PROJ\_DLL \textcolor{keywordtype}{void} addParam(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *paramName, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *val);}
\DoxyCodeLine{433     PROJ\_DLL \textcolor{keywordtype}{void} addParam(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *paramName, \textcolor{keyword}{const} std::string \&val);}
\DoxyCodeLine{434     PROJ\_DLL \textcolor{keywordtype}{void} addParam(\textcolor{keyword}{const} std::string \&paramName, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *val);}
\DoxyCodeLine{435     PROJ\_DLL \textcolor{keywordtype}{void} addParam(\textcolor{keyword}{const} std::string \&paramName,}
\DoxyCodeLine{436                            \textcolor{keyword}{const} std::string \&val);}
\DoxyCodeLine{437     PROJ\_DLL \textcolor{keywordtype}{void} addParam(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *paramName,}
\DoxyCodeLine{438                            \textcolor{keyword}{const} std::vector<double> \&vals);}
\DoxyCodeLine{439 }
\DoxyCodeLine{440     PROJ\_INTERNAL \textcolor{keywordtype}{bool} hasParam(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *paramName) \textcolor{keyword}{const};}
\DoxyCodeLine{441 }
\DoxyCodeLine{442     PROJ\_INTERNAL \textcolor{keywordtype}{void} addNoDefs(\textcolor{keywordtype}{bool} b);}
\DoxyCodeLine{443     PROJ\_INTERNAL \textcolor{keywordtype}{bool} getAddNoDefs() \textcolor{keyword}{const};}
\DoxyCodeLine{444 }
\DoxyCodeLine{445     PROJ\_INTERNAL std::set<std::string> getUsedGridNames() \textcolor{keyword}{const};}
\DoxyCodeLine{446 }
\DoxyCodeLine{447     PROJ\_INTERNAL \textcolor{keywordtype}{void} setTOWGS84Parameters(\textcolor{keyword}{const} std::vector<double> \&params);}
\DoxyCodeLine{448     PROJ\_INTERNAL \textcolor{keyword}{const} std::vector<double> \&getTOWGS84Parameters() \textcolor{keyword}{const};}
\DoxyCodeLine{449 }
\DoxyCodeLine{450     PROJ\_INTERNAL \textcolor{keywordtype}{void} setVDatumExtension(\textcolor{keyword}{const} std::string \&filename,}
\DoxyCodeLine{451                                           \textcolor{keyword}{const} std::string \&geoidCRSValue);}
\DoxyCodeLine{452     PROJ\_INTERNAL \textcolor{keyword}{const} std::string \&getVDatumExtension() \textcolor{keyword}{const};}
\DoxyCodeLine{453     PROJ\_INTERNAL \textcolor{keyword}{const} std::string \&getGeoidCRSValue() \textcolor{keyword}{const};}
\DoxyCodeLine{454 }
\DoxyCodeLine{455     PROJ\_INTERNAL \textcolor{keywordtype}{void} setHDatumExtension(\textcolor{keyword}{const} std::string \&filename);}
\DoxyCodeLine{456     PROJ\_INTERNAL \textcolor{keyword}{const} std::string \&getHDatumExtension() \textcolor{keyword}{const};}
\DoxyCodeLine{457 }
\DoxyCodeLine{458     PROJ\_INTERNAL \textcolor{keywordtype}{void}}
\DoxyCodeLine{459     setGeogCRSOfCompoundCRS(\textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_ae1cebff55fa4231577625e1dc8fdb10b}{crs::GeographicCRSPtr}} \&crs);}
\DoxyCodeLine{460     PROJ\_INTERNAL \textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_ae1cebff55fa4231577625e1dc8fdb10b}{crs::GeographicCRSPtr}} \&getGeogCRSOfCompoundCRS() \textcolor{keyword}{const};}
\DoxyCodeLine{461 }
\DoxyCodeLine{462     PROJ\_INTERNAL \textcolor{keywordtype}{void} setOmitProjLongLatIfPossible(\textcolor{keywordtype}{bool} omit);}
\DoxyCodeLine{463     PROJ\_INTERNAL \textcolor{keywordtype}{bool} omitProjLongLatIfPossible() \textcolor{keyword}{const};}
\DoxyCodeLine{464 }
\DoxyCodeLine{465     PROJ\_INTERNAL \textcolor{keywordtype}{void} pushOmitZUnitConversion();}
\DoxyCodeLine{466     PROJ\_INTERNAL \textcolor{keywordtype}{void} popOmitZUnitConversion();}
\DoxyCodeLine{467     PROJ\_INTERNAL \textcolor{keywordtype}{bool} omitZUnitConversion() \textcolor{keyword}{const};}
\DoxyCodeLine{468 }
\DoxyCodeLine{469     PROJ\_INTERNAL \textcolor{keywordtype}{void} pushOmitHorizontalConversionInVertTransformation();}
\DoxyCodeLine{470     PROJ\_INTERNAL \textcolor{keywordtype}{void} popOmitHorizontalConversionInVertTransformation();}
\DoxyCodeLine{471     PROJ\_INTERNAL \textcolor{keywordtype}{bool} omitHorizontalConversionInVertTransformation() \textcolor{keyword}{const};}
\DoxyCodeLine{472 }
\DoxyCodeLine{473     PROJ\_INTERNAL \textcolor{keywordtype}{void} setLegacyCRSToCRSContext(\textcolor{keywordtype}{bool} legacyContext);}
\DoxyCodeLine{474     PROJ\_INTERNAL \textcolor{keywordtype}{bool} getLegacyCRSToCRSContext() \textcolor{keyword}{const};}
\DoxyCodeLine{475 }
\DoxyCodeLine{476     PROJ\_INTERNAL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1PROJStringFormatter}{PROJStringFormatter}} \&setNormalizeOutput();}
\DoxyCodeLine{477 }
\DoxyCodeLine{478     PROJ\_INTERNAL \textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_ac071e92c14195058e37bcd4c7b75b42f}{DatabaseContextPtr}} \&databaseContext() \textcolor{keyword}{const};}
\DoxyCodeLine{479 }
\DoxyCodeLine{480     PROJ\_INTERNAL Convention convention() \textcolor{keyword}{const};}
\DoxyCodeLine{481 }
\DoxyCodeLine{482     PROJ\_INTERNAL \textcolor{keywordtype}{size\_t} getStepCount() \textcolor{keyword}{const};}
\DoxyCodeLine{483 }
\DoxyCodeLine{485 }
\DoxyCodeLine{486   \textcolor{keyword}{protected}:}
\DoxyCodeLine{488     PROJ\_INTERNAL \textcolor{keyword}{explicit} \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1PROJStringFormatter}{PROJStringFormatter}}(}
\DoxyCodeLine{489         Convention conventionIn, \textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_ac071e92c14195058e37bcd4c7b75b42f}{DatabaseContextPtr}} \&dbContext);}
\DoxyCodeLine{490     \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1PROJStringFormatter}{PROJStringFormatter}}(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1PROJStringFormatter}{PROJStringFormatter}} \&other) = \textcolor{keyword}{delete};}
\DoxyCodeLine{491 }
\DoxyCodeLine{492     INLINED\_MAKE\_UNIQUE}
\DoxyCodeLine{494 }
\DoxyCodeLine{495   \textcolor{keyword}{private}:}
\DoxyCodeLine{496     PROJ\_OPAQUE\_PRIVATE\_DATA}
\DoxyCodeLine{497 \};}
\DoxyCodeLine{498 }
\DoxyCodeLine{499 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{500 }
\DoxyCodeLine{501 \textcolor{keyword}{class }JSONFormatter;}
\DoxyCodeLine{503 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_a9b8654780f8b2b52db09a61a2414f8a0}{JSONFormatterPtr}} = std::unique\_ptr<JSONFormatter>;}
\DoxyCodeLine{505 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_aadfe1134c05cab65a5117c8576618d21}{JSONFormatterNNPtr}} = util::nn<JSONFormatterPtr>;}
\DoxyCodeLine{506 }
\DoxyCodeLine{512 \textcolor{keyword}{class }PROJ\_GCC\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1JSONFormatter}{JSONFormatter}} \{}
\DoxyCodeLine{513   \textcolor{keyword}{public}:}
\DoxyCodeLine{514     PROJ\_DLL \textcolor{keyword}{static} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_aadfe1134c05cab65a5117c8576618d21}{JSONFormatterNNPtr}}}
\DoxyCodeLine{515     create(\mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_ac071e92c14195058e37bcd4c7b75b42f}{DatabaseContextPtr}} dbContext = \textcolor{keyword}{nullptr});}
\DoxyCodeLine{517     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1JSONFormatter}{\string~JSONFormatter}}();}
\DoxyCodeLine{519 }
\DoxyCodeLine{520     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1JSONFormatter}{JSONFormatter}} \&setMultiLine(\textcolor{keywordtype}{bool} multiLine) \textcolor{keyword}{noexcept};}
\DoxyCodeLine{521     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1JSONFormatter}{JSONFormatter}} \&setIndentationWidth(\textcolor{keywordtype}{int} width) \textcolor{keyword}{noexcept};}
\DoxyCodeLine{522     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1JSONFormatter}{JSONFormatter}} \&setSchema(\textcolor{keyword}{const} std::string \&schema) \textcolor{keyword}{noexcept};}
\DoxyCodeLine{523 }
\DoxyCodeLine{524     PROJ\_DLL \textcolor{keyword}{const} std::string \&toString() \textcolor{keyword}{const};}
\DoxyCodeLine{525 }
\DoxyCodeLine{526     PROJ\_PRIVATE :}
\DoxyCodeLine{527 }
\DoxyCodeLine{529         PROJ\_INTERNAL CPLJSonStreamingWriter *}
\DoxyCodeLine{530         writer() \textcolor{keyword}{const};}
\DoxyCodeLine{531 }
\DoxyCodeLine{532     PROJ\_INTERNAL \textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_ac071e92c14195058e37bcd4c7b75b42f}{DatabaseContextPtr}} \&databaseContext() \textcolor{keyword}{const};}
\DoxyCodeLine{533 }
\DoxyCodeLine{534     \textcolor{keyword}{struct }ObjectContext \{}
\DoxyCodeLine{535         \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1JSONFormatter}{JSONFormatter}} \&m\_formatter;}
\DoxyCodeLine{536 }
\DoxyCodeLine{537         ObjectContext(\textcolor{keyword}{const} ObjectContext \&) = \textcolor{keyword}{delete};}
\DoxyCodeLine{538         ObjectContext(ObjectContext \&\&) = \textcolor{keywordflow}{default};}
\DoxyCodeLine{539 }
\DoxyCodeLine{540         \textcolor{keyword}{explicit} ObjectContext(\mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1JSONFormatter}{JSONFormatter}} \&formatter, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *objectType,}
\DoxyCodeLine{541                                \textcolor{keywordtype}{bool} hasId);}
\DoxyCodeLine{542         \string~ObjectContext();}
\DoxyCodeLine{543     \};}
\DoxyCodeLine{544     PROJ\_INTERNAL \textcolor{keyword}{inline} ObjectContext MakeObjectContext(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *objectType,}
\DoxyCodeLine{545                                                          \textcolor{keywordtype}{bool} hasId) \{}
\DoxyCodeLine{546         \textcolor{keywordflow}{return} ObjectContext(*\textcolor{keyword}{this}, objectType, hasId);}
\DoxyCodeLine{547     \}}
\DoxyCodeLine{548 }
\DoxyCodeLine{549     PROJ\_INTERNAL \textcolor{keywordtype}{void} setAllowIDInImmediateChild();}
\DoxyCodeLine{550 }
\DoxyCodeLine{551     PROJ\_INTERNAL \textcolor{keywordtype}{void} setOmitTypeInImmediateChild();}
\DoxyCodeLine{552 }
\DoxyCodeLine{553     PROJ\_INTERNAL \textcolor{keywordtype}{void} setAbridgedTransformation(\textcolor{keywordtype}{bool} abriged);}
\DoxyCodeLine{554     PROJ\_INTERNAL \textcolor{keywordtype}{bool} abridgedTransformation() \textcolor{keyword}{const};}
\DoxyCodeLine{555 }
\DoxyCodeLine{556     \textcolor{comment}{// cppcheck-\/suppress functionStatic}}
\DoxyCodeLine{557     PROJ\_INTERNAL \textcolor{keywordtype}{bool} outputId() \textcolor{keyword}{const};}
\DoxyCodeLine{558 }
\DoxyCodeLine{559     PROJ\_INTERNAL \textcolor{keywordtype}{bool}}
\DoxyCodeLine{560     outputUsage(\textcolor{keywordtype}{bool} calledBeforeObjectContext = \textcolor{keyword}{false}) \textcolor{keyword}{const};}
\DoxyCodeLine{561 }
\DoxyCodeLine{562     PROJ\_INTERNAL \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keywordtype}{char} *PROJJSON\_v0\_5;}
\DoxyCodeLine{563 }
\DoxyCodeLine{565 }
\DoxyCodeLine{566   \textcolor{keyword}{protected}:}
\DoxyCodeLine{568     PROJ\_INTERNAL \textcolor{keyword}{explicit} \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1JSONFormatter}{JSONFormatter}}();}
\DoxyCodeLine{569     \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1JSONFormatter}{JSONFormatter}}(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1JSONFormatter}{JSONFormatter}} \&other) = \textcolor{keyword}{delete};}
\DoxyCodeLine{570 }
\DoxyCodeLine{571     INLINED\_MAKE\_UNIQUE}
\DoxyCodeLine{573 }
\DoxyCodeLine{574   \textcolor{keyword}{private}:}
\DoxyCodeLine{575     PROJ\_OPAQUE\_PRIVATE\_DATA}
\DoxyCodeLine{576 \};}
\DoxyCodeLine{577 }
\DoxyCodeLine{578 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{579 }
\DoxyCodeLine{581 \textcolor{keyword}{class }PROJ\_GCC\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1IJSONExportable}{IJSONExportable}} \{}
\DoxyCodeLine{582   \textcolor{keyword}{public}:}
\DoxyCodeLine{584     PROJ\_DLL \textcolor{keyword}{virtual} \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1IJSONExportable}{\string~IJSONExportable}}();}
\DoxyCodeLine{586 }
\DoxyCodeLine{588     PROJ\_DLL std::string}
\DoxyCodeLine{589     \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1IJSONExportable_ae33e25017d2f71ae011e908c00569382}{exportToJSON}}(\mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1JSONFormatter}{JSONFormatter}} *formatter) \textcolor{keyword}{const}; \textcolor{comment}{// throw(FormattingException)}}
\DoxyCodeLine{590 }
\DoxyCodeLine{591     PROJ\_PRIVATE :}
\DoxyCodeLine{592 }
\DoxyCodeLine{594         PROJ\_INTERNAL \textcolor{keyword}{virtual} \textcolor{keywordtype}{void}}
\DoxyCodeLine{595         \_exportToJSON(}
\DoxyCodeLine{596             \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1JSONFormatter}{JSONFormatter}} *formatter) \textcolor{keyword}{const} = 0; \textcolor{comment}{// throw(FormattingException)}}
\DoxyCodeLine{598 \textcolor{comment}{}\};}
\DoxyCodeLine{599 }
\DoxyCodeLine{600 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{601 }
\DoxyCodeLine{604 \textcolor{keyword}{class }PROJ\_GCC\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1FormattingException}{FormattingException}} : \textcolor{keyword}{public} \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1Exception}{util::Exception}} \{}
\DoxyCodeLine{605   \textcolor{keyword}{public}:}
\DoxyCodeLine{607     PROJ\_INTERNAL \textcolor{keyword}{explicit} \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1FormattingException}{FormattingException}}(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *message);}
\DoxyCodeLine{608     PROJ\_INTERNAL \textcolor{keyword}{explicit} \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1FormattingException}{FormattingException}}(\textcolor{keyword}{const} std::string \&message);}
\DoxyCodeLine{609     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1FormattingException}{FormattingException}}(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1FormattingException}{FormattingException}} \&other);}
\DoxyCodeLine{610     PROJ\_DLL \textcolor{keyword}{virtual} \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1FormattingException}{\string~FormattingException}}() \textcolor{keyword}{override};}
\DoxyCodeLine{611 }
\DoxyCodeLine{612     PROJ\_INTERNAL \textcolor{keyword}{static} \textcolor{keywordtype}{void} Throw(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *msg) PROJ\_NO\_RETURN;}
\DoxyCodeLine{613     PROJ\_INTERNAL \textcolor{keyword}{static} \textcolor{keywordtype}{void} Throw(\textcolor{keyword}{const} std::string \&msg) PROJ\_NO\_RETURN;}
\DoxyCodeLine{615 \};}
\DoxyCodeLine{616 }
\DoxyCodeLine{617 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{618 }
\DoxyCodeLine{621 \textcolor{keyword}{class }PROJ\_GCC\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1ParsingException}{ParsingException}} : \textcolor{keyword}{public} \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1Exception}{util::Exception}} \{}
\DoxyCodeLine{622   \textcolor{keyword}{public}:}
\DoxyCodeLine{624     PROJ\_INTERNAL \textcolor{keyword}{explicit} \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1ParsingException}{ParsingException}}(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *message);}
\DoxyCodeLine{625     PROJ\_INTERNAL \textcolor{keyword}{explicit} \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1ParsingException}{ParsingException}}(\textcolor{keyword}{const} std::string \&message);}
\DoxyCodeLine{626     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1ParsingException}{ParsingException}}(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1ParsingException}{ParsingException}} \&other);}
\DoxyCodeLine{627     PROJ\_DLL \textcolor{keyword}{virtual} \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1ParsingException}{\string~ParsingException}}() \textcolor{keyword}{override};}
\DoxyCodeLine{629 \};}
\DoxyCodeLine{630 }
\DoxyCodeLine{631 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{632 }
\DoxyCodeLine{634 \textcolor{keyword}{class }PROJ\_GCC\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1IWKTExportable}{IWKTExportable}} \{}
\DoxyCodeLine{635   \textcolor{keyword}{public}:}
\DoxyCodeLine{637     PROJ\_DLL \textcolor{keyword}{virtual} \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1IWKTExportable}{\string~IWKTExportable}}();}
\DoxyCodeLine{639 }
\DoxyCodeLine{641     PROJ\_DLL std::string}
\DoxyCodeLine{642     \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1IWKTExportable_a1cff37229c2159fb6bc0579e7c1190ce}{exportToWKT}}(\mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1WKTFormatter}{WKTFormatter}} *formatter) \textcolor{keyword}{const}; \textcolor{comment}{// throw(FormattingException)}}
\DoxyCodeLine{643 }
\DoxyCodeLine{644     PROJ\_PRIVATE :}
\DoxyCodeLine{645 }
\DoxyCodeLine{647         PROJ\_INTERNAL \textcolor{keyword}{virtual} \textcolor{keywordtype}{void}}
\DoxyCodeLine{648         \_exportToWKT(}
\DoxyCodeLine{649             \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1WKTFormatter}{WKTFormatter}} *formatter) \textcolor{keyword}{const} = 0; \textcolor{comment}{// throw(FormattingException)}}
\DoxyCodeLine{651 \textcolor{comment}{}\};}
\DoxyCodeLine{652 }
\DoxyCodeLine{653 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{654 }
\DoxyCodeLine{655 \textcolor{keyword}{class }\mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1IPROJStringExportable}{IPROJStringExportable}};}
\DoxyCodeLine{657 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_ae83e71c6bfa75d94969eb377fe79b71b}{IPROJStringExportablePtr}} = std::shared\_ptr<IPROJStringExportable>;}
\DoxyCodeLine{659 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_a1d1c8e11ca802fc03337bd0511512589}{IPROJStringExportableNNPtr}} = util::nn<IPROJStringExportablePtr>;}
\DoxyCodeLine{660 }
\DoxyCodeLine{662 \textcolor{keyword}{class }PROJ\_GCC\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1IPROJStringExportable}{IPROJStringExportable}} \{}
\DoxyCodeLine{663   \textcolor{keyword}{public}:}
\DoxyCodeLine{665     PROJ\_DLL \textcolor{keyword}{virtual} \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1IPROJStringExportable}{\string~IPROJStringExportable}}();}
\DoxyCodeLine{667 }
\DoxyCodeLine{707     PROJ\_DLL std::string \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1IPROJStringExportable_ab592dcf0f32ee2587a782d290aeb0638}{exportToPROJString}}(}
\DoxyCodeLine{708         \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1PROJStringFormatter}{PROJStringFormatter}} *formatter) \textcolor{keyword}{const}; \textcolor{comment}{// throw(FormattingException)}}
\DoxyCodeLine{709 }
\DoxyCodeLine{710     PROJ\_PRIVATE :}
\DoxyCodeLine{711 }
\DoxyCodeLine{713         PROJ\_INTERNAL \textcolor{keyword}{virtual} \textcolor{keywordtype}{void}}
\DoxyCodeLine{714         \_exportToPROJString(\mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1PROJStringFormatter}{PROJStringFormatter}} *formatter)}
\DoxyCodeLine{715             \textcolor{keyword}{const} = 0; \textcolor{comment}{// throw(FormattingException)}}
\DoxyCodeLine{717 \textcolor{comment}{}\};}
\DoxyCodeLine{718 }
\DoxyCodeLine{719 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{720 }
\DoxyCodeLine{723 \textcolor{keyword}{class }PROJ\_GCC\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1WKTNode}{WKTNode}} \{}
\DoxyCodeLine{724   \textcolor{keyword}{public}:}
\DoxyCodeLine{725     PROJ\_DLL \textcolor{keyword}{explicit} \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1WKTNode}{WKTNode}}(\textcolor{keyword}{const} std::string \&valueIn);}
\DoxyCodeLine{727     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1WKTNode}{\string~WKTNode}}();}
\DoxyCodeLine{729 }
\DoxyCodeLine{730     PROJ\_DLL \textcolor{keyword}{const} std::string \&value() \textcolor{keyword}{const};}
\DoxyCodeLine{731     PROJ\_DLL \textcolor{keyword}{const} std::vector<WKTNodeNNPtr> \&children() \textcolor{keyword}{const};}
\DoxyCodeLine{732 }
\DoxyCodeLine{733     PROJ\_DLL \textcolor{keywordtype}{void} addChild(\mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_a0d7db6c3ecf8d65414061530289f4d8b}{WKTNodeNNPtr}} \&\&child);}
\DoxyCodeLine{734     PROJ\_DLL \textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_a5dc6e0362ef50a2272a337cde9ee3628}{WKTNodePtr}} \&lookForChild(\textcolor{keyword}{const} std::string \&childName,}
\DoxyCodeLine{735                                             \textcolor{keywordtype}{int} occurrence = 0) \textcolor{keyword}{const} \textcolor{keyword}{noexcept};}
\DoxyCodeLine{736     PROJ\_DLL \textcolor{keywordtype}{int}}
\DoxyCodeLine{737     countChildrenOfName(\textcolor{keyword}{const} std::string \&childName) \textcolor{keyword}{const} \textcolor{keyword}{noexcept};}
\DoxyCodeLine{738 }
\DoxyCodeLine{739     PROJ\_DLL std::string toString() \textcolor{keyword}{const};}
\DoxyCodeLine{740 }
\DoxyCodeLine{741     PROJ\_DLL \textcolor{keyword}{static} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_a0d7db6c3ecf8d65414061530289f4d8b}{WKTNodeNNPtr}} createFrom(\textcolor{keyword}{const} std::string \&wkt,}
\DoxyCodeLine{742                                             \textcolor{keywordtype}{size\_t} indexStart = 0);}
\DoxyCodeLine{743 }
\DoxyCodeLine{744   \textcolor{keyword}{protected}:}
\DoxyCodeLine{745     PROJ\_INTERNAL \textcolor{keyword}{static} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_a0d7db6c3ecf8d65414061530289f4d8b}{WKTNodeNNPtr}}}
\DoxyCodeLine{746     createFrom(\textcolor{keyword}{const} std::string \&wkt, \textcolor{keywordtype}{size\_t} indexStart, \textcolor{keywordtype}{int} recLevel,}
\DoxyCodeLine{747                \textcolor{keywordtype}{size\_t} \&indexEnd); \textcolor{comment}{// throw(ParsingException)}}
\DoxyCodeLine{748 }
\DoxyCodeLine{749   \textcolor{keyword}{private}:}
\DoxyCodeLine{750     \textcolor{keyword}{friend} \textcolor{keyword}{class }\mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1WKTParser}{WKTParser}};}
\DoxyCodeLine{751     PROJ\_OPAQUE\_PRIVATE\_DATA}
\DoxyCodeLine{752 \};}
\DoxyCodeLine{753 }
\DoxyCodeLine{754 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{755 }
\DoxyCodeLine{756 PROJ\_DLL \mbox{\hyperlink{structosgeo_1_1proj_1_1util_1_1BaseObjectNNPtr}{util::BaseObjectNNPtr}}}
\DoxyCodeLine{757 \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_a9ef8f5d0591fa9605b385f8b56ddff0e}{createFromUserInput}}(\textcolor{keyword}{const} std::string \&text,}
\DoxyCodeLine{758                     \textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_ac071e92c14195058e37bcd4c7b75b42f}{DatabaseContextPtr}} \&dbContext,}
\DoxyCodeLine{759                     \textcolor{keywordtype}{bool} usePROJ4InitRules = \textcolor{keyword}{false});}
\DoxyCodeLine{760 }
\DoxyCodeLine{761 PROJ\_DLL \mbox{\hyperlink{structosgeo_1_1proj_1_1util_1_1BaseObjectNNPtr}{util::BaseObjectNNPtr}} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_a9ef8f5d0591fa9605b385f8b56ddff0e}{createFromUserInput}}(\textcolor{keyword}{const} std::string \&text,}
\DoxyCodeLine{762                                                    PJ\_CONTEXT *ctx);}
\DoxyCodeLine{763 }
\DoxyCodeLine{764 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{765 }
\DoxyCodeLine{768 \textcolor{keyword}{class }PROJ\_GCC\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1WKTParser}{WKTParser}} \{}
\DoxyCodeLine{769   \textcolor{keyword}{public}:}
\DoxyCodeLine{770     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1WKTParser}{WKTParser}}();}
\DoxyCodeLine{772     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1WKTParser}{\string~WKTParser}}();}
\DoxyCodeLine{774 }
\DoxyCodeLine{775     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1WKTParser}{WKTParser}} \&}
\DoxyCodeLine{776     attachDatabaseContext(\textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_ac071e92c14195058e37bcd4c7b75b42f}{DatabaseContextPtr}} \&dbContext);}
\DoxyCodeLine{777 }
\DoxyCodeLine{778     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1WKTParser}{WKTParser}} \&setStrict(\textcolor{keywordtype}{bool} strict);}
\DoxyCodeLine{779     PROJ\_DLL std::list<std::string> warningList() \textcolor{keyword}{const};}
\DoxyCodeLine{780 }
\DoxyCodeLine{781     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1WKTParser}{WKTParser}} \&setUnsetIdentifiersIfIncompatibleDef(\textcolor{keywordtype}{bool} unset);}
\DoxyCodeLine{782 }
\DoxyCodeLine{783     PROJ\_DLL \mbox{\hyperlink{structosgeo_1_1proj_1_1util_1_1BaseObjectNNPtr}{util::BaseObjectNNPtr}}}
\DoxyCodeLine{784     createFromWKT(\textcolor{keyword}{const} std::string \&wkt); \textcolor{comment}{// throw(ParsingException)}}
\DoxyCodeLine{785 }
\DoxyCodeLine{787     \textcolor{keyword}{enum class} PROJ\_MSVC\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1WKTParser_a021718896a1e698fbe4c14bb62292eb3}{WKTGuessedDialect}} \{}
\DoxyCodeLine{789         WKT2\_2019,}
\DoxyCodeLine{791         WKT2\_2018 = WKT2\_2019,}
\DoxyCodeLine{793         WKT2\_2015,}
\DoxyCodeLine{795         WKT1\_GDAL,}
\DoxyCodeLine{797         WKT1\_ESRI,}
\DoxyCodeLine{799         NOT\_WKT}
\DoxyCodeLine{800     \};}
\DoxyCodeLine{801 }
\DoxyCodeLine{802     \textcolor{comment}{// cppcheck-\/suppress functionStatic}}
\DoxyCodeLine{803     PROJ\_DLL WKTGuessedDialect guessDialect(\textcolor{keyword}{const} std::string \&wkt) \textcolor{keyword}{noexcept};}
\DoxyCodeLine{804 }
\DoxyCodeLine{805   \textcolor{keyword}{private}:}
\DoxyCodeLine{806     PROJ\_OPAQUE\_PRIVATE\_DATA}
\DoxyCodeLine{807 \};}
\DoxyCodeLine{808 }
\DoxyCodeLine{809 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{810 }
\DoxyCodeLine{814 \textcolor{keyword}{class }PROJ\_GCC\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1PROJStringParser}{PROJStringParser}} \{}
\DoxyCodeLine{815   \textcolor{keyword}{public}:}
\DoxyCodeLine{816     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1PROJStringParser}{PROJStringParser}}();}
\DoxyCodeLine{818     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1PROJStringParser}{\string~PROJStringParser}}();}
\DoxyCodeLine{820 }
\DoxyCodeLine{821     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1PROJStringParser}{PROJStringParser}} \&}
\DoxyCodeLine{822     attachDatabaseContext(\textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_ac071e92c14195058e37bcd4c7b75b42f}{DatabaseContextPtr}} \&dbContext);}
\DoxyCodeLine{823 }
\DoxyCodeLine{824     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1PROJStringParser}{PROJStringParser}} \&setUsePROJ4InitRules(\textcolor{keywordtype}{bool} enable);}
\DoxyCodeLine{825 }
\DoxyCodeLine{826     PROJ\_DLL std::vector<std::string> warningList() \textcolor{keyword}{const};}
\DoxyCodeLine{827 }
\DoxyCodeLine{828     PROJ\_DLL \mbox{\hyperlink{structosgeo_1_1proj_1_1util_1_1BaseObjectNNPtr}{util::BaseObjectNNPtr}} createFromPROJString(}
\DoxyCodeLine{829         \textcolor{keyword}{const} std::string \&projString); \textcolor{comment}{// throw(ParsingException)}}
\DoxyCodeLine{830 }
\DoxyCodeLine{831     PROJ\_PRIVATE :}
\DoxyCodeLine{833         \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1PROJStringParser}{PROJStringParser}} \&}
\DoxyCodeLine{834         attachContext(PJ\_CONTEXT *ctx);}
\DoxyCodeLine{836   \textcolor{keyword}{private}:}
\DoxyCodeLine{837     PROJ\_OPAQUE\_PRIVATE\_DATA}
\DoxyCodeLine{838 \};}
\DoxyCodeLine{839 }
\DoxyCodeLine{840 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{841 }
\DoxyCodeLine{846 \textcolor{keyword}{class }PROJ\_GCC\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1DatabaseContext}{DatabaseContext}} \{}
\DoxyCodeLine{847   \textcolor{keyword}{public}:}
\DoxyCodeLine{849     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1DatabaseContext}{\string~DatabaseContext}}();}
\DoxyCodeLine{851 }
\DoxyCodeLine{852     PROJ\_DLL \textcolor{keyword}{static} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_a776e066c227b9607a8c8e9e356bb9c40}{DatabaseContextNNPtr}}}
\DoxyCodeLine{853     create(\textcolor{keyword}{const} std::string \&databasePath = std::string(),}
\DoxyCodeLine{854            \textcolor{keyword}{const} std::vector<std::string> \&auxiliaryDatabasePaths =}
\DoxyCodeLine{855                std::vector<std::string>(),}
\DoxyCodeLine{856            PJ\_CONTEXT *ctx = \textcolor{keyword}{nullptr});}
\DoxyCodeLine{857 }
\DoxyCodeLine{858     PROJ\_DLL \textcolor{keyword}{const} std::string \&getPath() \textcolor{keyword}{const};}
\DoxyCodeLine{859 }
\DoxyCodeLine{860     PROJ\_DLL \textcolor{keyword}{const} \textcolor{keywordtype}{char} *getMetadata(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *key) \textcolor{keyword}{const};}
\DoxyCodeLine{861 }
\DoxyCodeLine{862     PROJ\_DLL std::set<std::string> getAuthorities() \textcolor{keyword}{const};}
\DoxyCodeLine{863 }
\DoxyCodeLine{864     PROJ\_DLL std::vector<std::string> getDatabaseStructure() \textcolor{keyword}{const};}
\DoxyCodeLine{865 }
\DoxyCodeLine{866     PROJ\_DLL \textcolor{keywordtype}{void} startInsertStatementsSession();}
\DoxyCodeLine{867 }
\DoxyCodeLine{868     PROJ\_DLL std::string}
\DoxyCodeLine{869     suggestsCodeFor(\textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1common_ada5c6f6eed30d72e1849e5aa583e2e99}{common::IdentifiedObjectNNPtr}} \&\textcolor{keywordtype}{object},}
\DoxyCodeLine{870                     \textcolor{keyword}{const} std::string \&authName, \textcolor{keywordtype}{bool} numericCode);}
\DoxyCodeLine{871 }
\DoxyCodeLine{872     PROJ\_DLL std::vector<std::string> getInsertStatementsFor(}
\DoxyCodeLine{873         \textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1common_ada5c6f6eed30d72e1849e5aa583e2e99}{common::IdentifiedObjectNNPtr}} \&\textcolor{keywordtype}{object},}
\DoxyCodeLine{874         \textcolor{keyword}{const} std::string \&authName, \textcolor{keyword}{const} std::string \&code, \textcolor{keywordtype}{bool} numericCode,}
\DoxyCodeLine{875         \textcolor{keyword}{const} std::vector<std::string> \&allowedAuthorities = \{\textcolor{stringliteral}{"{}EPSG"{}}, \textcolor{stringliteral}{"{}PROJ"{}}\});}
\DoxyCodeLine{876 }
\DoxyCodeLine{877     PROJ\_DLL \textcolor{keywordtype}{void} stopInsertStatementsSession();}
\DoxyCodeLine{878 }
\DoxyCodeLine{879     PROJ\_PRIVATE :}
\DoxyCodeLine{881         PROJ\_DLL \textcolor{keywordtype}{void} *}
\DoxyCodeLine{882         getSqliteHandle() \textcolor{keyword}{const};}
\DoxyCodeLine{883 }
\DoxyCodeLine{884     PROJ\_DLL \textcolor{keyword}{static} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_a776e066c227b9607a8c8e9e356bb9c40}{DatabaseContextNNPtr}} create(\textcolor{keywordtype}{void} *sqlite\_handle);}
\DoxyCodeLine{885 }
\DoxyCodeLine{886     PROJ\_INTERNAL \textcolor{keywordtype}{bool} lookForGridAlternative(\textcolor{keyword}{const} std::string \&officialName,}
\DoxyCodeLine{887                                               std::string \&projFilename,}
\DoxyCodeLine{888                                               std::string \&projFormat,}
\DoxyCodeLine{889                                               \textcolor{keywordtype}{bool} \&inverse) \textcolor{keyword}{const};}
\DoxyCodeLine{890 }
\DoxyCodeLine{891     PROJ\_DLL \textcolor{keywordtype}{bool} lookForGridInfo(\textcolor{keyword}{const} std::string \&projFilename,}
\DoxyCodeLine{892                                   \textcolor{keywordtype}{bool} considerKnownGridsAsAvailable,}
\DoxyCodeLine{893                                   std::string \&fullFilename,}
\DoxyCodeLine{894                                   std::string \&packageName, std::string \&url,}
\DoxyCodeLine{895                                   \textcolor{keywordtype}{bool} \&directDownload, \textcolor{keywordtype}{bool} \&openLicense,}
\DoxyCodeLine{896                                   \textcolor{keywordtype}{bool} \&gridAvailable) \textcolor{keyword}{const};}
\DoxyCodeLine{897 }
\DoxyCodeLine{898     PROJ\_INTERNAL std::string}
\DoxyCodeLine{899     getProjGridName(\textcolor{keyword}{const} std::string \&oldProjGridName);}
\DoxyCodeLine{900 }
\DoxyCodeLine{901     PROJ\_INTERNAL std::string getOldProjGridName(\textcolor{keyword}{const} std::string \&gridName);}
\DoxyCodeLine{902 }
\DoxyCodeLine{903     PROJ\_INTERNAL std::string}
\DoxyCodeLine{904     getAliasFromOfficialName(\textcolor{keyword}{const} std::string \&officialName,}
\DoxyCodeLine{905                              \textcolor{keyword}{const} std::string \&tableName,}
\DoxyCodeLine{906                              \textcolor{keyword}{const} std::string \&source) \textcolor{keyword}{const};}
\DoxyCodeLine{907 }
\DoxyCodeLine{908     PROJ\_INTERNAL std::list<std::string>}
\DoxyCodeLine{909     getAliases(\textcolor{keyword}{const} std::string \&authName, \textcolor{keyword}{const} std::string \&code,}
\DoxyCodeLine{910                \textcolor{keyword}{const} std::string \&officialName, \textcolor{keyword}{const} std::string \&tableName,}
\DoxyCodeLine{911                \textcolor{keyword}{const} std::string \&source) \textcolor{keyword}{const};}
\DoxyCodeLine{912 }
\DoxyCodeLine{913     PROJ\_INTERNAL \textcolor{keywordtype}{bool} isKnownName(\textcolor{keyword}{const} std::string \&name,}
\DoxyCodeLine{914                                    \textcolor{keyword}{const} std::string \&tableName) \textcolor{keyword}{const};}
\DoxyCodeLine{915 }
\DoxyCodeLine{916     PROJ\_INTERNAL std::string getName(\textcolor{keyword}{const} std::string \&tableName,}
\DoxyCodeLine{917                                       \textcolor{keyword}{const} std::string \&authName,}
\DoxyCodeLine{918                                       \textcolor{keyword}{const} std::string \&code) \textcolor{keyword}{const};}
\DoxyCodeLine{919 }
\DoxyCodeLine{920     PROJ\_INTERNAL std::string getTextDefinition(\textcolor{keyword}{const} std::string \&tableName,}
\DoxyCodeLine{921                                                 \textcolor{keyword}{const} std::string \&authName,}
\DoxyCodeLine{922                                                 \textcolor{keyword}{const} std::string \&code) \textcolor{keyword}{const};}
\DoxyCodeLine{923 }
\DoxyCodeLine{924     PROJ\_INTERNAL std::vector<std::string>}
\DoxyCodeLine{925     getAllowedAuthorities(\textcolor{keyword}{const} std::string \&sourceAuthName,}
\DoxyCodeLine{926                           \textcolor{keyword}{const} std::string \&targetAuthName) \textcolor{keyword}{const};}
\DoxyCodeLine{927 }
\DoxyCodeLine{928     PROJ\_INTERNAL std::list<std::pair<std::string, std::string>>}
\DoxyCodeLine{929     getNonDeprecated(\textcolor{keyword}{const} std::string \&tableName, \textcolor{keyword}{const} std::string \&authName,}
\DoxyCodeLine{930                      \textcolor{keyword}{const} std::string \&code) \textcolor{keyword}{const};}
\DoxyCodeLine{931 }
\DoxyCodeLine{932     PROJ\_INTERNAL \textcolor{keyword}{static} std::vector<operation::CoordinateOperationNNPtr>}
\DoxyCodeLine{933     getTransformationsForGridName(\textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_a776e066c227b9607a8c8e9e356bb9c40}{DatabaseContextNNPtr}} \&databaseContext,}
\DoxyCodeLine{934                                   \textcolor{keyword}{const} std::string \&gridName);}
\DoxyCodeLine{935 }
\DoxyCodeLine{936     PROJ\_INTERNAL \textcolor{keywordtype}{bool}}
\DoxyCodeLine{937     getAuthorityAndVersion(\textcolor{keyword}{const} std::string \&versionedAuthName,}
\DoxyCodeLine{938                            std::string \&authNameOut, std::string \&versionOut);}
\DoxyCodeLine{939 }
\DoxyCodeLine{940     PROJ\_INTERNAL \textcolor{keywordtype}{bool} getVersionedAuthority(\textcolor{keyword}{const} std::string \&authName,}
\DoxyCodeLine{941                                              \textcolor{keyword}{const} std::string \&version,}
\DoxyCodeLine{942                                              std::string \&versionedAuthNameOut);}
\DoxyCodeLine{943 }
\DoxyCodeLine{944     PROJ\_DLL std::vector<std::string>}
\DoxyCodeLine{945     getVersionedAuthoritiesFromName(\textcolor{keyword}{const} std::string \&authName);}
\DoxyCodeLine{946 }
\DoxyCodeLine{948 }
\DoxyCodeLine{949   \textcolor{keyword}{protected}:}
\DoxyCodeLine{950     PROJ\_INTERNAL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1DatabaseContext}{DatabaseContext}}();}
\DoxyCodeLine{951     INLINED\_MAKE\_SHARED}
\DoxyCodeLine{952     PROJ\_FRIEND(\mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1AuthorityFactory}{AuthorityFactory}});}
\DoxyCodeLine{953 }
\DoxyCodeLine{954   \textcolor{keyword}{private}:}
\DoxyCodeLine{955     PROJ\_OPAQUE\_PRIVATE\_DATA}
\DoxyCodeLine{956     \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1DatabaseContext}{DatabaseContext}}(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1DatabaseContext}{DatabaseContext}} \&) = \textcolor{keyword}{delete};}
\DoxyCodeLine{957     \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1DatabaseContext}{DatabaseContext}} \&operator=(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1DatabaseContext}{DatabaseContext}} \&other) = \textcolor{keyword}{delete};}
\DoxyCodeLine{958 \};}
\DoxyCodeLine{959 }
\DoxyCodeLine{960 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{961 }
\DoxyCodeLine{962 \textcolor{keyword}{class }\mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1AuthorityFactory}{AuthorityFactory}};}
\DoxyCodeLine{964 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_a6700bf116007d342bc35655d54d4c437}{AuthorityFactoryPtr}} = std::shared\_ptr<AuthorityFactory>;}
\DoxyCodeLine{966 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_ad1cb39ac0f726c072252289361ef8ff3}{AuthorityFactoryNNPtr}} = util::nn<AuthorityFactoryPtr>;}
\DoxyCodeLine{967 }
\DoxyCodeLine{976 \textcolor{keyword}{class }PROJ\_GCC\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1AuthorityFactory}{AuthorityFactory}} \{}
\DoxyCodeLine{977   \textcolor{keyword}{public}:}
\DoxyCodeLine{979     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1AuthorityFactory}{\string~AuthorityFactory}}();}
\DoxyCodeLine{981 }
\DoxyCodeLine{982     PROJ\_DLL \mbox{\hyperlink{structosgeo_1_1proj_1_1util_1_1BaseObjectNNPtr}{util::BaseObjectNNPtr}} createObject(\textcolor{keyword}{const} std::string \&code) \textcolor{keyword}{const};}
\DoxyCodeLine{983 }
\DoxyCodeLine{984     PROJ\_DLL \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1common_abd72c7d84f852c41c7c2a528f8fa1d62}{common::UnitOfMeasureNNPtr}}}
\DoxyCodeLine{985     createUnitOfMeasure(\textcolor{keyword}{const} std::string \&code) \textcolor{keyword}{const};}
\DoxyCodeLine{986 }
\DoxyCodeLine{987     PROJ\_DLL \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_af1a3c8cdeaecefe3e24f6d6b88b084f3}{metadata::ExtentNNPtr}} createExtent(\textcolor{keyword}{const} std::string \&code) \textcolor{keyword}{const};}
\DoxyCodeLine{988 }
\DoxyCodeLine{989     PROJ\_DLL \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1datum_a76bc5ddc1fa027bbab2da81f5ae8196a}{datum::PrimeMeridianNNPtr}}}
\DoxyCodeLine{990     createPrimeMeridian(\textcolor{keyword}{const} std::string \&code) \textcolor{keyword}{const};}
\DoxyCodeLine{991 }
\DoxyCodeLine{992     PROJ\_DLL std::string identifyBodyFromSemiMajorAxis(\textcolor{keywordtype}{double} a,}
\DoxyCodeLine{993                                                        \textcolor{keywordtype}{double} tolerance) \textcolor{keyword}{const};}
\DoxyCodeLine{994 }
\DoxyCodeLine{995     PROJ\_DLL \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1datum_a04467b887cbd29d5e07a05c9479f653a}{datum::EllipsoidNNPtr}}}
\DoxyCodeLine{996     createEllipsoid(\textcolor{keyword}{const} std::string \&code) \textcolor{keyword}{const};}
\DoxyCodeLine{997 }
\DoxyCodeLine{998     PROJ\_DLL \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1datum_af9a3371a86865700c9d617743f7f1932}{datum::DatumNNPtr}} createDatum(\textcolor{keyword}{const} std::string \&code) \textcolor{keyword}{const};}
\DoxyCodeLine{999 }
\DoxyCodeLine{1000     PROJ\_DLL \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1datum_a7c3a13cb1c510aae0c4ca57985a84067}{datum::DatumEnsembleNNPtr}}}
\DoxyCodeLine{1001     createDatumEnsemble(\textcolor{keyword}{const} std::string \&code,}
\DoxyCodeLine{1002                         \textcolor{keyword}{const} std::string \&type = std::string()) \textcolor{keyword}{const};}
\DoxyCodeLine{1003 }
\DoxyCodeLine{1004     PROJ\_DLL \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1datum_a20e65946290b56257dc34c204287107f}{datum::GeodeticReferenceFrameNNPtr}}}
\DoxyCodeLine{1005     createGeodeticDatum(\textcolor{keyword}{const} std::string \&code) \textcolor{keyword}{const};}
\DoxyCodeLine{1006 }
\DoxyCodeLine{1007     PROJ\_DLL \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1datum_af502d3b268b44aa5325b489a26e8f6a7}{datum::VerticalReferenceFrameNNPtr}}}
\DoxyCodeLine{1008     createVerticalDatum(\textcolor{keyword}{const} std::string \&code) \textcolor{keyword}{const};}
\DoxyCodeLine{1009 }
\DoxyCodeLine{1010     PROJ\_DLL \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1cs_aad7f9f4fbc0234c98f447c74037c50b4}{cs::CoordinateSystemNNPtr}}}
\DoxyCodeLine{1011     createCoordinateSystem(\textcolor{keyword}{const} std::string \&code) \textcolor{keyword}{const};}
\DoxyCodeLine{1012 }
\DoxyCodeLine{1013     PROJ\_DLL \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a853cc8ce6a9586cf08f48ab058f0ff3e}{crs::GeodeticCRSNNPtr}}}
\DoxyCodeLine{1014     createGeodeticCRS(\textcolor{keyword}{const} std::string \&code) \textcolor{keyword}{const};}
\DoxyCodeLine{1015 }
\DoxyCodeLine{1016     PROJ\_DLL \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a95429910f6055b29fa53181cac2557ab}{crs::GeographicCRSNNPtr}}}
\DoxyCodeLine{1017     createGeographicCRS(\textcolor{keyword}{const} std::string \&code) \textcolor{keyword}{const};}
\DoxyCodeLine{1018 }
\DoxyCodeLine{1019     PROJ\_DLL \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_ab9fe189646e058eda1e7dd16edf16468}{crs::VerticalCRSNNPtr}}}
\DoxyCodeLine{1020     createVerticalCRS(\textcolor{keyword}{const} std::string \&code) \textcolor{keyword}{const};}
\DoxyCodeLine{1021 }
\DoxyCodeLine{1022     PROJ\_DLL \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a4cec974a8b9f98f8567889e5ad653f5c}{operation::ConversionNNPtr}}}
\DoxyCodeLine{1023     createConversion(\textcolor{keyword}{const} std::string \&code) \textcolor{keyword}{const};}
\DoxyCodeLine{1024 }
\DoxyCodeLine{1025     PROJ\_DLL \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a474c5a3d69a0c2f1e16aa1e78022a8fd}{crs::ProjectedCRSNNPtr}}}
\DoxyCodeLine{1026     createProjectedCRS(\textcolor{keyword}{const} std::string \&code) \textcolor{keyword}{const};}
\DoxyCodeLine{1027 }
\DoxyCodeLine{1028     PROJ\_DLL \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a5a4f97e589c9601364645cb31b90447e}{crs::CompoundCRSNNPtr}}}
\DoxyCodeLine{1029     createCompoundCRS(\textcolor{keyword}{const} std::string \&code) \textcolor{keyword}{const};}
\DoxyCodeLine{1030 }
\DoxyCodeLine{1031     PROJ\_DLL \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a8cabf171d097255fb43d0ceb916c815c}{crs::CRSNNPtr}}}
\DoxyCodeLine{1032     createCoordinateReferenceSystem(\textcolor{keyword}{const} std::string \&code) \textcolor{keyword}{const};}
\DoxyCodeLine{1033 }
\DoxyCodeLine{1034     PROJ\_DLL \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a1b1238e3c3bfa1271bfecce940e77f13}{operation::CoordinateOperationNNPtr}}}
\DoxyCodeLine{1035     createCoordinateOperation(\textcolor{keyword}{const} std::string \&code,}
\DoxyCodeLine{1036                               \textcolor{keywordtype}{bool} usePROJAlternativeGridNames) \textcolor{keyword}{const};}
\DoxyCodeLine{1037 }
\DoxyCodeLine{1038     PROJ\_DLL std::vector<operation::CoordinateOperationNNPtr>}
\DoxyCodeLine{1039     createFromCoordinateReferenceSystemCodes(}
\DoxyCodeLine{1040         \textcolor{keyword}{const} std::string \&sourceCRSCode,}
\DoxyCodeLine{1041         \textcolor{keyword}{const} std::string \&targetCRSCode) \textcolor{keyword}{const};}
\DoxyCodeLine{1042 }
\DoxyCodeLine{1043     PROJ\_DLL std::list<std::string>}
\DoxyCodeLine{1044     getGeoidModels(\textcolor{keyword}{const} std::string \&code) \textcolor{keyword}{const};}
\DoxyCodeLine{1045 }
\DoxyCodeLine{1046     PROJ\_DLL \textcolor{keyword}{const} std::string \&getAuthority() PROJ\_PURE\_DECL;}
\DoxyCodeLine{1047 }
\DoxyCodeLine{1049     \textcolor{keyword}{enum class} \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1AuthorityFactory_aed171a7eb6fa46917aafaae9deeb2c84}{ObjectType}} \{}
\DoxyCodeLine{1051         PRIME\_MERIDIAN,}
\DoxyCodeLine{1053         ELLIPSOID,}
\DoxyCodeLine{1055         DATUM,}
\DoxyCodeLine{1058         GEODETIC\_REFERENCE\_FRAME,}
\DoxyCodeLine{1061         VERTICAL\_REFERENCE\_FRAME,}
\DoxyCodeLine{1063         CRS,}
\DoxyCodeLine{1065         GEODETIC\_CRS,}
\DoxyCodeLine{1067         GEOCENTRIC\_CRS,}
\DoxyCodeLine{1069         GEOGRAPHIC\_CRS,}
\DoxyCodeLine{1071         GEOGRAPHIC\_2D\_CRS,}
\DoxyCodeLine{1073         GEOGRAPHIC\_3D\_CRS,}
\DoxyCodeLine{1075         PROJECTED\_CRS,}
\DoxyCodeLine{1077         VERTICAL\_CRS,}
\DoxyCodeLine{1079         COMPOUND\_CRS,}
\DoxyCodeLine{1082         COORDINATE\_OPERATION,}
\DoxyCodeLine{1084         CONVERSION,}
\DoxyCodeLine{1087         TRANSFORMATION,}
\DoxyCodeLine{1090         CONCATENATED\_OPERATION,}
\DoxyCodeLine{1092         DYNAMIC\_GEODETIC\_REFERENCE\_FRAME,}
\DoxyCodeLine{1094         DYNAMIC\_VERTICAL\_REFERENCE\_FRAME,}
\DoxyCodeLine{1096         DATUM\_ENSEMBLE,}
\DoxyCodeLine{1097     \};}
\DoxyCodeLine{1098 }
\DoxyCodeLine{1099     PROJ\_DLL std::set<std::string>}
\DoxyCodeLine{1100     getAuthorityCodes(\textcolor{keyword}{const} ObjectType \&type,}
\DoxyCodeLine{1101                       \textcolor{keywordtype}{bool} allowDeprecated = \textcolor{keyword}{true}) \textcolor{keyword}{const};}
\DoxyCodeLine{1102 }
\DoxyCodeLine{1103     PROJ\_DLL std::string getDescriptionText(\textcolor{keyword}{const} std::string \&code) \textcolor{keyword}{const};}
\DoxyCodeLine{1104 }
\DoxyCodeLine{1105     \textcolor{comment}{// non-\/standard}}
\DoxyCodeLine{1106 }
\DoxyCodeLine{1108     \textcolor{keyword}{struct }\mbox{\hyperlink{structosgeo_1_1proj_1_1io_1_1AuthorityFactory_1_1CRSInfo}{CRSInfo}} \{}
\DoxyCodeLine{1110         std::string \mbox{\hyperlink{structosgeo_1_1proj_1_1io_1_1AuthorityFactory_1_1CRSInfo_ac740eb1c6514b0fb5e2a8d8a71babbd1}{authName}};}
\DoxyCodeLine{1112         std::string \mbox{\hyperlink{structosgeo_1_1proj_1_1io_1_1AuthorityFactory_1_1CRSInfo_a52b5eb178a15c167a52c7b552bda9271}{code}};}
\DoxyCodeLine{1114         std::string \mbox{\hyperlink{structosgeo_1_1proj_1_1io_1_1AuthorityFactory_1_1CRSInfo_a5f6e9c867ce5a44bdb606d229d60d997}{name}};}
\DoxyCodeLine{1116         \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1AuthorityFactory_aed171a7eb6fa46917aafaae9deeb2c84}{ObjectType}} \mbox{\hyperlink{structosgeo_1_1proj_1_1io_1_1AuthorityFactory_1_1CRSInfo_a908c7cfece7920ea3c2c78ce8ab68ee9}{type}};}
\DoxyCodeLine{1118         \textcolor{keywordtype}{bool} \mbox{\hyperlink{structosgeo_1_1proj_1_1io_1_1AuthorityFactory_1_1CRSInfo_a7255e42c4b707e0d63f9cd7639bb504d}{deprecated}};}
\DoxyCodeLine{1121         \textcolor{keywordtype}{bool} \mbox{\hyperlink{structosgeo_1_1proj_1_1io_1_1AuthorityFactory_1_1CRSInfo_ab1c2fa35142e627c8f3e60190be4d179}{bbox\_valid}};}
\DoxyCodeLine{1123         \textcolor{keywordtype}{double} \mbox{\hyperlink{structosgeo_1_1proj_1_1io_1_1AuthorityFactory_1_1CRSInfo_a62b62e92932df4412d85733683c60600}{west\_lon\_degree}};}
\DoxyCodeLine{1125         \textcolor{keywordtype}{double} \mbox{\hyperlink{structosgeo_1_1proj_1_1io_1_1AuthorityFactory_1_1CRSInfo_a0b7302bb08107db4b731b969a9f0a328}{south\_lat\_degree}};}
\DoxyCodeLine{1127         \textcolor{keywordtype}{double} \mbox{\hyperlink{structosgeo_1_1proj_1_1io_1_1AuthorityFactory_1_1CRSInfo_ae9bf5de57a4885a154f8f6aa8073b15d}{east\_lon\_degree}};}
\DoxyCodeLine{1129         \textcolor{keywordtype}{double} \mbox{\hyperlink{structosgeo_1_1proj_1_1io_1_1AuthorityFactory_1_1CRSInfo_ac69f1b5e92396bfd9e1317b6a4e343d6}{north\_lat\_degree}};}
\DoxyCodeLine{1131         std::string \mbox{\hyperlink{structosgeo_1_1proj_1_1io_1_1AuthorityFactory_1_1CRSInfo_a87076e65709091de8f41c4e53567c9ab}{areaName}};}
\DoxyCodeLine{1134         std::string \mbox{\hyperlink{structosgeo_1_1proj_1_1io_1_1AuthorityFactory_1_1CRSInfo_a949c057d99ed1142da7095394eb1bdab}{projectionMethodName}};}
\DoxyCodeLine{1136         std::string \mbox{\hyperlink{structosgeo_1_1proj_1_1io_1_1AuthorityFactory_1_1CRSInfo_a8d55d4c706479fa028f9309bbd780868}{celestialBodyName}};}
\DoxyCodeLine{1137 }
\DoxyCodeLine{1139         \mbox{\hyperlink{structosgeo_1_1proj_1_1io_1_1AuthorityFactory_1_1CRSInfo}{CRSInfo}}();}
\DoxyCodeLine{1141     \};}
\DoxyCodeLine{1142 }
\DoxyCodeLine{1143     PROJ\_DLL std::list<CRSInfo> getCRSInfoList() \textcolor{keyword}{const};}
\DoxyCodeLine{1144 }
\DoxyCodeLine{1146     \textcolor{keyword}{struct }\mbox{\hyperlink{structosgeo_1_1proj_1_1io_1_1AuthorityFactory_1_1UnitInfo}{UnitInfo}} \{}
\DoxyCodeLine{1148         std::string \mbox{\hyperlink{structosgeo_1_1proj_1_1io_1_1AuthorityFactory_1_1UnitInfo_a5b7f91d029195ce6fbf575832e8954dc}{authName}};}
\DoxyCodeLine{1150         std::string \mbox{\hyperlink{structosgeo_1_1proj_1_1io_1_1AuthorityFactory_1_1UnitInfo_a8f2a8b280d23fb6d9f2365d0fdc76de4}{code}};}
\DoxyCodeLine{1152         std::string \mbox{\hyperlink{structosgeo_1_1proj_1_1io_1_1AuthorityFactory_1_1UnitInfo_ab4500d0c184ace444a4fb07faa911ec6}{name}};}
\DoxyCodeLine{1155         std::string \mbox{\hyperlink{structosgeo_1_1proj_1_1io_1_1AuthorityFactory_1_1UnitInfo_a812b96391706045439922c1698a95238}{category}};}
\DoxyCodeLine{1159         \textcolor{keywordtype}{double} \mbox{\hyperlink{structosgeo_1_1proj_1_1io_1_1AuthorityFactory_1_1UnitInfo_ac771b368eac73c2c28762a33f384a0d3}{convFactor}};}
\DoxyCodeLine{1161         std::string \mbox{\hyperlink{structosgeo_1_1proj_1_1io_1_1AuthorityFactory_1_1UnitInfo_a286b6ce3af84ca4c118d7936d30a3b01}{projShortName}};}
\DoxyCodeLine{1163         \textcolor{keywordtype}{bool} \mbox{\hyperlink{structosgeo_1_1proj_1_1io_1_1AuthorityFactory_1_1UnitInfo_a3594321f2dff13ba92acb655331163fa}{deprecated}};}
\DoxyCodeLine{1164 }
\DoxyCodeLine{1166         \mbox{\hyperlink{structosgeo_1_1proj_1_1io_1_1AuthorityFactory_1_1UnitInfo}{UnitInfo}}();}
\DoxyCodeLine{1168     \};}
\DoxyCodeLine{1169 }
\DoxyCodeLine{1170     PROJ\_DLL std::list<UnitInfo> getUnitList() \textcolor{keyword}{const};}
\DoxyCodeLine{1171 }
\DoxyCodeLine{1173     \textcolor{keyword}{struct }\mbox{\hyperlink{structosgeo_1_1proj_1_1io_1_1AuthorityFactory_1_1CelestialBodyInfo}{CelestialBodyInfo}} \{}
\DoxyCodeLine{1175         std::string \mbox{\hyperlink{structosgeo_1_1proj_1_1io_1_1AuthorityFactory_1_1CelestialBodyInfo_a6bc491191b0a12faf601f2bd9c2e7e43}{authName}};}
\DoxyCodeLine{1177         std::string \mbox{\hyperlink{structosgeo_1_1proj_1_1io_1_1AuthorityFactory_1_1CelestialBodyInfo_aa662a9039f5b1255e3a7028b9e6be60c}{name}};}
\DoxyCodeLine{1179         \mbox{\hyperlink{structosgeo_1_1proj_1_1io_1_1AuthorityFactory_1_1CelestialBodyInfo}{CelestialBodyInfo}}();}
\DoxyCodeLine{1181     \};}
\DoxyCodeLine{1182 }
\DoxyCodeLine{1183     PROJ\_DLL std::list<CelestialBodyInfo> getCelestialBodyList() \textcolor{keyword}{const};}
\DoxyCodeLine{1184 }
\DoxyCodeLine{1185     PROJ\_DLL \textcolor{keyword}{static} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_ad1cb39ac0f726c072252289361ef8ff3}{AuthorityFactoryNNPtr}}}
\DoxyCodeLine{1186     create(\textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_a776e066c227b9607a8c8e9e356bb9c40}{DatabaseContextNNPtr}} \&context,}
\DoxyCodeLine{1187            \textcolor{keyword}{const} std::string \&authorityName);}
\DoxyCodeLine{1188 }
\DoxyCodeLine{1189     PROJ\_DLL \textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_a776e066c227b9607a8c8e9e356bb9c40}{DatabaseContextNNPtr}} \&databaseContext() \textcolor{keyword}{const};}
\DoxyCodeLine{1190 }
\DoxyCodeLine{1191     PROJ\_DLL std::vector<operation::CoordinateOperationNNPtr>}
\DoxyCodeLine{1192     createFromCoordinateReferenceSystemCodes(}
\DoxyCodeLine{1193         \textcolor{keyword}{const} std::string \&sourceCRSAuthName, \textcolor{keyword}{const} std::string \&sourceCRSCode,}
\DoxyCodeLine{1194         \textcolor{keyword}{const} std::string \&targetCRSAuthName, \textcolor{keyword}{const} std::string \&targetCRSCode,}
\DoxyCodeLine{1195         \textcolor{keywordtype}{bool} usePROJAlternativeGridNames, \textcolor{keywordtype}{bool} discardIfMissingGrid,}
\DoxyCodeLine{1196         \textcolor{keywordtype}{bool} considerKnownGridsAsAvailable, \textcolor{keywordtype}{bool} discardSuperseded,}
\DoxyCodeLine{1197         \textcolor{keywordtype}{bool} tryReverseOrder = \textcolor{keyword}{false},}
\DoxyCodeLine{1198         \textcolor{keywordtype}{bool} reportOnlyIntersectingTransformations = \textcolor{keyword}{false},}
\DoxyCodeLine{1199         \textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_a0d6b619c883f52d0e1f2b112c6f4dc96}{metadata::ExtentPtr}} \&intersectingExtent1 = \textcolor{keyword}{nullptr},}
\DoxyCodeLine{1200         \textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_a0d6b619c883f52d0e1f2b112c6f4dc96}{metadata::ExtentPtr}} \&intersectingExtent2 = \textcolor{keyword}{nullptr}) \textcolor{keyword}{const};}
\DoxyCodeLine{1201 }
\DoxyCodeLine{1202     PROJ\_DLL std::vector<operation::CoordinateOperationNNPtr>}
\DoxyCodeLine{1203     createFromCRSCodesWithIntermediates(}
\DoxyCodeLine{1204         \textcolor{keyword}{const} std::string \&sourceCRSAuthName, \textcolor{keyword}{const} std::string \&sourceCRSCode,}
\DoxyCodeLine{1205         \textcolor{keyword}{const} std::string \&targetCRSAuthName, \textcolor{keyword}{const} std::string \&targetCRSCode,}
\DoxyCodeLine{1206         \textcolor{keywordtype}{bool} usePROJAlternativeGridNames, \textcolor{keywordtype}{bool} discardIfMissingGrid,}
\DoxyCodeLine{1207         \textcolor{keywordtype}{bool} considerKnownGridsAsAvailable, \textcolor{keywordtype}{bool} discardSuperseded,}
\DoxyCodeLine{1208         \textcolor{keyword}{const} std::vector<std::pair<std::string, std::string>>}
\DoxyCodeLine{1209             \&intermediateCRSAuthCodes,}
\DoxyCodeLine{1210         \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1AuthorityFactory_aed171a7eb6fa46917aafaae9deeb2c84}{ObjectType}} allowedIntermediateObjectType = ObjectType::CRS,}
\DoxyCodeLine{1211         \textcolor{keyword}{const} std::vector<std::string> \&allowedAuthorities =}
\DoxyCodeLine{1212             std::vector<std::string>(),}
\DoxyCodeLine{1213         \textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_a0d6b619c883f52d0e1f2b112c6f4dc96}{metadata::ExtentPtr}} \&intersectingExtent1 = \textcolor{keyword}{nullptr},}
\DoxyCodeLine{1214         \textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_a0d6b619c883f52d0e1f2b112c6f4dc96}{metadata::ExtentPtr}} \&intersectingExtent2 = \textcolor{keyword}{nullptr}) \textcolor{keyword}{const};}
\DoxyCodeLine{1215 }
\DoxyCodeLine{1216     PROJ\_DLL std::string getOfficialNameFromAlias(}
\DoxyCodeLine{1217         \textcolor{keyword}{const} std::string \&aliasedName, \textcolor{keyword}{const} std::string \&tableName,}
\DoxyCodeLine{1218         \textcolor{keyword}{const} std::string \&source, \textcolor{keywordtype}{bool} tryEquivalentNameSpelling,}
\DoxyCodeLine{1219         std::string \&outTableName, std::string \&outAuthName,}
\DoxyCodeLine{1220         std::string \&outCode) \textcolor{keyword}{const};}
\DoxyCodeLine{1221 }
\DoxyCodeLine{1222     PROJ\_DLL std::list<common::IdentifiedObjectNNPtr>}
\DoxyCodeLine{1223     createObjectsFromName(\textcolor{keyword}{const} std::string \&name,}
\DoxyCodeLine{1224                           \textcolor{keyword}{const} std::vector<ObjectType> \&allowedObjectTypes =}
\DoxyCodeLine{1225                               std::vector<ObjectType>(),}
\DoxyCodeLine{1226                           \textcolor{keywordtype}{bool} approximateMatch = \textcolor{keyword}{true},}
\DoxyCodeLine{1227                           \textcolor{keywordtype}{size\_t} limitResultCount = 0) \textcolor{keyword}{const};}
\DoxyCodeLine{1228 }
\DoxyCodeLine{1229     PROJ\_DLL std::list<std::pair<std::string, std::string>>}
\DoxyCodeLine{1230     listAreaOfUseFromName(\textcolor{keyword}{const} std::string \&name, \textcolor{keywordtype}{bool} approximateMatch) \textcolor{keyword}{const};}
\DoxyCodeLine{1231 }
\DoxyCodeLine{1232     PROJ\_PRIVATE :}
\DoxyCodeLine{1234 }
\DoxyCodeLine{1235         PROJ\_INTERNAL std::list<datum::EllipsoidNNPtr>}
\DoxyCodeLine{1236         createEllipsoidFromExisting(}
\DoxyCodeLine{1237             \textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1datum_a04467b887cbd29d5e07a05c9479f653a}{datum::EllipsoidNNPtr}} \&ellipsoid) \textcolor{keyword}{const};}
\DoxyCodeLine{1238 }
\DoxyCodeLine{1239     PROJ\_INTERNAL std::list<crs::GeodeticCRSNNPtr>}
\DoxyCodeLine{1240     createGeodeticCRSFromDatum(\textcolor{keyword}{const} std::string \&datum\_auth\_name,}
\DoxyCodeLine{1241                                \textcolor{keyword}{const} std::string \&datum\_code,}
\DoxyCodeLine{1242                                \textcolor{keyword}{const} std::string \&geodetic\_crs\_type) \textcolor{keyword}{const};}
\DoxyCodeLine{1243 }
\DoxyCodeLine{1244     PROJ\_INTERNAL std::list<crs::VerticalCRSNNPtr>}
\DoxyCodeLine{1245     createVerticalCRSFromDatum(\textcolor{keyword}{const} std::string \&datum\_auth\_name,}
\DoxyCodeLine{1246                                \textcolor{keyword}{const} std::string \&datum\_code) \textcolor{keyword}{const};}
\DoxyCodeLine{1247 }
\DoxyCodeLine{1248     PROJ\_INTERNAL std::list<crs::GeodeticCRSNNPtr>}
\DoxyCodeLine{1249     createGeodeticCRSFromEllipsoid(\textcolor{keyword}{const} std::string \&ellipsoid\_auth\_name,}
\DoxyCodeLine{1250                                    \textcolor{keyword}{const} std::string \&ellipsoid\_code,}
\DoxyCodeLine{1251                                    \textcolor{keyword}{const} std::string \&geodetic\_crs\_type) \textcolor{keyword}{const};}
\DoxyCodeLine{1252 }
\DoxyCodeLine{1253     PROJ\_INTERNAL std::list<crs::ProjectedCRSNNPtr>}
\DoxyCodeLine{1254     createProjectedCRSFromExisting(\textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a474c5a3d69a0c2f1e16aa1e78022a8fd}{crs::ProjectedCRSNNPtr}} \&crs) \textcolor{keyword}{const};}
\DoxyCodeLine{1255 }
\DoxyCodeLine{1256     PROJ\_INTERNAL std::list<crs::CompoundCRSNNPtr>}
\DoxyCodeLine{1257     createCompoundCRSFromExisting(\textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a5a4f97e589c9601364645cb31b90447e}{crs::CompoundCRSNNPtr}} \&crs) \textcolor{keyword}{const};}
\DoxyCodeLine{1258 }
\DoxyCodeLine{1259     PROJ\_INTERNAL \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a8cabf171d097255fb43d0ceb916c815c}{crs::CRSNNPtr}}}
\DoxyCodeLine{1260     createCoordinateReferenceSystem(\textcolor{keyword}{const} std::string \&code,}
\DoxyCodeLine{1261                                     \textcolor{keywordtype}{bool} allowCompound) \textcolor{keyword}{const};}
\DoxyCodeLine{1262 }
\DoxyCodeLine{1263     PROJ\_INTERNAL std::vector<operation::CoordinateOperationNNPtr>}
\DoxyCodeLine{1264     getTransformationsForGeoid(\textcolor{keyword}{const} std::string \&geoidName,}
\DoxyCodeLine{1265                                \textcolor{keywordtype}{bool} usePROJAlternativeGridNames) \textcolor{keyword}{const};}
\DoxyCodeLine{1266 }
\DoxyCodeLine{1267     PROJ\_INTERNAL std::vector<operation::CoordinateOperationNNPtr>}
\DoxyCodeLine{1268     createBetweenGeodeticCRSWithDatumBasedIntermediates(}
\DoxyCodeLine{1269         \textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a8cabf171d097255fb43d0ceb916c815c}{crs::CRSNNPtr}} \&sourceCRS, \textcolor{keyword}{const} std::string \&sourceCRSAuthName,}
\DoxyCodeLine{1270         \textcolor{keyword}{const} std::string \&sourceCRSCode, \textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a8cabf171d097255fb43d0ceb916c815c}{crs::CRSNNPtr}} \&targetCRS,}
\DoxyCodeLine{1271         \textcolor{keyword}{const} std::string \&targetCRSAuthName, \textcolor{keyword}{const} std::string \&targetCRSCode,}
\DoxyCodeLine{1272         \textcolor{keywordtype}{bool} usePROJAlternativeGridNames, \textcolor{keywordtype}{bool} discardIfMissingGrid,}
\DoxyCodeLine{1273         \textcolor{keywordtype}{bool} considerKnownGridsAsAvailable, \textcolor{keywordtype}{bool} discardSuperseded,}
\DoxyCodeLine{1274         \textcolor{keyword}{const} std::vector<std::string> \&allowedAuthorities,}
\DoxyCodeLine{1275         \textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_a0d6b619c883f52d0e1f2b112c6f4dc96}{metadata::ExtentPtr}} \&intersectingExtent1,}
\DoxyCodeLine{1276         \textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_a0d6b619c883f52d0e1f2b112c6f4dc96}{metadata::ExtentPtr}} \&intersectingExtent2) \textcolor{keyword}{const};}
\DoxyCodeLine{1277 }
\DoxyCodeLine{1278     \textcolor{keyword}{typedef} std::pair<common::IdentifiedObjectNNPtr, std::string>}
\DoxyCodeLine{1279         PairObjectName;}
\DoxyCodeLine{1280     PROJ\_INTERNAL std::list<PairObjectName>}
\DoxyCodeLine{1281     createObjectsFromNameEx(\textcolor{keyword}{const} std::string \&name,}
\DoxyCodeLine{1282                             \textcolor{keyword}{const} std::vector<ObjectType> \&allowedObjectTypes =}
\DoxyCodeLine{1283                                 std::vector<ObjectType>(),}
\DoxyCodeLine{1284                             \textcolor{keywordtype}{bool} approximateMatch = \textcolor{keyword}{true},}
\DoxyCodeLine{1285                             \textcolor{keywordtype}{size\_t} limitResultCount = 0) \textcolor{keyword}{const};}
\DoxyCodeLine{1286 }
\DoxyCodeLine{1288 }
\DoxyCodeLine{1289   \textcolor{keyword}{protected}:}
\DoxyCodeLine{1290     PROJ\_INTERNAL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1AuthorityFactory}{AuthorityFactory}}(\textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_a776e066c227b9607a8c8e9e356bb9c40}{DatabaseContextNNPtr}} \&context,}
\DoxyCodeLine{1291                                    \textcolor{keyword}{const} std::string \&authorityName);}
\DoxyCodeLine{1292 }
\DoxyCodeLine{1293     PROJ\_INTERNAL \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a853cc8ce6a9586cf08f48ab058f0ff3e}{crs::GeodeticCRSNNPtr}}}
\DoxyCodeLine{1294     createGeodeticCRS(\textcolor{keyword}{const} std::string \&code, \textcolor{keywordtype}{bool} geographicOnly) \textcolor{keyword}{const};}
\DoxyCodeLine{1295 }
\DoxyCodeLine{1296     PROJ\_INTERNAL \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a1b1238e3c3bfa1271bfecce940e77f13}{operation::CoordinateOperationNNPtr}}}
\DoxyCodeLine{1297     createCoordinateOperation(\textcolor{keyword}{const} std::string \&code, \textcolor{keywordtype}{bool} allowConcatenated,}
\DoxyCodeLine{1298                               \textcolor{keywordtype}{bool} usePROJAlternativeGridNames,}
\DoxyCodeLine{1299                               \textcolor{keyword}{const} std::string \&type) \textcolor{keyword}{const};}
\DoxyCodeLine{1300 }
\DoxyCodeLine{1301     INLINED\_MAKE\_SHARED}
\DoxyCodeLine{1302 }
\DoxyCodeLine{1303   \textcolor{keyword}{private}:}
\DoxyCodeLine{1304     PROJ\_OPAQUE\_PRIVATE\_DATA}
\DoxyCodeLine{1305 }
\DoxyCodeLine{1306     PROJ\_INTERNAL \textcolor{keywordtype}{void}}
\DoxyCodeLine{1307     createGeodeticDatumOrEnsemble(\textcolor{keyword}{const} std::string \&code,}
\DoxyCodeLine{1308                                   \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1datum_a48a7dace5dc8b03afd29080f4fc783c2}{datum::GeodeticReferenceFramePtr}} \&outDatum,}
\DoxyCodeLine{1309                                   \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1datum_a3d78f84b55b215bf4486be9e0257bb2d}{datum::DatumEnsemblePtr}} \&outDatumEnsemble,}
\DoxyCodeLine{1310                                   \textcolor{keywordtype}{bool} turnEnsembleAsDatum) \textcolor{keyword}{const};}
\DoxyCodeLine{1311 }
\DoxyCodeLine{1312     PROJ\_INTERNAL \textcolor{keywordtype}{void}}
\DoxyCodeLine{1313     createVerticalDatumOrEnsemble(\textcolor{keyword}{const} std::string \&code,}
\DoxyCodeLine{1314                                   \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1datum_a3adfcef105a4fc87eeec694256088ba0}{datum::VerticalReferenceFramePtr}} \&outDatum,}
\DoxyCodeLine{1315                                   \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1datum_a3d78f84b55b215bf4486be9e0257bb2d}{datum::DatumEnsemblePtr}} \&outDatumEnsemble,}
\DoxyCodeLine{1316                                   \textcolor{keywordtype}{bool} turnEnsembleAsDatum) \textcolor{keyword}{const};}
\DoxyCodeLine{1317 \};}
\DoxyCodeLine{1318 }
\DoxyCodeLine{1319 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{1320 }
\DoxyCodeLine{1324 \textcolor{keyword}{class }PROJ\_GCC\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1FactoryException}{FactoryException}} : \textcolor{keyword}{public} \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1Exception}{util::Exception}} \{}
\DoxyCodeLine{1325   \textcolor{keyword}{public}:}
\DoxyCodeLine{1327     PROJ\_DLL \textcolor{keyword}{explicit} \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1FactoryException}{FactoryException}}(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *message);}
\DoxyCodeLine{1328     PROJ\_DLL \textcolor{keyword}{explicit} \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1FactoryException}{FactoryException}}(\textcolor{keyword}{const} std::string \&message);}
\DoxyCodeLine{1329     PROJ\_DLL}
\DoxyCodeLine{1330     \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1FactoryException}{FactoryException}}(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1FactoryException}{FactoryException}} \&other);}
\DoxyCodeLine{1331     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1FactoryException}{\string~FactoryException}}() \textcolor{keyword}{override};}
\DoxyCodeLine{1333 \};}
\DoxyCodeLine{1334 }
\DoxyCodeLine{1335 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{1336 }
\DoxyCodeLine{1340 \textcolor{keyword}{class }PROJ\_GCC\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1NoSuchAuthorityCodeException}{NoSuchAuthorityCodeException}} : \textcolor{keyword}{public} \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1FactoryException}{FactoryException}} \{}
\DoxyCodeLine{1341   \textcolor{keyword}{public}:}
\DoxyCodeLine{1343     PROJ\_DLL \textcolor{keyword}{explicit} \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1NoSuchAuthorityCodeException}{NoSuchAuthorityCodeException}}(\textcolor{keyword}{const} std::string \&message,}
\DoxyCodeLine{1344                                                    \textcolor{keyword}{const} std::string \&authority,}
\DoxyCodeLine{1345                                                    \textcolor{keyword}{const} std::string \&code);}
\DoxyCodeLine{1346     PROJ\_DLL}
\DoxyCodeLine{1347     \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1NoSuchAuthorityCodeException}{NoSuchAuthorityCodeException}}(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1NoSuchAuthorityCodeException}{NoSuchAuthorityCodeException}} \&other);}
\DoxyCodeLine{1348     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1NoSuchAuthorityCodeException}{\string~NoSuchAuthorityCodeException}}() \textcolor{keyword}{override};}
\DoxyCodeLine{1350 }
\DoxyCodeLine{1351     PROJ\_DLL \textcolor{keyword}{const} std::string \&getAuthority() \textcolor{keyword}{const};}
\DoxyCodeLine{1352     PROJ\_DLL \textcolor{keyword}{const} std::string \&getAuthorityCode() \textcolor{keyword}{const};}
\DoxyCodeLine{1353 }
\DoxyCodeLine{1354   \textcolor{keyword}{private}:}
\DoxyCodeLine{1355     PROJ\_OPAQUE\_PRIVATE\_DATA}
\DoxyCodeLine{1356 \};}
\DoxyCodeLine{1357 }
\DoxyCodeLine{1358 \} \textcolor{comment}{// namespace io}}
\DoxyCodeLine{1359 }
\DoxyCodeLine{1360 NS\_PROJ\_END}
\DoxyCodeLine{1361 }
\DoxyCodeLine{1362 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// IO\_HH\_INCLUDED}}

\end{DoxyCode}
