<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="http://reviewboard.kde.org/r/4548/">http://reviewboard.kde.org/r/4548/</a>
     </td>
    </tr>
   </table>
   <br />








<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On July 10th, 2010, 8:35 a.m., <b>Aaron Seigo</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="/r/4548/diff/1/?file=30539#file30539line803" style="color: black; font-weight: bold; text-decoration: underline;">/dataengine.cpp</a>
    <span style="font-weight: normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: center;">
  <tr>

   <td colspan="2"><pre style="font-size: 8pt; line-height: 140%; margin: 0; white-space: pre-wrap; word-wrap: break-word;"></pre></td>
   <td colspan="2"><pre style="font-size: 8pt; line-height: 140%; margin: 0; white-space: pre-wrap; word-wrap: break-word;">void DataEnginePrivate::retrieveCachedData(DataContainer *s)</pre></td>

  </tr>
 </tbody>




 
 



 <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; white-space: pre-wrap; word-wrap: break-word;"></pre></td>
    <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">803</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; white-space: pre-wrap; word-wrap: break-word;">    <span class="k">while</span> <span class="p">(</span><span class="o">!</span><span class="n">retrieve</span><span class="o">-&gt;</span><span class="n">error</span><span class="p">())</span> <span class="p">{</span></pre></td>
  </tr>

 </tbody>

</table>

  <pre>this will work ok for low latency / synchronous storage fetching, which is what the current implementation is. but it really needs to be made properly async to avoid blocking.

which means starting the job and populating the source when it returns ... but only if the source hasn&#39;t already been populated in the meantime.</pre>
 </blockquote>





</blockquote>
<pre style="margin-left: 1em">problem is, retrieve gets only a key/value pair
so a ton of retrieve have to be made, and a connection for each one wouldn&#39;t be so pretty as well.
Aaron, Bruno: I&#39;m really thinking about if Job is the proper way to go? it also forces to carry around all those base64 encoded strings of complex data, that wouldn&#39;t be solved even when using akonadi..
if the service is going to be public and usable directly by external dataengines as well it really justifies to be a service. if will remain private and only private i&#39;m not sure.</pre>
<br />




<p>- Marco</p>


<br />
<p>On July 8th, 2010, 4:47 p.m., Brian Pritchett wrote:</p>




<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('http://reviewboard.kde.orgrb/images/review_request_box_top_bg.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
 <tr>
  <td>

<div>Review request for Plasma.</div>
<div>By Brian Pritchett.</div>


<p style="color: grey;"><i>Updated 2010-07-08 16:47:24</i></p>




<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;">DataEngines can mark or unmark their sources to be cached with void DataEngine::setEnableCache(const QString &amp;source, bool cache). If the DataEngine has implemented their own source by inheriting DataContainer, then DataContainer::setEnableCache(bool cache) will work.</pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0;">I have tested it with the microblogging dataengine/plasmoid.</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>/trunk/KDE/kdelibs/plasma/CMakeLists.txt <span style="color: grey">(1147556)</span></li>

 <li>/trunk/KDE/kdelibs/plasma/data/operations/storage.operations <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/trunk/KDE/kdelibs/plasma/datacontainer.h <span style="color: grey">(1147556)</span></li>

 <li>/trunk/KDE/kdelibs/plasma/datacontainer.cpp <span style="color: grey">(1147556)</span></li>

 <li>/trunk/KDE/kdelibs/plasma/dataengine.h <span style="color: grey">(1147556)</span></li>

 <li>/trunk/KDE/kdelibs/plasma/dataengine.cpp <span style="color: grey">(1147556)</span></li>

 <li>/trunk/KDE/kdelibs/plasma/private/dataengine_p.h <span style="color: grey">(1147556)</span></li>

 <li>/trunk/KDE/kdelibs/plasma/private/storage.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/trunk/KDE/kdelibs/plasma/private/storage.cpp <span style="color: grey">(PRE-CREATION)</span></li>

</ul>

<p><a href="http://reviewboard.kde.org/r/4548/diff/" style="margin-left: 3em;">View Diff</a></p>




  </td>
 </tr>
</table>








  </div>
 </body>
</html>