<html>
<body>
<div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
<table bgcolor="#f9f3c9" width="100%" cellpadding="12" style="border: 1px #c9c399 solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
<tr>
<td>
This is an automatically generated e-mail. To reply, visit:
<a href="https://git.reviewboard.kde.org/r/127179/">https://git.reviewboard.kde.org/r/127179/</a>
</td>
</tr>
</table>
<br />
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<p style="margin-top: 0;">On February 25th, 2016, 9:18 p.m. UTC, <b>Pinak Ahuja</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">
<thead>
<tr>
<th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">
<a href="https://git.reviewboard.kde.org/r/127179/diff/1/?file=445488#file445488line104" style="color: black; font-weight: bold; text-decoration: underline;">src/externalextractor.cpp</a>
<span style="font-weight: normal;">
(Diff revision 1)
</span>
</th>
</tr>
</thead>
<tbody>
<tr>
<th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2"></font></th>
<td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
<th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">104</font></th>
<td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "> <span class="n">writerProcess</span><span class="p">.</span><span class="n">waitForFinished</span><span class="p">(</span><span class="mi">5000</span><span class="p">);</span></pre></td>
</tr>
</tbody>
</table>
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">You should use the asynchronous api instead of blocking the event loop by calling waitForFinished()</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Connect a slot to the QProcess::finished signal and let it handle the output of the QProcess.</p></pre>
</blockquote>
<p>On February 26th, 2016, 11:40 a.m. UTC, <b>Varun Joshi</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Since native plugins block the event loop, I thought it would be sensible to let the caller handle calling all types of plugins asynchronously. What do you think?</p></pre>
</blockquote>
<p>On February 26th, 2016, 1:15 p.m. UTC, <b>Boudhayan Gupta</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Good point! Remember that the event loop is not ecxlisive to the KFM library but is shared (and owned) by the application that uses this library. Not yeilding to the event loop will freeze the parent application too.</p></pre>
</blockquote>
</blockquote>
<pre style="margin-left: 1em; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Oh, wait I think you'll have to keep it the way it is. As you said the native plugins block the event loop as well and KFileMetadata only provides only a synchronous API and the caller is responsible for handling the plugin asynchronously, thats what we do in baloo as well, we have a seperate QProcess which uses the Extractor plugins.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Anyways closing the isssue, sorry for the noise.</p></pre>
<br />
<p>- Pinak</p>
<br />
<p>On February 25th, 2016, 6:32 p.m. UTC, Varun Joshi wrote:</p>
<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="12" style="border: 1px #888a85 solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
<tr>
<td>
<div>Review request for Baloo, KDE Frameworks, Boudhayan Gupta, and Vishesh Handa.</div>
<div>By Varun Joshi.</div>
<p style="color: grey;"><i>Updated Feb. 25, 2016, 6:32 p.m.</i></p>
<div style="margin-top: 1.5em;">
<b style="color: #575012; font-size: 10pt;">Repository: </b>
kfilemetadata
</div>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
<tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">1. Add the ExternalExtractor class that wrap the external extractor process into the standard Extractor interface
2. Modify ExtractorCollection to enable it to support ExternalExtractors
3. Added an example PyPDF2 extractor plugin</pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">
<li>README.md <span style="color: grey">(19b1a26a241e6a35c636aaf8162afe762018f073)</span></li>
<li>src/CMakeLists.txt <span style="color: grey">(a5490856a51aa2f59389ee963f3430c1ce5c60d5)</span></li>
<li>src/config-kfilemetadata.h.in <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/externalextractor.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/externalextractor.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/extractorcollection.h <span style="color: grey">(8542aed576102be2b0c86bbdf3d65d756d468c6e)</span></li>
<li>src/extractorcollection.cpp <span style="color: grey">(a1bde65bf57e493918cd3e85ccdb23c4cd623401)</span></li>
<li>src/extractorplugin.h <span style="color: grey">(65abad3b2397628ba42a40d9ef2970e02114e250)</span></li>
<li>src/extractors/CMakeLists.txt <span style="color: grey">(5dd223e1cf6864a943e848664ad5fae0d0603e77)</span></li>
<li>src/extractors/externalextractors/CMakeLists.txt <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/extractors/externalextractors/pdfextractor/main.py <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/extractors/externalextractors/pdfextractor/manifest.json <span style="color: grey">(PRE-CREATION)</span></li>
</ul>
<p><a href="https://git.reviewboard.kde.org/r/127179/diff/" style="margin-left: 3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>