<html>   <head>       <style type="text/css">p {margin:2px 0px;font-family: Arial; font-size: 14px;}</style>   </head>   <body>       <p>Hi Prasun,</p>
<blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left: 1px solid #cccccc; padding-left: 1ex;">
<div> </div>
</blockquote>
<div>>Sorry, but I did not fully understand this. Can you explain a bit more? What is the purpose of GenerateExportHeader?</div>
<div> </div>
<div>For tagging a function/class as deprecated you need to decorate it with compiler specific switches e.g. __attribute__ ((__deprecated__)) for the gcc case.</div>
<div> </div>
<div>The mentioned macro supports such and other stuff. For a real example, please unpack the append zip file in to a local, say "source". Then run</div>
<div> </div>
<div>mkdir build</div>
<div>cd build</div>
<div>cmake ../source</div>
<div>make</div>
<div>make install DESTDIR=$PWD/tmp</div>
<div> </div>
<p>and inspect the installed files. You will see that cmake created a file name 'somelib_export.h', which provides some macros for example SOMELIB_DEPRECATED to tag deprecated functions in a compiler agnostic way, which is good.</p>
<p> </p>
<p>Additional there is a SOMELIB_EXPORT macro, which helps to export classes from shared libraries for Windows/MSVC and is required to build a shared ktoblzcheck library for Windows.</p>
<p> </p>
<p>See https://docs.microsoft.com/de-de/cpp/cpp/using-dllimport-and-dllexport-in-cpp-classes?view=vs-2019 and https://stackoverflow.com/questions/6840576/how-to-export-a-c-class-from-a-dll for some docs.</p>
<p> </p>
<p>You will be able to implement such support by your own and using the macro may require some more effort to understand in the beginning, but it provides a standard way for solving such things.</p>
<p> </p>
<p>In our case using generate_export_header(ktoblzcheck) would probably be a good starting point.</p>
<p> </p>
<p> </p>
<blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left: 1px solid #cccccc; padding-left: 1ex;">
<div>
<div>Can you list those functions ?</div>
</div>
</blockquote>
<p>I'm coming later back to this, as you need to add the above mentioned stuff before we can decorate them.</p>
<p> </p>
<p> </p>
<p>Regards</p>
<p>Ralf <br /><span style="font-family: Arial; font-size: 11px;">-----ursprüngliche Nachricht-----<br /> Von: <a href="mailto:prasun.code@gmail.com" target="_blank" rel="noopener">prasun.code@gmail.com</a><br /> Gesendet: 16.07.2020 12:20 Uhr<br /> An: <a href="mailto:ralf.habacker@freenet.de" target="_blank" rel="noopener">ralf.habacker@freenet.de</a>, <a href="mailto:kde-finance-apps@kde.org" target="_blank" rel="noopener">kde-finance-apps@kde.org</a><br /> Betreff: Re: Re: GSoC'20 progress : Phase I related</span><br /><br /></p>
<div dir="ltr">
<blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left: 1px solid #cccccc; padding-left: 1ex;">I think we misunderstood here. Using DEPRECATED is a way to tag outdated function. I made a mistake by adding an example, which I recognized later that it is still required.</blockquote>
<div>Thanks for the clarification. </div>
<div> </div>
<blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left: 1px solid #cccccc; padding-left: 1ex;">
<div>
<div>Can you list those functions ?</div>
</div>
</blockquote>
<div>
<ul>
<li> <span style="color: #d9d7ce;">std::</span><span style="color: #ffae57;">time_t</span> <span style="color: #ffd580;">dataValidStartDate</span><span style="color: #d9d7ce;">()</span>
<div> </div>
</li>
<li>
<div><span style="color: #d9d7ce;"> std::</span><span style="color: #ffae57;">time_t</span> <span style="color: #ffd580;">dataValidEndDate</span><span style="color: #d9d7ce;">()</span></div>
</li>
<li>
<div><span style="color: #d9d7ce;"> </span><span style="color: #d9d7ce;">std::</span><span style="color: #ffae57;">time_t</span> <span style="color: #ffd580;">closestValidData</span><span style="color: #d9d7ce;">(std::</span><span style="color: #ffae57;">time_t</span> <span style="color: #d4bfff;">date</span><span style="color: #d9d7ce;">)</span></div>
</li>
</ul>
<div>There are some other methods which deal with datafile and dates but imo their implementation can be changed to allow them to work as intended.</div>
<div>For e.g.<span style="color: #d9d7ce;"> std::string </span><span style="color: #ffd580;">getFilenameClosestDateToday</span><span style="color: #d9d7ce;">() could be implemented to just return the default database name and</span><span style="color: #ffae57;"> bool</span> <span style="color: #ffd580;">loadDataForDate</span><span style="color: #d9d7ce;">(std::</span><span style="color: #ffae57;">time_t</span> <span style="color: #d4bfff;">date</span><span style="color: #d9d7ce;">)</span></div>
<div>could be implemented to only load the entries in database which were valid at the given date.</div>
<div> </div>
<div>
<blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left: 1px solid #cccccc; padding-left: 1ex;">
<div>As there may be additional function be tagged as deprecated, the related macros should go into one common file. cmake has support for generating such files, see <a href="https://cmake.org/cmake/help/v3.0/module/GenerateExportHeader.html" target="_blank" rel="noopener">https://cmake.org/cmake/help/v3.0/module/GenerateExportHeader.html</a> and <a href="https://stackoverflow.com/questions/16982144/cmake-and-generateexportheader" target="_blank" rel="noopener">https://stackoverflow.com/questions/16982144/cmake-and-generateexportheader</a>.</div>
</blockquote>
<div>Sorry, but I did not fully understand this. Can you explain a bit more? What is the purpose of GenerateExportHeader?</div>
<div> </div>
<div>Thanks.</div>
<div>Prasun</div>
</div>
</div>
</div>
<p> </p>
<div class="gmail_quote">
<div class="gmail_attr" dir="ltr">On Sat, 11 Jul 2020 at 18:24, <<a href="mailto:ralf.habacker@freenet.de" target="_blank" rel="noopener">ralf.habacker@freenet.de</a>> wrote:</div>
<blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left: 1px solid #cccccc; padding-left: 1ex;">
<div>
<p> </p>
<div> </div>
<div>Hi Prasun,</div>
<div><br />> As you suggested to not use the DEPRECATED macro, I could not find any suitable thing to do with</div>
<div>them.</div>
<div> </div>
<div>I think we misunderstood here. Using DEPRECATED is a way to tag outdated function. I made a mistake by adding an example, which I recognized later that it is still required.</div>
<div>As there may be additional function be tagged as deprecated, the related macros should go into one common file. cmake has support for generating such files, see <a href="https://cmake.org/cmake/help/v3.0/module/GenerateExportHeader.html" target="_blank" rel="noopener">https://cmake.org/cmake/help/v3.0/module/GenerateExportHeader.html</a> and <a href="https://stackoverflow.com/questions/16982144/cmake-and-generateexportheader" target="_blank" rel="noopener">https://stackoverflow.com/questions/16982144/cmake-and-generateexportheader</a>.</div>
<div> </div>
<div>Can you list those functions ?</div>
<div> </div>
<div>> Silly question, but could you suggest a good commit message after the changes by code beautifier?</div>
<p> </p>
<p>Convert bank data support to Sqlite format ?</p>
<p>Add some more details, add link to proposal</p>
<p> </p>
<div>> Meanwhile, if you could give some pointers regarding the support of additional countries,</div>
<div>> I could start planning for it according to my timeline.</div>
<div>I remember, I already  wrote something about this at this, need to seach for ...</div>
<div> </div>
<div>From the proposal:</div>
<div>
<div>
<div>
<div>
<div><span style="font-weight: 400;">- Add support for additional countries to the checking library. </span></div>
<div> </div>
<div>In the first step I suggest to implement downloading and generating (additional) sqlite databases for additional countries (bankdata.<lang>.db) to have valid test data (see below).</div>
<div>I suggest to start with one additional country for example 'netherland', see below</div>
<div> </div>
<div>Then the api and tools should be extented to be able to select/use a dedicated country.</div>
<div> </div>
<div>There are two ways</div>
<div> </div>
<div>ktoblzcheck --file bankdata.de.db  ...</div>
<div>
<div>ktoblzcheck --file bankdata.nl.db  ...</div>
ktoblzcheck --file bankdata.ch.db ...</div>
<div> </div>
<div>When using the default instal location of database files there should be a way to select the requested country</div>
<div> </div>
<div>ktoblzcheck [<country>] <bank-id> <account-id></div>
<div> </div>
<div>e.g ktoblzcheck DE <bank-id> <account-id></div>
<div>
<div> </div>
</div>
<div>and  defaults to german bankdata if no country is given</div>
<div> </div>
<div>The same should be possible by using the api. Please make proposals for extending the api.</div>
<div> </div>
<span style="font-weight: 400;">- The bankdata files also need to be added corresponding to these countries.</span></div>
<div>
<div>At <a href="https://invent.kde.org/office/kmymoney/-/tree/master/kmymoney/plugins/ibanbicdata" target="_blank" rel="noopener">https://invent.kde.org/office/kmymoney/-/tree/master/kmymoney/plugins/ibanbicdata</a> there are additional python scripts to generate databases for</div>
<div> </div>
</div>
</div>
</div>
<div>netherland - <a href="https://invent.kde.org/office/kmymoney/-/blob/master/kmymoney/plugins/ibanbicdata/netherlands" target="_blank" rel="noopener">https://invent.kde.org/office/kmymoney/-/blob/master/kmymoney/plugins/ibanbicdata/netherlands</a></div>
<div>switzerland - <a href="https://invent.kde.org/office/kmymoney/-/blob/master/kmymoney/plugins/ibanbicdata/switzerland" target="_blank" rel="noopener">https://invent.kde.org/office/kmymoney/-/blob/master/kmymoney/plugins/ibanbicdata/switzerland</a></div>
<p> </p>
<p>which need to be merged into ktoblzcheck. The raw bank data files mentioned in the python scripts  need to be fetched similar to the german bank data files, the database must be created and installed.</p>
<p> </p>
<p>Regards</p>
<p>Ralf</p>
</div>
<div>
<div> </div>
</div>
<p><br style="font-weight: 400;" /><span style="font-family: Arial; font-size: 11px;">-----ursprüngliche Nachricht-----<br /> Von: <a href="mailto:prasun.code@gmail.com" target="_blank" rel="noopener">prasun.code@gmail.com</a><br /> Gesendet: 11.07.2020 06:33 Uhr<br /> An: <a href="mailto:kde-finance-apps@kde.org" target="_blank" rel="noopener">kde-finance-apps@kde.org</a><br /> Betreff: Re: GSoC'20 progress : Phase I related</span><br /><br /></p>
<div dir="ltr">
<div>Hi Ralf,</div>
<div>I have opened a merge request for the bug.</div>
<div><a href="https://sourceforge.net/p/ktoblzcheck/code/merge-requests/10/" target="_blank" rel="noopener">https://sourceforge.net/p/ktoblzcheck/code/merge-requests/10/</a></div>
<div> </div>
<div>Before opening a merge request for the commits, I would like to remind you that I have</div>
<div>still not dealt with the methods of public API which do not make sense any more. As you</div>
<div>suggested to not use the DEPRECATED macro, I could not find any suitable thing to do with</div>
<div>them. Please advise if I should do anything regarding this.</div>
<div> </div>
<blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left: 1px solid #cccccc; padding-left: 1ex;">
<div>You may run uncrustify.sh [1] from the source dir before opening the <br />merge request and check all commit messages against spelling errors.</div>
</blockquote>
<div> </div>
<div>Silly question, but could you suggest a good commit message after the changes by code beautifier?</div>
<div> </div>
<div>Meanwhile, if you could give some pointers regarding the support of additional countries,</div>
<div>I could start planning for it according to my timeline.</div>
<div> </div>
<div>Thanks.</div>
<div>Prasun</div>
</div>
<p> </p>
<div class="gmail_quote">
<div class="gmail_attr" dir="ltr">On Fri, 10 Jul 2020 at 13:47, Ralf Habacker <<a href="mailto:ralf.habacker@freenet.de" target="_blank" rel="noopener">ralf.habacker@freenet.de</a>> wrote:</div>
<blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left: 1px solid #cccccc; padding-left: 1ex;">Am 06.07.20 um 21:30 schrieb Prasun Kumar:<br />Hi Prasun,<br /><br />> BTW: You can read the progress reports at my blog: <br />> <a href="https://prasunka.github.io/tag/gsoc/" target="_blank" rel="noopener noreferrer">https://prasunka.github.io/tag/gsoc/</a><br /><br />Nice. To complete the first task to 100% the changes should be merged <br />into the master branch of the ktoblzcheck project by opening a merge <br />request. After this merge a new release can be make with this feature <br />included.<br /><br />You may run uncrustify.sh [1] from the source dir before opening the <br />merge request and check all commit messages against spelling errors.<br /><br />After opening the merge request, the mentors are going to review the <br />changes and are merging the patches, if no issues will be found.<br /><br />[1] Unfortunally the mentioned script contains a bug <br />(<a href="https://sourceforge.net/p/ktoblzcheck/bugs/5/" target="_blank" rel="noopener noreferrer">https://sourceforge.net/p/ktoblzcheck/bugs/5/</a>), which need to be fixed <br />first.<br /><br />Ralf</blockquote>
</div>
<p><br /> <span style="font-family: Arial; font-size: 11px;">-----ursprüngliche Nachricht Ende-----</span></p>
</div>
<br /><br /></blockquote>
</div>
<p><br /> <span style="font-family: Arial; font-size: 11px;">-----ursprüngliche Nachricht Ende-----</span></p>   </body></html> <br><br>