EVOLUTION-MANAGER
Edit File: classCPLStringList.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.5"/> <title>OGR: CPLStringList Class Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">OGR </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.5 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li class="current"><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> | <a href="classCPLStringList-members.html">List of all members</a> </div> <div class="headertitle"> <div class="title">CPLStringList Class Reference</div> </div> </div><!--header--> <div class="contents"> <p>String list class designed around our use of C "char**" string lists. <a href="classCPLStringList.html#details">More...</a></p> <p><code>#include <<a class="el" href="cpl__string_8h_source.html">cpl_string.h</a>></code></p> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr class="memitem:a9da266cf36ff9f8d60875216f2ad1d18"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCPLStringList.html#a9da266cf36ff9f8d60875216f2ad1d18">CPLStringList</a> (char **papszList, int bTakeOwnership=1)</td></tr> <tr class="separator:a9da266cf36ff9f8d60875216f2ad1d18"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a9ed465b7de02087af145a983f6943d8b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9ed465b7de02087af145a983f6943d8b"></a>  </td><td class="memItemRight" valign="bottom"><a class="el" href="classCPLStringList.html#a9ed465b7de02087af145a983f6943d8b">CPLStringList</a> (const <a class="el" href="classCPLStringList.html">CPLStringList</a> &oOther)</td></tr> <tr class="memdesc:a9ed465b7de02087af145a983f6943d8b"><td class="mdescLeft"> </td><td class="mdescRight">Copy constructor. <br/></td></tr> <tr class="separator:a9ed465b7de02087af145a983f6943d8b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:adac28f965497aec39e6cfb371ca69925"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCPLStringList.html">CPLStringList</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classCPLStringList.html#adac28f965497aec39e6cfb371ca69925">Clear</a> ()</td></tr> <tr class="separator:adac28f965497aec39e6cfb371ca69925"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab6b0f51c08d8989a0966be64a1a596b9"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classCPLStringList.html#ab6b0f51c08d8989a0966be64a1a596b9">Count</a> () const </td></tr> <tr class="separator:ab6b0f51c08d8989a0966be64a1a596b9"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:afb284d82f71198fa175f6656cd8ca328"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCPLStringList.html">CPLStringList</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classCPLStringList.html#afb284d82f71198fa175f6656cd8ca328">AddString</a> (const char *pszNewString)</td></tr> <tr class="separator:afb284d82f71198fa175f6656cd8ca328"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a81ff0aad056292f55d68e48c064dd0ec"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCPLStringList.html">CPLStringList</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classCPLStringList.html#a81ff0aad056292f55d68e48c064dd0ec">AddStringDirectly</a> (char *pszNewString)</td></tr> <tr class="separator:a81ff0aad056292f55d68e48c064dd0ec"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a749cc0686e54bcbf890144a1374d2dde"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCPLStringList.html">CPLStringList</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classCPLStringList.html#a749cc0686e54bcbf890144a1374d2dde">InsertString</a> (int nInsertAtLineNo, const char *pszNewLine)</td></tr> <tr class="memdesc:a749cc0686e54bcbf890144a1374d2dde"><td class="mdescLeft"> </td><td class="mdescRight">Insert into the list at identified location. <a href="#a749cc0686e54bcbf890144a1374d2dde">More...</a><br/></td></tr> <tr class="separator:a749cc0686e54bcbf890144a1374d2dde"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a9d30fe949d5e89027a3ad2cb8c0957e8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCPLStringList.html">CPLStringList</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classCPLStringList.html#a9d30fe949d5e89027a3ad2cb8c0957e8">InsertStringDirectly</a> (int nInsertAtLineNo, char *pszNewLine)</td></tr> <tr class="separator:a9d30fe949d5e89027a3ad2cb8c0957e8"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2a93b5b8a74db9ac7f08b3c598bead84"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classCPLStringList.html#a2a93b5b8a74db9ac7f08b3c598bead84">FindName</a> (const char *pszName) const </td></tr> <tr class="separator:a2a93b5b8a74db9ac7f08b3c598bead84"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2626525f3d8da75c830520c5b414f97e"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classCPLStringList.html#a2626525f3d8da75c830520c5b414f97e">FetchBoolean</a> (const char *pszKey, int bDefault) const </td></tr> <tr class="separator:a2626525f3d8da75c830520c5b414f97e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ae12f877570c1e012fbc18d3d3910adab"><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="classCPLStringList.html#ae12f877570c1e012fbc18d3d3910adab">FetchNameValue</a> (const char *pszKey) const </td></tr> <tr class="separator:ae12f877570c1e012fbc18d3d3910adab"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a136e202c6a040a9b424275e09f8c6120"><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="classCPLStringList.html#a136e202c6a040a9b424275e09f8c6120">FetchNameValueDef</a> (const char *pszKey, const char *pszDefault) const </td></tr> <tr class="separator:a136e202c6a040a9b424275e09f8c6120"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5d692adf11d198bd5d167ea4974c00ac"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCPLStringList.html">CPLStringList</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classCPLStringList.html#a5d692adf11d198bd5d167ea4974c00ac">AddNameValue</a> (const char *pszKey, const char *pszValue)</td></tr> <tr class="separator:a5d692adf11d198bd5d167ea4974c00ac"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac11da61a2087512ea01c0d834f27daf1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCPLStringList.html">CPLStringList</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classCPLStringList.html#ac11da61a2087512ea01c0d834f27daf1">SetNameValue</a> (const char *pszKey, const char *pszValue)</td></tr> <tr class="separator:ac11da61a2087512ea01c0d834f27daf1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3d9b7a3005cbc15883200040622def0a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCPLStringList.html">CPLStringList</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classCPLStringList.html#a3d9b7a3005cbc15883200040622def0a">Assign</a> (char **papszList, int bTakeOwnership=1)</td></tr> <tr class="separator:a3d9b7a3005cbc15883200040622def0a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa1065761ce5482354a9494a236e21ab4"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="classCPLStringList.html#aa1065761ce5482354a9494a236e21ab4">operator[]</a> (int i)</td></tr> <tr class="separator:aa1065761ce5482354a9494a236e21ab4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4784adc3ae6ad4dbb479496baa90d293"><td class="memItemLeft" align="right" valign="top">char ** </td><td class="memItemRight" valign="bottom"><a class="el" href="classCPLStringList.html#a4784adc3ae6ad4dbb479496baa90d293">StealList</a> ()</td></tr> <tr class="separator:a4784adc3ae6ad4dbb479496baa90d293"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4985ce535d9a97bdb7d1787f26361605"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCPLStringList.html">CPLStringList</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classCPLStringList.html#a4985ce535d9a97bdb7d1787f26361605">Sort</a> ()</td></tr> <tr class="separator:a4985ce535d9a97bdb7d1787f26361605"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p>String list class designed around our use of C "char**" string lists. </p> </div><h2 class="groupheader">Constructor & Destructor Documentation</h2> <a class="anchor" id="a9da266cf36ff9f8d60875216f2ad1d18"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">CPLStringList::CPLStringList </td> <td>(</td> <td class="paramtype">char ** </td> <td class="paramname"><em>papszListIn</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>bTakeOwnership</em> = <code>1</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p><a class="el" href="classCPLStringList.html" title="String list class designed around our use of C "char**" string lists. ">CPLStringList</a> constructor.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">papszListIn</td><td>the NULL terminated list of strings to consume. </td></tr> <tr><td class="paramname">bTakeOwnership</td><td>TRUE if the <a class="el" href="classCPLStringList.html" title="String list class designed around our use of C "char**" string lists. ">CPLStringList</a> should take ownership of the list of strings which implies responsibility to free them. </td></tr> </table> </dd> </dl> <p>References <a class="el" href="classCPLStringList.html#a3d9b7a3005cbc15883200040622def0a">Assign()</a>.</p> </div> </div> <h2 class="groupheader">Member Function Documentation</h2> <a class="anchor" id="a5d692adf11d198bd5d167ea4974c00ac"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCPLStringList.html">CPLStringList</a> & CPLStringList::AddNameValue </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>pszKey</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>pszValue</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>A a name=value entry to the list.</p> <p>A key=value string is prepared and appended to the list. There is no check for other values for the same key in the list.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">pszKey</td><td>the key name to add. </td></tr> <tr><td class="paramname">pszValue</td><td>the key value to add. </td></tr> </table> </dd> </dl> <p>References <a class="el" href="classCPLStringList.html#a81ff0aad056292f55d68e48c064dd0ec">AddStringDirectly()</a>, <a class="el" href="cpl__conv_8h.html#a9ebcdb25fc6ff90b0c7b01733d5ae6d3">CPLMalloc()</a>, and <a class="el" href="classCPLStringList.html#a9d30fe949d5e89027a3ad2cb8c0957e8">InsertStringDirectly()</a>.</p> <p>Referenced by <a class="el" href="classCPLStringList.html#ac11da61a2087512ea01c0d834f27daf1">SetNameValue()</a>.</p> </div> </div> <a class="anchor" id="afb284d82f71198fa175f6656cd8ca328"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCPLStringList.html">CPLStringList</a> & CPLStringList::AddString </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>pszNewString</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Add a string to the list.</p> <p>A copy of the passed in string is made and inserted in the list.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">pszNewString</td><td>the string to add to the list. </td></tr> </table> </dd> </dl> <p>References <a class="el" href="classCPLStringList.html#a81ff0aad056292f55d68e48c064dd0ec">AddStringDirectly()</a>, and <a class="el" href="cpl__conv_8h.html#a464d6861faf9f6272317d160a3ad9a81">CPLStrdup()</a>.</p> <p>Referenced by <a class="el" href="cpl__string_8h.html#a36f1e4efb0da65e3d900d3a0ce8cbaab">CSLTokenizeString2()</a>, <a class="el" href="cpl__http_8h.html#aa97c9ff3bd3ad4d0d0f8a68bff4f30e9">GOA2GetAccessToken()</a>, <a class="el" href="cpl__http_8h.html#aa75528c90727da832400f0b9c88e77ab">GOA2GetRefreshToken()</a>, and <a class="el" href="cpl__vsi_8h.html#a03c473cd78f2dffabf709245a928e6c7">VSIReadDirRecursive()</a>.</p> </div> </div> <a class="anchor" id="a81ff0aad056292f55d68e48c064dd0ec"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCPLStringList.html">CPLStringList</a> & CPLStringList::AddStringDirectly </td> <td>(</td> <td class="paramtype">char * </td> <td class="paramname"><em>pszNewString</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Add a string to the list.</p> <p>This method is similar to <a class="el" href="classCPLStringList.html#afb284d82f71198fa175f6656cd8ca328">AddString()</a>, but ownership of the pszNewString is transferred to the <a class="el" href="classCPLStringList.html" title="String list class designed around our use of C "char**" string lists. ">CPLStringList</a> class.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">pszNewString</td><td>the string to add to the list. </td></tr> </table> </dd> </dl> <p>References <a class="el" href="classCPLStringList.html#ab6b0f51c08d8989a0966be64a1a596b9">Count()</a>.</p> <p>Referenced by <a class="el" href="classCPLStringList.html#a5d692adf11d198bd5d167ea4974c00ac">AddNameValue()</a>, and <a class="el" href="classCPLStringList.html#afb284d82f71198fa175f6656cd8ca328">AddString()</a>.</p> </div> </div> <a class="anchor" id="a3d9b7a3005cbc15883200040622def0a"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCPLStringList.html">CPLStringList</a> & CPLStringList::Assign </td> <td>(</td> <td class="paramtype">char ** </td> <td class="paramname"><em>papszListIn</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>bTakeOwnership</em> = <code>1</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Assign a list of strings.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">papszListIn</td><td>the NULL terminated list of strings to consume. </td></tr> <tr><td class="paramname">bTakeOwnership</td><td>TRUE if the <a class="el" href="classCPLStringList.html" title="String list class designed around our use of C "char**" string lists. ">CPLStringList</a> should take ownership of the list of strings which implies responsibility to free them.</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>a reference to the <a class="el" href="classCPLStringList.html" title="String list class designed around our use of C "char**" string lists. ">CPLStringList</a> on which it was invoked. </dd></dl> <p>References <a class="el" href="classCPLStringList.html#adac28f965497aec39e6cfb371ca69925">Clear()</a>.</p> <p>Referenced by <a class="el" href="classCPLStringList.html#a9da266cf36ff9f8d60875216f2ad1d18">CPLStringList()</a>, and <a class="el" href="cpl__string_8h.html#a36f1e4efb0da65e3d900d3a0ce8cbaab">CSLTokenizeString2()</a>.</p> </div> </div> <a class="anchor" id="adac28f965497aec39e6cfb371ca69925"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCPLStringList.html">CPLStringList</a> & CPLStringList::Clear </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Clear the string list. </p> <p>References <a class="el" href="cpl__string_8h.html#a5a39b9c5896a273cc6f06c1d5be93238">CSLDestroy()</a>.</p> <p>Referenced by <a class="el" href="classCPLStringList.html#a3d9b7a3005cbc15883200040622def0a">Assign()</a>.</p> </div> </div> <a class="anchor" id="ab6b0f51c08d8989a0966be64a1a596b9"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int CPLStringList::Count </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </div><div class="memdoc"> <dl class="section return"><dt>Returns</dt><dd>count of strings in the list, zero if empty. </dd></dl> <p>References <a class="el" href="cpl__string_8h.html#ac1ffd0e5baf9729f09388a38c07f5835">CSLCount()</a>.</p> <p>Referenced by <a class="el" href="classCPLStringList.html#a81ff0aad056292f55d68e48c064dd0ec">AddStringDirectly()</a>, <a class="el" href="cpl__string_8h.html#a36f1e4efb0da65e3d900d3a0ce8cbaab">CSLTokenizeString2()</a>, <a class="el" href="classCPLStringList.html#a9d30fe949d5e89027a3ad2cb8c0957e8">InsertStringDirectly()</a>, <a class="el" href="classCPLStringList.html#aa1065761ce5482354a9494a236e21ab4">operator[]()</a>, <a class="el" href="classCPLStringList.html#ac11da61a2087512ea01c0d834f27daf1">SetNameValue()</a>, and <a class="el" href="classCPLStringList.html#a4985ce535d9a97bdb7d1787f26361605">Sort()</a>.</p> </div> </div> <a class="anchor" id="a2626525f3d8da75c830520c5b414f97e"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int CPLStringList::FetchBoolean </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>pszKey</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>bDefault</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const</td> </tr> </table> </div><div class="memdoc"> <p>Check for boolean key value.</p> <p>In a <a class="el" href="classCPLStringList.html" title="String list class designed around our use of C "char**" string lists. ">CPLStringList</a> of "Name=Value" pairs, look to see if there is a key with the given name, and if it can be interpreted as being TRUE. If the key appears without any "=Value" portion it will be considered true. If the value is NO, FALSE or 0 it will be considered FALSE otherwise if the key appears in the list it will be considered TRUE. If the key doesn't appear at all, the indicated default value will be returned.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">pszKey</td><td>the key value to look for (case insensitive). </td></tr> <tr><td class="paramname">bDefault</td><td>the value to return if the key isn't found at all.</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>TRUE or FALSE </dd></dl> <p>References <a class="el" href="cpl__string_8h.html#ada798bb0fafd08c7908d0f3716f341b3">CSLTestBoolean()</a>, and <a class="el" href="classCPLStringList.html#ae12f877570c1e012fbc18d3d3910adab">FetchNameValue()</a>.</p> </div> </div> <a class="anchor" id="ae12f877570c1e012fbc18d3d3910adab"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const char * CPLStringList::FetchNameValue </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>pszName</em></td><td>)</td> <td> const</td> </tr> </table> </div><div class="memdoc"> <p>Fetch value associated with this key name.</p> <p>If this list sorted, a fast binary search is done, otherwise a linear scan is done. Name lookup is case insensitive.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">pszName</td><td>the key name to search for.</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>the corresponding value or NULL if not found. The returned string should not be modified and points into internal object state that may change on future calls. </dd></dl> <p>References <a class="el" href="classCPLStringList.html#a2a93b5b8a74db9ac7f08b3c598bead84">FindName()</a>.</p> <p>Referenced by <a class="el" href="classCPLStringList.html#a2626525f3d8da75c830520c5b414f97e">FetchBoolean()</a>, and <a class="el" href="classCPLStringList.html#a136e202c6a040a9b424275e09f8c6120">FetchNameValueDef()</a>.</p> </div> </div> <a class="anchor" id="a136e202c6a040a9b424275e09f8c6120"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const char * CPLStringList::FetchNameValueDef </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>pszName</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>pszDefault</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const</td> </tr> </table> </div><div class="memdoc"> <p>Fetch value associated with this key name.</p> <p>If this list sorted, a fast binary search is done, otherwise a linear scan is done. Name lookup is case insensitive.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">pszName</td><td>the key name to search for. </td></tr> <tr><td class="paramname">pszDefault</td><td>the default value returned if the named entry isn't found.</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>the corresponding value or the passed default if not found. </dd></dl> <p>References <a class="el" href="classCPLStringList.html#ae12f877570c1e012fbc18d3d3910adab">FetchNameValue()</a>.</p> <p>Referenced by <a class="el" href="cpl__http_8h.html#aa97c9ff3bd3ad4d0d0f8a68bff4f30e9">GOA2GetAccessToken()</a>, and <a class="el" href="cpl__http_8h.html#aa75528c90727da832400f0b9c88e77ab">GOA2GetRefreshToken()</a>.</p> </div> </div> <a class="anchor" id="a2a93b5b8a74db9ac7f08b3c598bead84"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int CPLStringList::FindName </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>pszKey</em></td><td>)</td> <td> const</td> </tr> </table> </div><div class="memdoc"> <p>Get index of given name/value keyword.</p> <p>Note that this search is for a line in the form name=value or name:value. Use FindString() or PartialFindString() for searches not based on name=value pairs.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">pszKey</td><td>the name to search for.</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>the string list index of this name, or -1 on failure. </dd></dl> <p>References <a class="el" href="cpl__string_8h.html#a0901440811294a6a0d6762b6e64107e3">CSLFindName()</a>.</p> <p>Referenced by <a class="el" href="classCPLStringList.html#ae12f877570c1e012fbc18d3d3910adab">FetchNameValue()</a>, and <a class="el" href="classCPLStringList.html#ac11da61a2087512ea01c0d834f27daf1">SetNameValue()</a>.</p> </div> </div> <a class="anchor" id="a749cc0686e54bcbf890144a1374d2dde"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCPLStringList.html">CPLStringList</a> * CPLStringList::InsertString </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>nInsertAtLineNo</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>pszNewLine</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Insert into the list at identified location. </p> <p>This method will insert a string into the list at the identified location. The insertion point must be within or at the end of the list. The following entries are pushed down to make space.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">nInsertAtLineNo</td><td>the line to insert at, zero to insert at front. </td></tr> <tr><td class="paramname">pszNewLine</td><td>to the line to insert. This string will be copied. </td></tr> </table> </dd> </dl> <p>References <a class="el" href="cpl__conv_8h.html#a464d6861faf9f6272317d160a3ad9a81">CPLStrdup()</a>.</p> </div> </div> <a class="anchor" id="a9d30fe949d5e89027a3ad2cb8c0957e8"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCPLStringList.html">CPLStringList</a> & CPLStringList::InsertStringDirectly </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>nInsertAtLineNo</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"><em>pszNewLine</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Insert into the list at identified location.</p> <p>This method will insert a string into the list at the identified location. The insertion point must be within or at the end of the list. The following entries are pushed down to make space.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">nInsertAtLineNo</td><td>the line to insert at, zero to insert at front. </td></tr> <tr><td class="paramname">pszNewLine</td><td>to the line to insert, the ownership of this string will be taken over the by the object. It must have been allocated on the heap. </td></tr> </table> </dd> </dl> <p>References <a class="el" href="classCPLStringList.html#ab6b0f51c08d8989a0966be64a1a596b9">Count()</a>, and <a class="el" href="cpl__error_8h.html#aad2b98dd58e4de706a245faddac90403">CPLError()</a>.</p> <p>Referenced by <a class="el" href="classCPLStringList.html#a5d692adf11d198bd5d167ea4974c00ac">AddNameValue()</a>.</p> </div> </div> <a class="anchor" id="aa1065761ce5482354a9494a236e21ab4"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">char * CPLStringList::operator[] </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>i</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Fetch entry "i".</p> <p>Fetches the requested item in the list. Note that the returned string remains owned by the <a class="el" href="classCPLStringList.html" title="String list class designed around our use of C "char**" string lists. ">CPLStringList</a>. If "i" is out of range NULL is returned.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">i</td><td>the index of the list item to return. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>selected entry in the list. </dd></dl> <p>References <a class="el" href="classCPLStringList.html#ab6b0f51c08d8989a0966be64a1a596b9">Count()</a>.</p> </div> </div> <a class="anchor" id="ac11da61a2087512ea01c0d834f27daf1"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCPLStringList.html">CPLStringList</a> & CPLStringList::SetNameValue </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>pszKey</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>pszValue</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Set name=value entry in the list.</p> <p>Similar to <a class="el" href="classCPLStringList.html#a5d692adf11d198bd5d167ea4974c00ac">AddNameValue()</a>, except if there is already a value for the key in the list it is replaced instead of adding a new entry to the list. If pszValue is NULL any existing key entry is removed.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">pszKey</td><td>the key name to add. </td></tr> <tr><td class="paramname">pszValue</td><td>the key value to add. </td></tr> </table> </dd> </dl> <p>References <a class="el" href="classCPLStringList.html#a5d692adf11d198bd5d167ea4974c00ac">AddNameValue()</a>, <a class="el" href="classCPLStringList.html#ab6b0f51c08d8989a0966be64a1a596b9">Count()</a>, <a class="el" href="cpl__conv_8h.html#a9ebcdb25fc6ff90b0c7b01733d5ae6d3">CPLMalloc()</a>, and <a class="el" href="classCPLStringList.html#a2a93b5b8a74db9ac7f08b3c598bead84">FindName()</a>.</p> </div> </div> <a class="anchor" id="a4985ce535d9a97bdb7d1787f26361605"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCPLStringList.html">CPLStringList</a> & CPLStringList::Sort </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Sort the entries in the list and mark list sorted.</p> <p>Note that once put into "sorted" mode, the <a class="el" href="classCPLStringList.html" title="String list class designed around our use of C "char**" string lists. ">CPLStringList</a> will attempt to keep things in sorted order through calls to <a class="el" href="classCPLStringList.html#afb284d82f71198fa175f6656cd8ca328">AddString()</a>, <a class="el" href="classCPLStringList.html#a81ff0aad056292f55d68e48c064dd0ec">AddStringDirectly()</a>, <a class="el" href="classCPLStringList.html#a5d692adf11d198bd5d167ea4974c00ac">AddNameValue()</a>, <a class="el" href="classCPLStringList.html#ac11da61a2087512ea01c0d834f27daf1">SetNameValue()</a>. Complete list assignments (via <a class="el" href="classCPLStringList.html#a3d9b7a3005cbc15883200040622def0a">Assign()</a> and operator= will clear the sorting state. When in sorted order <a class="el" href="classCPLStringList.html#a2a93b5b8a74db9ac7f08b3c598bead84">FindName()</a>, <a class="el" href="classCPLStringList.html#ae12f877570c1e012fbc18d3d3910adab">FetchNameValue()</a> and <a class="el" href="classCPLStringList.html#a136e202c6a040a9b424275e09f8c6120">FetchNameValueDef()</a> will do a binary search to find the key, substantially improve lookup performance in large lists. </p> <p>References <a class="el" href="classCPLStringList.html#ab6b0f51c08d8989a0966be64a1a596b9">Count()</a>.</p> </div> </div> <a class="anchor" id="a4784adc3ae6ad4dbb479496baa90d293"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">char ** CPLStringList::StealList </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Seize ownership of underlying string array.</p> <p>This method is simmilar to List(), except that the returned list is now owned by the caller and the <a class="el" href="classCPLStringList.html" title="String list class designed around our use of C "char**" string lists. ">CPLStringList</a> is emptied.</p> <dl class="section return"><dt>Returns</dt><dd>the C style string list. </dd></dl> <p>Referenced by <a class="el" href="cpl__string_8h.html#a36f1e4efb0da65e3d900d3a0ce8cbaab">CSLTokenizeString2()</a>, and <a class="el" href="cpl__vsi_8h.html#a03c473cd78f2dffabf709245a928e6c7">VSIReadDirRecursive()</a>.</p> </div> </div> <hr/>The documentation for this class was generated from the following files:<ul> <li><a class="el" href="cpl__string_8h_source.html">cpl_string.h</a></li> <li>cplstringlist.cpp</li> </ul> </div><!-- contents --> <hr> Generated for GDAL by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.8.5. </body> </html>