<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Abel,<br>
    </p>
    <div class="moz-cite-prefix">Le 23/02/2024 à 10:34, Abel Pau via
      gdal-dev a écrit :<br>
    </div>
    <blockquote type="cite"
cite="mid:PAXPR07MB7775A0A768660C9138FA0689A2552@PAXPR07MB7775.eurprd07.prod.outlook.com">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <meta name="Generator"
        content="Microsoft Word 15 (filtered medium)">
      <!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]-->
      <style>@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}span.EstiloCorreo17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}.MsoChpDefault
        {mso-style-type:export-only;
        mso-fareast-language:EN-US;}div.WordSection1
        {page:WordSection1;}</style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
      <div class="WordSection1">
        <p class="MsoNormal"><span lang="ES">Hi,<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">after reading </span><span
            lang="ES"><a
href="https://gdal.org/user/virtual_file_systems.html#vsistdout-standard-output-streaming"
              moz-do-not-send="true"><span lang="EN-US">https://gdal.org/user/virtual_file_systems.html#vsistdout-standard-output-streaming</span></a></span><span
            lang="ES">
          </span><span lang="EN-US">I have to say I don’t understand
            what it means.<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">I which cases it’s used?
            Some example to consider?</span></p>
      </div>
    </blockquote>
    <p>/vsistdout/ also makes sense for formats that can be streamed in
      writing, that is you can generate the content as data flows in the
      driver and don't have to seek back to edit something in the
      header. So only a small subset of formats/drivers can natively
      support that. The canonical example is a CSV file. So I'd say
      don't worry about that use case for your driver.<br>
    </p>
    <span lang="EN-US"><o:p></o:p></span>
    <blockquote type="cite"
cite="mid:PAXPR07MB7775A0A768660C9138FA0689A2552@PAXPR07MB7775.eurprd07.prod.outlook.com">
      <div class="WordSection1">
        <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">On the other hand, I am
            confused about the Update concept.<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">My driver is capable of
            creating from zero a layer from other formats.<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">But I haven’t programmed
            the capacity to insert a feature in a pre-existent layer (I
            cannot simply add at the end of the file because de format
            description is a little more complicated).</span></p>
      </div>
    </blockquote>
    <p>Same thing as above. A lot of drivers can only create + add
      features in the newly features, but can't (at least easily) edit
      or append to an existing file. So just return nullptr when Open()
      is called with the update flag with a CPLError() message.</p>
    <p>Something like</p>
    <p>    if (poDS != nullptr && poOpenInfo->eAccess ==
      GA_Update)<br>
          {<br>
              CPLError(CE_Failure, CPLE_OpenFailed,<br>
                       "SDTS Driver doesn't support update.");<br>
              delete poDS;<br>
              poDS = nullptr;<br>
          }<br>
    </p>
    <p>You have been in a "development black hole" for a long time now,
      so I'd suggest you limit the functionality to what you've already
      implemented, and make it in good shape for review. The more code,
      the harder & longer effort for reviewers. You can always add
      new functionality in follow-up pull requests once a base has
      already been integrated.</p>
    <p>Even<span style="white-space: pre-wrap"></span><br>
    </p>
    <p>-- </p>
    <pre class="moz-signature" cols="72"><a class="moz-txt-link-freetext" href="http://www.spatialys.com">http://www.spatialys.com</a>
My software is free, but my time generally not.</pre>
  </body>
</html>