EVOLUTION-MANAGER
Edit File: classOGRMutexedDataSource.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: OGRMutexedDataSource 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="classOGRMutexedDataSource-members.html">List of all members</a> </div> <div class="headertitle"> <div class="title">OGRMutexedDataSource Class Reference</div> </div> </div><!--header--> <div class="contents"> <p><code>#include <<a class="el" href="ogrmutexeddatasource_8h_source.html">ogrmutexeddatasource.h</a>></code></p> <div class="dynheader"> Inheritance diagram for OGRMutexedDataSource:</div> <div class="dyncontent"> <div class="center"> <img src="classOGRMutexedDataSource.png" usemap="#OGRMutexedDataSource_map" alt=""/> <map id="OGRMutexedDataSource_map" name="OGRMutexedDataSource_map"> <area href="classOGRDataSource.html" alt="OGRDataSource" shape="rect" coords="0,0,154,24"/> </map> </div></div> <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:af6c7b18ae5c301e0e905f1c131928fa3"><td class="memItemLeft" align="right" valign="top">virtual const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="classOGRMutexedDataSource.html#af6c7b18ae5c301e0e905f1c131928fa3">GetName</a> ()</td></tr> <tr class="memdesc:af6c7b18ae5c301e0e905f1c131928fa3"><td class="mdescLeft"> </td><td class="mdescRight">Returns the name of the data source. <a href="#af6c7b18ae5c301e0e905f1c131928fa3">More...</a><br/></td></tr> <tr class="separator:af6c7b18ae5c301e0e905f1c131928fa3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:adfaac04fe8284576d8ad91ce7de1f9f1"><td class="memItemLeft" align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classOGRMutexedDataSource.html#adfaac04fe8284576d8ad91ce7de1f9f1">GetLayerCount</a> ()</td></tr> <tr class="memdesc:adfaac04fe8284576d8ad91ce7de1f9f1"><td class="mdescLeft"> </td><td class="mdescRight">Get the number of layers in this data source. <a href="#adfaac04fe8284576d8ad91ce7de1f9f1">More...</a><br/></td></tr> <tr class="separator:adfaac04fe8284576d8ad91ce7de1f9f1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7a3ca3e8d2780233574b3cbf0b6c2e3f"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classOGRLayer.html">OGRLayer</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classOGRMutexedDataSource.html#a7a3ca3e8d2780233574b3cbf0b6c2e3f">GetLayer</a> (int)</td></tr> <tr class="memdesc:a7a3ca3e8d2780233574b3cbf0b6c2e3f"><td class="mdescLeft"> </td><td class="mdescRight">Fetch a layer by index. <a href="#a7a3ca3e8d2780233574b3cbf0b6c2e3f">More...</a><br/></td></tr> <tr class="separator:a7a3ca3e8d2780233574b3cbf0b6c2e3f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4d8134541966f63ede60a819c374e81d"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classOGRLayer.html">OGRLayer</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classOGRMutexedDataSource.html#a4d8134541966f63ede60a819c374e81d">GetLayerByName</a> (const char *)</td></tr> <tr class="memdesc:a4d8134541966f63ede60a819c374e81d"><td class="mdescLeft"> </td><td class="mdescRight">Fetch a layer by name. <a href="#a4d8134541966f63ede60a819c374e81d">More...</a><br/></td></tr> <tr class="separator:a4d8134541966f63ede60a819c374e81d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af573c7ab751c6eef966170c3f3695ce3"><td class="memItemLeft" align="right" valign="top">virtual OGRErr </td><td class="memItemRight" valign="bottom"><a class="el" href="classOGRMutexedDataSource.html#af573c7ab751c6eef966170c3f3695ce3">DeleteLayer</a> (int)</td></tr> <tr class="memdesc:af573c7ab751c6eef966170c3f3695ce3"><td class="mdescLeft"> </td><td class="mdescRight">Delete the indicated layer from the datasource. <a href="#af573c7ab751c6eef966170c3f3695ce3">More...</a><br/></td></tr> <tr class="separator:af573c7ab751c6eef966170c3f3695ce3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a8051fbc5686073d25d57cf72919e8a88"><td class="memItemLeft" align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classOGRMutexedDataSource.html#a8051fbc5686073d25d57cf72919e8a88">TestCapability</a> (const char *)</td></tr> <tr class="memdesc:a8051fbc5686073d25d57cf72919e8a88"><td class="mdescLeft"> </td><td class="mdescRight">Test if capability is available. <a href="#a8051fbc5686073d25d57cf72919e8a88">More...</a><br/></td></tr> <tr class="separator:a8051fbc5686073d25d57cf72919e8a88"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:affa19c37cdbfc45c0a79fb3fa2bbc8c8"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classOGRLayer.html">OGRLayer</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classOGRMutexedDataSource.html#affa19c37cdbfc45c0a79fb3fa2bbc8c8">CreateLayer</a> (const char *pszName, <a class="el" href="classOGRSpatialReference.html">OGRSpatialReference</a> *poSpatialRef=NULL, <a class="el" href="ogr__core_8h.html#a800236a0d460ef66e687b7b65610f12a">OGRwkbGeometryType</a> eGType=<a class="el" href="ogr__core_8h.html#a800236a0d460ef66e687b7b65610f12aa3645f782f9b9f7632d7e7cdd0451d58f">wkbUnknown</a>, char **papszOptions=NULL)</td></tr> <tr class="memdesc:affa19c37cdbfc45c0a79fb3fa2bbc8c8"><td class="mdescLeft"> </td><td class="mdescRight">This method attempts to create a new layer on the data source with the indicated name, coordinate system, geometry type. <a href="#affa19c37cdbfc45c0a79fb3fa2bbc8c8">More...</a><br/></td></tr> <tr class="separator:affa19c37cdbfc45c0a79fb3fa2bbc8c8"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a0befb7cf821c88678f862a6ff92a0b37"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classOGRLayer.html">OGRLayer</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classOGRMutexedDataSource.html#a0befb7cf821c88678f862a6ff92a0b37">CopyLayer</a> (<a class="el" href="classOGRLayer.html">OGRLayer</a> *poSrcLayer, const char *pszNewName, char **papszOptions=NULL)</td></tr> <tr class="memdesc:a0befb7cf821c88678f862a6ff92a0b37"><td class="mdescLeft"> </td><td class="mdescRight">Duplicate an existing layer. <a href="#a0befb7cf821c88678f862a6ff92a0b37">More...</a><br/></td></tr> <tr class="separator:a0befb7cf821c88678f862a6ff92a0b37"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3ce12e9856e3418e1e77e61ac4199bce"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classOGRStyleTable.html">OGRStyleTable</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classOGRMutexedDataSource.html#a3ce12e9856e3418e1e77e61ac4199bce">GetStyleTable</a> ()</td></tr> <tr class="memdesc:a3ce12e9856e3418e1e77e61ac4199bce"><td class="mdescLeft"> </td><td class="mdescRight">Returns data source style table. <a href="#a3ce12e9856e3418e1e77e61ac4199bce">More...</a><br/></td></tr> <tr class="separator:a3ce12e9856e3418e1e77e61ac4199bce"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ade46fb2ce3fb8c542f2eef2f28207cbb"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classOGRMutexedDataSource.html#ade46fb2ce3fb8c542f2eef2f28207cbb">SetStyleTableDirectly</a> (<a class="el" href="classOGRStyleTable.html">OGRStyleTable</a> *poStyleTable)</td></tr> <tr class="memdesc:ade46fb2ce3fb8c542f2eef2f28207cbb"><td class="mdescLeft"> </td><td class="mdescRight">Set data source style table. <a href="#ade46fb2ce3fb8c542f2eef2f28207cbb">More...</a><br/></td></tr> <tr class="separator:ade46fb2ce3fb8c542f2eef2f28207cbb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a9a82ef489ae851e3d0e8997183185a29"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classOGRMutexedDataSource.html#a9a82ef489ae851e3d0e8997183185a29">SetStyleTable</a> (<a class="el" href="classOGRStyleTable.html">OGRStyleTable</a> *poStyleTable)</td></tr> <tr class="memdesc:a9a82ef489ae851e3d0e8997183185a29"><td class="mdescLeft"> </td><td class="mdescRight">Set data source style table. <a href="#a9a82ef489ae851e3d0e8997183185a29">More...</a><br/></td></tr> <tr class="separator:a9a82ef489ae851e3d0e8997183185a29"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a55c3322615c30a963c0aaf33e3ca2d23"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classOGRLayer.html">OGRLayer</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classOGRMutexedDataSource.html#a55c3322615c30a963c0aaf33e3ca2d23">ExecuteSQL</a> (const char *pszStatement, <a class="el" href="classOGRGeometry.html">OGRGeometry</a> *poSpatialFilter, const char *pszDialect)</td></tr> <tr class="memdesc:a55c3322615c30a963c0aaf33e3ca2d23"><td class="mdescLeft"> </td><td class="mdescRight">Execute an SQL statement against the data store. <a href="#a55c3322615c30a963c0aaf33e3ca2d23">More...</a><br/></td></tr> <tr class="separator:a55c3322615c30a963c0aaf33e3ca2d23"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:acfa11d74a29d6de768a7a7b644ab05a2"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classOGRMutexedDataSource.html#acfa11d74a29d6de768a7a7b644ab05a2">ReleaseResultSet</a> (<a class="el" href="classOGRLayer.html">OGRLayer</a> *poResultsSet)</td></tr> <tr class="memdesc:acfa11d74a29d6de768a7a7b644ab05a2"><td class="mdescLeft"> </td><td class="mdescRight">Release results of <a class="el" href="classOGRMutexedDataSource.html#a55c3322615c30a963c0aaf33e3ca2d23" title="Execute an SQL statement against the data store. ">ExecuteSQL()</a>. <a href="#acfa11d74a29d6de768a7a7b644ab05a2">More...</a><br/></td></tr> <tr class="separator:acfa11d74a29d6de768a7a7b644ab05a2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2110422a3ac20b436edc4d63e2f95269"><td class="memItemLeft" align="right" valign="top">virtual OGRErr </td><td class="memItemRight" valign="bottom"><a class="el" href="classOGRMutexedDataSource.html#a2110422a3ac20b436edc4d63e2f95269">SyncToDisk</a> ()</td></tr> <tr class="memdesc:a2110422a3ac20b436edc4d63e2f95269"><td class="mdescLeft"> </td><td class="mdescRight">Flush pending changes to disk. <a href="#a2110422a3ac20b436edc4d63e2f95269">More...</a><br/></td></tr> <tr class="separator:a2110422a3ac20b436edc4d63e2f95269"><td class="memSeparator" colspan="2"> </td></tr> <tr class="inherit_header pub_methods_classOGRDataSource"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classOGRDataSource')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classOGRDataSource.html">OGRDataSource</a></td></tr> <tr class="memitem:a82733127f4498fb4ee1d061d73dd549c inherit pub_methods_classOGRDataSource"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classOGRDataSource.html#a82733127f4498fb4ee1d061d73dd549c">Reference</a> ()</td></tr> <tr class="memdesc:a82733127f4498fb4ee1d061d73dd549c inherit pub_methods_classOGRDataSource"><td class="mdescLeft"> </td><td class="mdescRight">Increment datasource reference count. <a href="#a82733127f4498fb4ee1d061d73dd549c">More...</a><br/></td></tr> <tr class="separator:a82733127f4498fb4ee1d061d73dd549c inherit pub_methods_classOGRDataSource"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a538760ac249d06681fd26c383e678cb1 inherit pub_methods_classOGRDataSource"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classOGRDataSource.html#a538760ac249d06681fd26c383e678cb1">Dereference</a> ()</td></tr> <tr class="memdesc:a538760ac249d06681fd26c383e678cb1 inherit pub_methods_classOGRDataSource"><td class="mdescLeft"> </td><td class="mdescRight">Decrement datasource reference count. <a href="#a538760ac249d06681fd26c383e678cb1">More...</a><br/></td></tr> <tr class="separator:a538760ac249d06681fd26c383e678cb1 inherit pub_methods_classOGRDataSource"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a265abe39da0a136335ca9b4d60e122d9 inherit pub_methods_classOGRDataSource"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classOGRDataSource.html#a265abe39da0a136335ca9b4d60e122d9">GetRefCount</a> () const </td></tr> <tr class="memdesc:a265abe39da0a136335ca9b4d60e122d9 inherit pub_methods_classOGRDataSource"><td class="mdescLeft"> </td><td class="mdescRight">Fetch reference count. <a href="#a265abe39da0a136335ca9b4d60e122d9">More...</a><br/></td></tr> <tr class="separator:a265abe39da0a136335ca9b4d60e122d9 inherit pub_methods_classOGRDataSource"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab7e7f2d617ad3df448d3e8ebaa800a6a inherit pub_methods_classOGRDataSource"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classOGRDataSource.html#ab7e7f2d617ad3df448d3e8ebaa800a6a">GetSummaryRefCount</a> () const </td></tr> <tr class="memdesc:ab7e7f2d617ad3df448d3e8ebaa800a6a inherit pub_methods_classOGRDataSource"><td class="mdescLeft"> </td><td class="mdescRight">Fetch reference count of datasource and all owned layers. <a href="#ab7e7f2d617ad3df448d3e8ebaa800a6a">More...</a><br/></td></tr> <tr class="separator:ab7e7f2d617ad3df448d3e8ebaa800a6a inherit pub_methods_classOGRDataSource"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ae4b1cb2d75f251cfb70d8a9c185a001d inherit pub_methods_classOGRDataSource"><td class="memItemLeft" align="right" valign="top">OGRErr </td><td class="memItemRight" valign="bottom"><a class="el" href="classOGRDataSource.html#ae4b1cb2d75f251cfb70d8a9c185a001d">Release</a> ()</td></tr> <tr class="memdesc:ae4b1cb2d75f251cfb70d8a9c185a001d inherit pub_methods_classOGRDataSource"><td class="mdescLeft"> </td><td class="mdescRight">Drop a reference to this datasource, and if the reference count drops to zero close (destroy) the datasource. <a href="#ae4b1cb2d75f251cfb70d8a9c185a001d">More...</a><br/></td></tr> <tr class="separator:ae4b1cb2d75f251cfb70d8a9c185a001d inherit pub_methods_classOGRDataSource"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad269574d5e2f63c5b76e001df4a98ffb inherit pub_methods_classOGRDataSource"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classOGRSFDriver.html">OGRSFDriver</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classOGRDataSource.html#ad269574d5e2f63c5b76e001df4a98ffb">GetDriver</a> () const </td></tr> <tr class="memdesc:ad269574d5e2f63c5b76e001df4a98ffb inherit pub_methods_classOGRDataSource"><td class="mdescLeft"> </td><td class="mdescRight">Returns the driver that the dataset was opened with. <a href="#ad269574d5e2f63c5b76e001df4a98ffb">More...</a><br/></td></tr> <tr class="separator:ad269574d5e2f63c5b76e001df4a98ffb inherit pub_methods_classOGRDataSource"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ada74eb42fd282aa285e9e527a5caeaed inherit pub_methods_classOGRDataSource"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classOGRDataSource.html#ada74eb42fd282aa285e9e527a5caeaed">SetDriver</a> (<a class="el" href="classOGRSFDriver.html">OGRSFDriver</a> *poDriver)</td></tr> <tr class="memdesc:ada74eb42fd282aa285e9e527a5caeaed inherit pub_methods_classOGRDataSource"><td class="mdescLeft"> </td><td class="mdescRight">Sets the driver that the dataset was created or opened with. <a href="#ada74eb42fd282aa285e9e527a5caeaed">More...</a><br/></td></tr> <tr class="separator:ada74eb42fd282aa285e9e527a5caeaed inherit pub_methods_classOGRDataSource"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a> Additional Inherited Members</h2></td></tr> <tr class="inherit_header pub_static_methods_classOGRDataSource"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classOGRDataSource')"><img src="closed.png" alt="-"/> Static Public Member Functions inherited from <a class="el" href="classOGRDataSource.html">OGRDataSource</a></td></tr> <tr class="memitem:a77841576d07b24a01208e4125ccb40a5 inherit pub_static_methods_classOGRDataSource"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classOGRDataSource.html#a77841576d07b24a01208e4125ccb40a5">DestroyDataSource</a> (<a class="el" href="classOGRDataSource.html">OGRDataSource</a> *)</td></tr> <tr class="memdesc:a77841576d07b24a01208e4125ccb40a5 inherit pub_static_methods_classOGRDataSource"><td class="mdescLeft"> </td><td class="mdescRight">Closes opened datasource and releases allocated resources. <a href="#a77841576d07b24a01208e4125ccb40a5">More...</a><br/></td></tr> <tr class="separator:a77841576d07b24a01208e4125ccb40a5 inherit pub_static_methods_classOGRDataSource"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p><a class="el" href="classOGRMutexedDataSource.html">OGRMutexedDataSource</a> class protects all virtual methods of <a class="el" href="classOGRDataSource.html">OGRDataSource</a> with a mutex. If the passed mutex is NULL, then no locking will be done.</p> <p>Note that the constructors and destructors are not explictely protected by the mutex* </p> </div><h2 class="groupheader">Member Function Documentation</h2> <a class="anchor" id="a0befb7cf821c88678f862a6ff92a0b37"></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="classOGRLayer.html">OGRLayer</a> * OGRMutexedDataSource::CopyLayer </td> <td>(</td> <td class="paramtype"><a class="el" href="classOGRLayer.html">OGRLayer</a> * </td> <td class="paramname"><em>poSrcLayer</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>pszNewName</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char ** </td> <td class="paramname"><em>papszOptions</em> = <code>NULL</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Duplicate an existing layer. </p> <p>This method creates a new layer, duplicate the field definitions of the source layer and then duplicate each features of the source layer. The papszOptions argument can be used to control driver specific creation options. These options are normally documented in the format specific documentation. The source layer may come from another dataset.</p> <p>This method is the same as the C function <a class="el" href="ogr__api_8h.html#a628d34530517b618696c97b73de31df7" title="Duplicate an existing layer. ">OGR_DS_CopyLayer()</a>.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">poSrcLayer</td><td>source layer. </td></tr> <tr><td class="paramname">pszNewName</td><td>the name of the layer to create. </td></tr> <tr><td class="paramname">papszOptions</td><td>a StringList of name=value options. Options are driver specific.</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>an handle to the layer, or NULL if an error occurs. </dd></dl> <p>Reimplemented from <a class="el" href="classOGRDataSource.html#a42dc7f7f538cd4f083af350722fe53ae">OGRDataSource</a>.</p> <p>References <a class="el" href="classOGRDataSource.html#a42dc7f7f538cd4f083af350722fe53ae">OGRDataSource::CopyLayer()</a>.</p> </div> </div> <a class="anchor" id="affa19c37cdbfc45c0a79fb3fa2bbc8c8"></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="classOGRLayer.html">OGRLayer</a> * OGRMutexedDataSource::CreateLayer </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"><a class="el" href="classOGRSpatialReference.html">OGRSpatialReference</a> * </td> <td class="paramname"><em>poSpatialRef</em> = <code>NULL</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="ogr__core_8h.html#a800236a0d460ef66e687b7b65610f12a">OGRwkbGeometryType</a> </td> <td class="paramname"><em>eGType</em> = <code><a class="el" href="ogr__core_8h.html#a800236a0d460ef66e687b7b65610f12aa3645f782f9b9f7632d7e7cdd0451d58f">wkbUnknown</a></code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char ** </td> <td class="paramname"><em>papszOptions</em> = <code>NULL</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>This method attempts to create a new layer on the data source with the indicated name, coordinate system, geometry type. </p> <p>The papszOptions argument can be used to control driver specific creation options. These options are normally documented in the format specific documentation.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">pszName</td><td>the name for the new layer. This should ideally not match any existing layer on the datasource. </td></tr> <tr><td class="paramname">poSpatialRef</td><td>the coordinate system to use for the new layer, or NULL if no coordinate system is available. </td></tr> <tr><td class="paramname">eGType</td><td>the geometry type for the layer. Use wkbUnknown if there are no constraints on the types geometry to be written. </td></tr> <tr><td class="paramname">papszOptions</td><td>a StringList of name=value options. Options are driver specific.</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>NULL is returned on failure, or a new <a class="el" href="classOGRLayer.html">OGRLayer</a> handle on success.</dd></dl> <p><b>Example:</b></p> <div class="fragment"><div class="line"><span class="preprocessor">#include "<a class="code" href="ogrsf__frmts_8h.html">ogrsf_frmts.h</a>"</span> </div> <div class="line"><span class="preprocessor">#include "<a class="code" href="cpl__string_8h.html">cpl_string.h</a>"</span></div> <div class="line"></div> <div class="line">...</div> <div class="line"></div> <div class="line"> <a class="code" href="classOGRLayer.html">OGRLayer</a> *poLayer;</div> <div class="line"> <span class="keywordtype">char</span> **papszOptions;</div> <div class="line"></div> <div class="line"> <span class="keywordflow">if</span>( !poDS-><a class="code" href="classOGRDataSource.html#a3b7c054c376151e1a1f63861d7239c8b">TestCapability</a>( ODsCCreateLayer ) )</div> <div class="line"> {</div> <div class="line"> ...</div> <div class="line"> }</div> <div class="line"></div> <div class="line"> papszOptions = <a class="code" href="cpl__string_8h.html#a8dbce00a6e7fa4710613e3e4c963dd5d">CSLSetNameValue</a>( papszOptions, <span class="stringliteral">"DIM"</span>, <span class="stringliteral">"2"</span> );</div> <div class="line"> poLayer = poDS-><a class="code" href="classOGRDataSource.html#a39cfc6e0ee790506d7638b0dce03c7da">CreateLayer</a>( <span class="stringliteral">"NewLayer"</span>, NULL, <a class="code" href="ogr__core_8h.html#a800236a0d460ef66e687b7b65610f12aa3645f782f9b9f7632d7e7cdd0451d58f">wkbUnknown</a>,</div> <div class="line"> papszOptions );</div> <div class="line"> <a class="code" href="cpl__string_8h.html#a5a39b9c5896a273cc6f06c1d5be93238">CSLDestroy</a>( papszOptions );</div> <div class="line"></div> <div class="line"> <span class="keywordflow">if</span>( poLayer == NULL )</div> <div class="line"> {</div> <div class="line"> ...</div> <div class="line"> } </div> </div><!-- fragment --> <p>Reimplemented from <a class="el" href="classOGRDataSource.html#a39cfc6e0ee790506d7638b0dce03c7da">OGRDataSource</a>.</p> <p>References <a class="el" href="classOGRDataSource.html#a39cfc6e0ee790506d7638b0dce03c7da">OGRDataSource::CreateLayer()</a>.</p> </div> </div> <a class="anchor" id="af573c7ab751c6eef966170c3f3695ce3"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">OGRErr OGRMutexedDataSource::DeleteLayer </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>iLayer</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Delete the indicated layer from the datasource. </p> <p>If this method is supported the ODsCDeleteLayer capability will test TRUE on the <a class="el" href="classOGRDataSource.html">OGRDataSource</a>.</p> <p>This method is the same as the C function <a class="el" href="ogr__api_8h.html#a85827a79cd2ddb5a55126e785bee427d" title="Delete the indicated layer from the datasource. ">OGR_DS_DeleteLayer()</a>.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">iLayer</td><td>the index of the layer to delete.</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>OGRERR_NONE on success, or OGRERR_UNSUPPORTED_OPERATION if deleting layers is not supported for this datasource. </dd></dl> <p>Reimplemented from <a class="el" href="classOGRDataSource.html#ae108ddad49607c80d3511071ffe248a5">OGRDataSource</a>.</p> <p>References <a class="el" href="classOGRDataSource.html#ae108ddad49607c80d3511071ffe248a5">OGRDataSource::DeleteLayer()</a>.</p> </div> </div> <a class="anchor" id="a55c3322615c30a963c0aaf33e3ca2d23"></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="classOGRLayer.html">OGRLayer</a> * OGRMutexedDataSource::ExecuteSQL </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>pszStatement</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classOGRGeometry.html">OGRGeometry</a> * </td> <td class="paramname"><em>poSpatialFilter</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>pszDialect</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">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Execute an SQL statement against the data store. </p> <p>The result of an SQL query is either NULL for statements that are in error, or that have no results set, or an <a class="el" href="classOGRLayer.html">OGRLayer</a> pointer representing a results set from the query. Note that this <a class="el" href="classOGRLayer.html">OGRLayer</a> is in addition to the layers in the data store and must be destroyed with <a class="el" href="classOGRDataSource.html#a7d3ee7601f510a87afc76de8a51aa9b1" title="Release results of ExecuteSQL(). ">OGRDataSource::ReleaseResultSet()</a> before the data source is closed (destroyed).</p> <p>This method is the same as the C function <a class="el" href="ogr__api_8h.html#a9892ecb0bf61add295bd9decdb13797a" title="Execute an SQL statement against the data store. ">OGR_DS_ExecuteSQL()</a>.</p> <p>For more information on the SQL dialect supported internally by OGR review the <a href="ogr_sql.html">OGR SQL</a> document. Some drivers (ie. Oracle and PostGIS) pass the SQL directly through to the underlying RDBMS.</p> <p>Starting with OGR 1.10, the <a href="ogr_sql_sqlite.html">SQLITE dialect</a> can also be used.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">pszStatement</td><td>the SQL statement to execute. </td></tr> <tr><td class="paramname">poSpatialFilter</td><td>geometry which represents a spatial filter. Can be NULL. </td></tr> <tr><td class="paramname">pszDialect</td><td>allows control of the statement dialect. If set to NULL, the OGR SQL engine will be used, except for RDBMS drivers that will use their dedicated SQL engine, unless OGRSQL is explicitely passed as the dialect. Starting with OGR 1.10, the SQLITE dialect can also be used.</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>an <a class="el" href="classOGRLayer.html">OGRLayer</a> containing the results of the query. Deallocate with <a class="el" href="classOGRMutexedDataSource.html#acfa11d74a29d6de768a7a7b644ab05a2" title="Release results of ExecuteSQL(). ">ReleaseResultSet()</a>. </dd></dl> <p>Reimplemented from <a class="el" href="classOGRDataSource.html#aa6acc228db6513784a56ce12334a8c33">OGRDataSource</a>.</p> <p>References <a class="el" href="classOGRDataSource.html#aa6acc228db6513784a56ce12334a8c33">OGRDataSource::ExecuteSQL()</a>.</p> </div> </div> <a class="anchor" id="a7a3ca3e8d2780233574b3cbf0b6c2e3f"></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="classOGRLayer.html">OGRLayer</a> * OGRMutexedDataSource::GetLayer </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>iLayer</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Fetch a layer by index. </p> <p>The returned layer remains owned by the <a class="el" href="classOGRDataSource.html">OGRDataSource</a> and should not be deleted by the application.</p> <p>This method is the same as the C function <a class="el" href="ogr__api_8h.html#a03998029f904d1c3b12de40114e7503e" title="Fetch a layer by index. ">OGR_DS_GetLayer()</a>.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">iLayer</td><td>a layer number between 0 and <a class="el" href="classOGRMutexedDataSource.html#adfaac04fe8284576d8ad91ce7de1f9f1" title="Get the number of layers in this data source. ">GetLayerCount()</a>-1.</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>the layer, or NULL if iLayer is out of range or an error occurs. </dd></dl> <p>Implements <a class="el" href="classOGRDataSource.html#a618c2fdb1067c9357ca2de9fa6cd5962">OGRDataSource</a>.</p> <p>References <a class="el" href="classOGRDataSource.html#a618c2fdb1067c9357ca2de9fa6cd5962">OGRDataSource::GetLayer()</a>.</p> </div> </div> <a class="anchor" id="a4d8134541966f63ede60a819c374e81d"></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="classOGRLayer.html">OGRLayer</a> * OGRMutexedDataSource::GetLayerByName </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>pszLayerName</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Fetch a layer by name. </p> <p>The returned layer remains owned by the <a class="el" href="classOGRDataSource.html">OGRDataSource</a> and should not be deleted by the application.</p> <p>This method is the same as the C function <a class="el" href="ogr__api_8h.html#a74af4912b67bf2a7b6e3230711a40d0e" title="Fetch a layer by name. ">OGR_DS_GetLayerByName()</a>.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">pszLayerName</td><td>the layer name of the layer to fetch.</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>the layer, or NULL if Layer is not found or an error occurs. </dd></dl> <p>Reimplemented from <a class="el" href="classOGRDataSource.html#aa0fafafc83084ad140ecdf17d9e139f9">OGRDataSource</a>.</p> <p>References <a class="el" href="classOGRDataSource.html#aa0fafafc83084ad140ecdf17d9e139f9">OGRDataSource::GetLayerByName()</a>.</p> </div> </div> <a class="anchor" id="adfaac04fe8284576d8ad91ce7de1f9f1"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">int OGRMutexedDataSource::GetLayerCount </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Get the number of layers in this data source. </p> <p>This method is the same as the C function <a class="el" href="ogr__api_8h.html#ac6da541cb655ab631df729e71da2e762" title="Get the number of layers in this data source. ">OGR_DS_GetLayerCount()</a>.</p> <dl class="section return"><dt>Returns</dt><dd>layer count. </dd></dl> <p>Implements <a class="el" href="classOGRDataSource.html#a031694429394662fd50353c5e2b68692">OGRDataSource</a>.</p> <p>References <a class="el" href="classOGRDataSource.html#a031694429394662fd50353c5e2b68692">OGRDataSource::GetLayerCount()</a>.</p> </div> </div> <a class="anchor" id="af6c7b18ae5c301e0e905f1c131928fa3"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">const char * OGRMutexedDataSource::GetName </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Returns the name of the data source. </p> <p>This string should be sufficient to open the data source if passed to the same <a class="el" href="classOGRSFDriver.html">OGRSFDriver</a> that this data source was opened with, but it need not be exactly the same string that was used to open the data source. Normally this is a filename.</p> <p>This method is the same as the C function <a class="el" href="ogr__api_8h.html#aea8cc826474b55371b1b4e24a24ba1db" title="Returns the name of the data source. ">OGR_DS_GetName()</a>.</p> <dl class="section return"><dt>Returns</dt><dd>pointer to an internal name string which should not be modified or freed by the caller. </dd></dl> <p>Implements <a class="el" href="classOGRDataSource.html#a682c885a30cbc3a35ed59ed39f316a55">OGRDataSource</a>.</p> <p>References <a class="el" href="classOGRDataSource.html#a682c885a30cbc3a35ed59ed39f316a55">OGRDataSource::GetName()</a>.</p> </div> </div> <a class="anchor" id="a3ce12e9856e3418e1e77e61ac4199bce"></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="classOGRStyleTable.html">OGRStyleTable</a> * OGRMutexedDataSource::GetStyleTable </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Returns data source style table. </p> <p>This method is the same as the C function OGR_DS_GetStyleTable().</p> <dl class="section return"><dt>Returns</dt><dd>pointer to a style table which should not be modified or freed by the caller. </dd></dl> <p>Reimplemented from <a class="el" href="classOGRDataSource.html#a650540f84db08b18f225f430d1030be5">OGRDataSource</a>.</p> <p>References <a class="el" href="classOGRDataSource.html#a650540f84db08b18f225f430d1030be5">OGRDataSource::GetStyleTable()</a>.</p> </div> </div> <a class="anchor" id="acfa11d74a29d6de768a7a7b644ab05a2"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void OGRMutexedDataSource::ReleaseResultSet </td> <td>(</td> <td class="paramtype"><a class="el" href="classOGRLayer.html">OGRLayer</a> * </td> <td class="paramname"><em>poResultsSet</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Release results of <a class="el" href="classOGRMutexedDataSource.html#a55c3322615c30a963c0aaf33e3ca2d23" title="Execute an SQL statement against the data store. ">ExecuteSQL()</a>. </p> <p>This method should only be used to deallocate OGRLayers resulting from an <a class="el" href="classOGRMutexedDataSource.html#a55c3322615c30a963c0aaf33e3ca2d23" title="Execute an SQL statement against the data store. ">ExecuteSQL()</a> call on the same <a class="el" href="classOGRDataSource.html">OGRDataSource</a>. Failure to deallocate a results set before destroying the <a class="el" href="classOGRDataSource.html">OGRDataSource</a> may cause errors.</p> <p>This method is the same as the C function OGR_L_ReleaseResultSet().</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">poResultsSet</td><td>the result of a previous <a class="el" href="classOGRMutexedDataSource.html#a55c3322615c30a963c0aaf33e3ca2d23" title="Execute an SQL statement against the data store. ">ExecuteSQL()</a> call. </td></tr> </table> </dd> </dl> <p>Reimplemented from <a class="el" href="classOGRDataSource.html#a7d3ee7601f510a87afc76de8a51aa9b1">OGRDataSource</a>.</p> <p>References <a class="el" href="classOGRDataSource.html#a7d3ee7601f510a87afc76de8a51aa9b1">OGRDataSource::ReleaseResultSet()</a>.</p> </div> </div> <a class="anchor" id="a9a82ef489ae851e3d0e8997183185a29"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void OGRMutexedDataSource::SetStyleTable </td> <td>(</td> <td class="paramtype"><a class="el" href="classOGRStyleTable.html">OGRStyleTable</a> * </td> <td class="paramname"><em>poStyleTable</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Set data source style table. </p> <p>This method operate exactly as <a class="el" href="classOGRDataSource.html#a4946597d697db8dd802e20fc49c0c9ea" title="Set data source style table. ">OGRDataSource::SetStyleTableDirectly()</a> except that it does not assume ownership of the passed table.</p> <p>This method is the same as the C function OGR_DS_SetStyleTable().</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">poStyleTable</td><td>pointer to style table to set </td></tr> </table> </dd> </dl> <p>Reimplemented from <a class="el" href="classOGRDataSource.html#a36054cdc7e65827c05d3a27c7290f8d2">OGRDataSource</a>.</p> <p>References <a class="el" href="classOGRDataSource.html#a36054cdc7e65827c05d3a27c7290f8d2">OGRDataSource::SetStyleTable()</a>.</p> </div> </div> <a class="anchor" id="ade46fb2ce3fb8c542f2eef2f28207cbb"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void OGRMutexedDataSource::SetStyleTableDirectly </td> <td>(</td> <td class="paramtype"><a class="el" href="classOGRStyleTable.html">OGRStyleTable</a> * </td> <td class="paramname"><em>poStyleTable</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Set data source style table. </p> <p>This method operate exactly as <a class="el" href="classOGRDataSource.html#a36054cdc7e65827c05d3a27c7290f8d2" title="Set data source style table. ">OGRDataSource::SetStyleTable()</a> except that it assumes ownership of the passed table.</p> <p>This method is the same as the C function OGR_DS_SetStyleTableDirectly().</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">poStyleTable</td><td>pointer to style table to set </td></tr> </table> </dd> </dl> <p>Reimplemented from <a class="el" href="classOGRDataSource.html#a4946597d697db8dd802e20fc49c0c9ea">OGRDataSource</a>.</p> <p>References <a class="el" href="classOGRDataSource.html#a4946597d697db8dd802e20fc49c0c9ea">OGRDataSource::SetStyleTableDirectly()</a>.</p> </div> </div> <a class="anchor" id="a2110422a3ac20b436edc4d63e2f95269"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">OGRErr OGRMutexedDataSource::SyncToDisk </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Flush pending changes to disk. </p> <p>This call is intended to force the datasource to flush any pending writes to disk, and leave the disk file in a consistent state. It would not normally have any effect on read-only datasources.</p> <p>Some data sources do not implement this method, and will still return OGRERR_NONE. An error is only returned if an error occurs while attempting to flush to disk.</p> <p>The default implementation of this method just calls the <a class="el" href="classOGRMutexedDataSource.html#a2110422a3ac20b436edc4d63e2f95269" title="Flush pending changes to disk. ">SyncToDisk()</a> method on each of the layers. Conceptionally, calling <a class="el" href="classOGRMutexedDataSource.html#a2110422a3ac20b436edc4d63e2f95269" title="Flush pending changes to disk. ">SyncToDisk()</a> on a datasource should include any work that might be accomplished by calling <a class="el" href="classOGRMutexedDataSource.html#a2110422a3ac20b436edc4d63e2f95269" title="Flush pending changes to disk. ">SyncToDisk()</a> on layers in that data source.</p> <p>In any event, you should always close any opened datasource with <a class="el" href="classOGRDataSource.html#a77841576d07b24a01208e4125ccb40a5" title="Closes opened datasource and releases allocated resources. ">OGRDataSource::DestroyDataSource()</a> that will ensure all data is correctly flushed.</p> <p>This method is the same as the C function <a class="el" href="ogr__api_8h.html#a139ab189c06d9f5f26e21b134928f882" title="Flush pending changes to disk. ">OGR_DS_SyncToDisk()</a>.</p> <dl class="section return"><dt>Returns</dt><dd>OGRERR_NONE if no error occurs (even if nothing is done) or an error code. </dd></dl> <p>Reimplemented from <a class="el" href="classOGRDataSource.html#a1af1c7cf202f9a2ca2310bbfa3d00cca">OGRDataSource</a>.</p> <p>References <a class="el" href="classOGRDataSource.html#a1af1c7cf202f9a2ca2310bbfa3d00cca">OGRDataSource::SyncToDisk()</a>.</p> </div> </div> <a class="anchor" id="a8051fbc5686073d25d57cf72919e8a88"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">int OGRMutexedDataSource::TestCapability </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>pszCapability</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Test if capability is available. </p> <p>One of the following data source capability names can be passed into this method, and a TRUE or FALSE value will be returned indicating whether or not the capability is available for this object.</p> <ul> <li> <p class="startli"><b>ODsCCreateLayer</b>: True if this datasource can create new layers.</p> <p class="endli"></p> </li> <li> <p class="startli"><b>ODsCDeleteLayer</b>: True if this datasource can delete existing layers.</p> <p class="endli"></p> </li> <li> <p class="startli"><b>ODsCCreateGeomFieldAfterCreateLayer</b>: True if the layers of this datasource support CreateGeomField() just after layer creation.</p> <p class="endli"></p> </li> </ul> <p>The #define macro forms of the capability names should be used in preference to the strings themselves to avoid mispelling.</p> <p>This method is the same as the C function <a class="el" href="ogr__api_8h.html#ad0fefab726442fa71ab5ef74fe8549a6" title="Test if capability is available. ">OGR_DS_TestCapability()</a>.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">pszCapability</td><td>the capability to test.</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>TRUE if capability available otherwise FALSE. </dd></dl> <p>Implements <a class="el" href="classOGRDataSource.html#a3b7c054c376151e1a1f63861d7239c8b">OGRDataSource</a>.</p> <p>References <a class="el" href="classOGRDataSource.html#a3b7c054c376151e1a1f63861d7239c8b">OGRDataSource::TestCapability()</a>.</p> </div> </div> <hr/>The documentation for this class was generated from the following files:<ul> <li><a class="el" href="ogrmutexeddatasource_8h_source.html">ogrmutexeddatasource.h</a></li> <li>ogrmutexeddatasource.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>