Sophie

Sophie

distrib > Mandriva > 2008.1 > x86_64 > by-pkgid > 98d6b53e11e983e268c3e19f14e091a0 > files > 4194

kdepim-devel-doc-3.5.9-9mdv2008.1.x86_64.rpm

<?xml version="1.0" encoding="UTF-8"?>
<!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" lang="en_US" xml:lang="en_US">

<head>
  <title>libkdepim: KPIM::ThreadWeaver::Weaver Class Reference (libkdepim)</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

  <meta http-equiv="Content-Style-Type" content="text/css" />

  <meta http-equiv="pics-label" content='(pics-1.1 "http://www.icra.org/ratingsv02.html" comment "ICRAonline DE v2.0" l gen true for "http://www.kde.org"  r (nz 1 vz 1 lz 1 oz 1 cb 1) "http://www.rsac.org/ratingsv01.html" l gen true for "http://www.kde.org"  r (n 0 s 0 v 0 l 0))' />

  <meta name="trademark" content="KDE e.V." />
  <meta name="description" content="K Desktop Environment Homepage, KDE.org" />
  <meta name="MSSmartTagsPreventParsing" content="true" />
  <meta name="robots" content="all" />

  <link rel="shortcut icon" href="../../favicon.ico" />

<link rel="stylesheet" media="screen" type="text/css" title="APIDOX" href="doxygen.css" />



<style type="text/css">
<!--
hr { display: none; }
#content h2 { margin-left: 0px; }
table.mdTable { background-color: #f8f8f8; border: .2em solid #d7d7d7; }
td.mdRow { padding: 8px 20px; }
td.md { font-weight: bold; }
td.mdname1 { font-weight: bold; color: #602020; }
td.mdname { font-weight: bold; color: #602020;  }

-->
</style>

</head>

<body>

<div id="nav_header_top" align="right">
  <a href="#content" class="doNotDisplay" accesskey="2">Skip to main content ::</a>

  <a href="../.."><img id="nav_header_logo" alt="Home" align="left" src="../../kde_gear_64.png" border="0" /></a>
  <span class="doNotDisplay">::</span>
  <img id="nav_header_logo_right" alt="" align="right" src="../../pimlogo.png" border="0" />

  <div id="nav_header_title" align="left">KDE PIM API Reference</div>


</div>

<div id="nav_header_bottom" align="right">
  <span class="doNotDisplay">:: <a href="#navigation" accesskey="5">Skip to Link Menu</a><br/></span>
  <div id="nav_header_bottom_left" style="text-align: left;">
/ <a href="../../">API Reference</a>
 / <a href=".">libkdepim</a>
  </div>
</div>


<table id="main" border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
      <td valign="top" class="menuheader" height="0"></td>

  <td id="contentcolumn" valign="top" rowspan="2" >
    <div id="content" style="padding-top: 0px;"><div style="width:100%; margin: 0px; padding: 0px;">
    <h2><a name="content"></a>libkdepim</h2>


<!-- Generated by Doxygen 1.5.5 -->
  <div class="navpath"><a class="el" href="namespaceKPIM.html">KPIM</a>::<b>ThreadWeaver</b>::<a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html">Weaver</a>
  </div>
<div class="contents">
<h1>KPIM::ThreadWeaver::Weaver Class Reference</h1><!-- doxytag: class="KPIM::ThreadWeaver::Weaver" --><!-- doxytag: inherits="QObject" --><code>#include &lt;<a class="el" href="weaver_8h-source.html">weaver.h</a>&gt;</code>
<p>
Inherits QObject.
<p>

<p>
<a href="classKPIM_1_1ThreadWeaver_1_1Weaver-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
A weaver is the manager of worker threads (<a class="el" href="classKPIM_1_1ThreadWeaver_1_1Thread.html" title="The class Thread is used to represent the worker threads in the weaver&#39;s inventory...">Thread</a> objects) to which it assigns jobs from it's queue. 
<p>

<p>Definition at line <a class="el" href="weaver_8h-source.html#l00296">296</a> of file <a class="el" href="weaver_8h-source.html">weaver.h</a>.</p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Signals</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#c83a86a17666f3021e4ba41204d9bd45">finished</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#ffb8077099de149aa1ae9f71b62a10b9">suspended</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#18a7c06744c800f26afc6ff59747d7fb">jobDone</a> (<a class="el" href="classKPIM_1_1ThreadWeaver_1_1Job.html">Job</a> *)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9ac60c7020b878293d6c934a836bfb59"></a><!-- doxytag: member="KPIM::ThreadWeaver::Weaver::threadCreated" ref="9ac60c7020b878293d6c934a836bfb59" args="(Thread *)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>threadCreated</b> (<a class="el" href="classKPIM_1_1ThreadWeaver_1_1Thread.html">Thread</a> *)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="fa368e3a037e34728d2f76283e8c6db7"></a><!-- doxytag: member="KPIM::ThreadWeaver::Weaver::threadDestroyed" ref="fa368e3a037e34728d2f76283e8c6db7" args="(Thread *)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>threadDestroyed</b> (<a class="el" href="classKPIM_1_1ThreadWeaver_1_1Thread.html">Thread</a> *)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7faeff78a7ee83c6682a52441455dd9a"></a><!-- doxytag: member="KPIM::ThreadWeaver::Weaver::threadBusy" ref="7faeff78a7ee83c6682a52441455dd9a" args="(Thread *)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>threadBusy</b> (<a class="el" href="classKPIM_1_1ThreadWeaver_1_1Thread.html">Thread</a> *)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2759daaf4d9b027f24998e0ce5262b78"></a><!-- doxytag: member="KPIM::ThreadWeaver::Weaver::threadSuspended" ref="2759daaf4d9b027f24998e0ce5262b78" args="(Thread *)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>threadSuspended</b> (<a class="el" href="classKPIM_1_1ThreadWeaver_1_1Thread.html">Thread</a> *)</td></tr>

<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="930742204fb40a5989053517d20f4920"></a><!-- doxytag: member="KPIM::ThreadWeaver::Weaver::Weaver" ref="930742204fb40a5989053517d20f4920" args="(QObject *parent=0, const char *name=0, int inventoryMin=4, int inventoryMax=32)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><b>Weaver</b> (QObject *parent=0, const char *name=0, int inventoryMin=4, int inventoryMax=32)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#2a4be318b5d3f5bc44d11c90c716e828">enqueue</a> (<a class="el" href="classKPIM_1_1ThreadWeaver_1_1Job.html">Job</a> *)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#e88b025530e7a8ce333344a27b55b531">enqueue</a> (QPtrList&lt; <a class="el" href="classKPIM_1_1ThreadWeaver_1_1Job.html">Job</a> &gt; jobs)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#0c79957799c62bc99ec80116fd35de0e">dequeue</a> (<a class="el" href="classKPIM_1_1ThreadWeaver_1_1Job.html">Job</a> *)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#2651bba7b113bfd33b89340243669fac">dequeue</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#2b4aac62a05f989002548068107f313a">finish</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#55452448656b939d765b282a8f2f2f7c">suspend</a> (bool state)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#4145ef3689e847c65830ed1848d78e87">isEmpty</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#a5bc93b83df29e17304cede7d3f9661b">isIdle</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#cd31f105a0dedf2375cc999a006303b7">queueLength</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classKPIM_1_1ThreadWeaver_1_1Job.html">Job</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#716fe21beb0c65750f5c0fa990178d25">applyForWork</a> (<a class="el" href="classKPIM_1_1ThreadWeaver_1_1Thread.html">Thread</a> *thread, <a class="el" href="classKPIM_1_1ThreadWeaver_1_1Job.html">Job</a> *previous)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#58a96b8f350ae6c54f6197eed0d2851b">lock</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#c0ac0d7e21d3b78f79bc2e82aff4c29d">unlock</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#5bba55fc51ac1036522befc9c469b4e4">post</a> (<a class="el" href="classKPIM_1_1ThreadWeaver_1_1Event.html#a9901c5a6c6973f42722a32b13a3c219">Event::Action</a>, <a class="el" href="classKPIM_1_1ThreadWeaver_1_1Thread.html">Thread</a> *=0, <a class="el" href="classKPIM_1_1ThreadWeaver_1_1Job.html">Job</a> *=0)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#a6be4b2670fefdb0407009a050b1a9b9">threads</a> () const </td></tr>

<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#1a5453dded29ad5166ec1a3fc227ae80">assignJobs</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#92feccd3db8b3ec1373a78139e411c5d">event</a> (QEvent *)</td></tr>

<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">QPtrList&lt; <a class="el" href="classKPIM_1_1ThreadWeaver_1_1Thread.html">Thread</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#af7fa53f4b80be41238831a923cfb355">m_inventory</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">QPtrList&lt; <a class="el" href="classKPIM_1_1ThreadWeaver_1_1Job.html">Job</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#7ff1159de91e03d2dde19cf453ae0b61">m_assignments</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#b52ea52d66a2edd8afcb6d385741c2bd">m_active</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#77a597d8b923e8c77e1f5935e49ebfcc">m_inventoryMin</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#61ea4e6b0a4454b1cc9d2847fb8964d8">m_inventoryMax</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">QWaitCondition&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#8420bc62fd80965ef584ddca692e2244">m_jobAvailable</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">QWaitCondition&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#66e8a94ea6dab32b8361a7a8768411eb">m_jobFinished</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#c4e7a4f5f63c6308157f696c369750b2">m_shuttingDown</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#46885facf2d244b1b4fa94e7ccf54174">m_running</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#45db086873432be4797d22cd339a15b1">m_suspend</a></td></tr>

</table>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="2a4be318b5d3f5bc44d11c90c716e828"></a><!-- doxytag: member="KPIM::ThreadWeaver::Weaver::enqueue" ref="2a4be318b5d3f5bc44d11c90c716e828" args="(Job *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void KPIM::ThreadWeaver::Weaver::enqueue           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classKPIM_1_1ThreadWeaver_1_1Job.html">Job</a> *&nbsp;</td>
          <td class="paramname"> <em>job</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Add a job to be executed. 
<p>

<p>Definition at line <a class="el" href="weaver_8cpp-source.html#l00327">327</a> of file <a class="el" href="weaver_8cpp-source.html">weaver.cpp</a>.</p>

</div>
</div><p>
<a class="anchor" name="e88b025530e7a8ce333344a27b55b531"></a><!-- doxytag: member="KPIM::ThreadWeaver::Weaver::enqueue" ref="e88b025530e7a8ce333344a27b55b531" args="(QPtrList&lt; Job &gt; jobs)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void KPIM::ThreadWeaver::Weaver::enqueue           </td>
          <td>(</td>
          <td class="paramtype">QPtrList&lt; <a class="el" href="classKPIM_1_1ThreadWeaver_1_1Job.html">Job</a> &gt;&nbsp;</td>
          <td class="paramname"> <em>jobs</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Enqueue all jobs in the given list. 
<p>
This is an atomic operation, no jobs will start before all jobs in the list are enqueued. If you need a couple of jobs done and want to receive the finished () signal afterwards, use this method to queue them. Otherwise, when enqueueing your jobs individually, there is a chance that you receive more than one finished signal. 
<p>Definition at line <a class="el" href="weaver_8cpp-source.html#l00339">339</a> of file <a class="el" href="weaver_8cpp-source.html">weaver.cpp</a>.</p>

</div>
</div><p>
<a class="anchor" name="0c79957799c62bc99ec80116fd35de0e"></a><!-- doxytag: member="KPIM::ThreadWeaver::Weaver::dequeue" ref="0c79957799c62bc99ec80116fd35de0e" args="(Job *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool KPIM::ThreadWeaver::Weaver::dequeue           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classKPIM_1_1ThreadWeaver_1_1Job.html">Job</a> *&nbsp;</td>
          <td class="paramname"> <em>job</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Remove a job from the queue. 
<p>
If the job qas queued but not started so far, it is simple removed from the queue. For now, it is unsupported to dequeue a job once its execution has started. For that case, you will have to provide a method to interrupt your job's execution (and receive the done signal). Returns true if the job has been dequeued, false if the job has already been started or is not found in the queue. 
<p>Definition at line <a class="el" href="weaver_8cpp-source.html#l00353">353</a> of file <a class="el" href="weaver_8cpp-source.html">weaver.cpp</a>.</p>

</div>
</div><p>
<a class="anchor" name="2651bba7b113bfd33b89340243669fac"></a><!-- doxytag: member="KPIM::ThreadWeaver::Weaver::dequeue" ref="2651bba7b113bfd33b89340243669fac" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void KPIM::ThreadWeaver::Weaver::dequeue           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Remove all queued jobs. 
<p>
Please note that this will not kill the threads, therefore all jobs that are being processed will be continued. 
<p>Definition at line <a class="el" href="weaver_8cpp-source.html#l00359">359</a> of file <a class="el" href="weaver_8cpp-source.html">weaver.cpp</a>.</p>

</div>
</div><p>
<a class="anchor" name="2b4aac62a05f989002548068107f313a"></a><!-- doxytag: member="KPIM::ThreadWeaver::Weaver::finish" ref="2b4aac62a05f989002548068107f313a" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void KPIM::ThreadWeaver::Weaver::finish           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get notified when a thread has finished a job. 
<p>
This is done automatically. Finish all queued operations, then return. This method is used in imperative programs that cannot react on events to have the controlling (main) thread wait wait for the jobs to finish. Warning: This will suspend your thread! Warning: If your jobs enter for example an infinite loop, this will never return! 
<p>Definition at line <a class="el" href="weaver_8cpp-source.html#l00537">537</a> of file <a class="el" href="weaver_8cpp-source.html">weaver.cpp</a>.</p>

</div>
</div><p>
<a class="anchor" name="55452448656b939d765b282a8f2f2f7c"></a><!-- doxytag: member="KPIM::ThreadWeaver::Weaver::suspend" ref="55452448656b939d765b282a8f2f2f7c" args="(bool state)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void KPIM::ThreadWeaver::Weaver::suspend           </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>state</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Suspend job execution if state = true, otherwise resume job execution if it was suspended. 
<p>
When suspending, all threads are allowed to finish the currently assigned job but will not receive a new assignment. When all threads are done processing the assigned job, the signal suspended will() be emitted. If you call suspend (true) and there are no jobs left to be done, you will immidiately receive the <a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#ffb8077099de149aa1ae9f71b62a10b9" title="Thread queueing has been suspended.">suspended()</a> signal. 
<p>Definition at line <a class="el" href="weaver_8cpp-source.html#l00365">365</a> of file <a class="el" href="weaver_8cpp-source.html">weaver.cpp</a>.</p>

</div>
</div><p>
<a class="anchor" name="4145ef3689e847c65830ed1848d78e87"></a><!-- doxytag: member="KPIM::ThreadWeaver::Weaver::isEmpty" ref="4145ef3689e847c65830ed1848d78e87" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool KPIM::ThreadWeaver::Weaver::isEmpty           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Is the queue empty? 
<p>

<p>Definition at line <a class="el" href="weaver_8cpp-source.html#l00451">451</a> of file <a class="el" href="weaver_8cpp-source.html">weaver.cpp</a>.</p>

</div>
</div><p>
<a class="anchor" name="a5bc93b83df29e17304cede7d3f9661b"></a><!-- doxytag: member="KPIM::ThreadWeaver::Weaver::isIdle" ref="a5bc93b83df29e17304cede7d3f9661b" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool KPIM::ThreadWeaver::Weaver::isIdle           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Is the weaver idle? The weaver is idle if no jobs are queued and no jobs are processed by the threads (m_active is zero). 
<p>

<p>Definition at line <a class="el" href="weaver_8cpp-source.html#l00531">531</a> of file <a class="el" href="weaver_8cpp-source.html">weaver.cpp</a>.</p>

</div>
</div><p>
<a class="anchor" name="cd31f105a0dedf2375cc999a006303b7"></a><!-- doxytag: member="KPIM::ThreadWeaver::Weaver::queueLength" ref="cd31f105a0dedf2375cc999a006303b7" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int KPIM::ThreadWeaver::Weaver::queueLength           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the number of pending jobs. 
<p>

<p>Definition at line <a class="el" href="weaver_8cpp-source.html#l00525">525</a> of file <a class="el" href="weaver_8cpp-source.html">weaver.cpp</a>.</p>

</div>
</div><p>
<a class="anchor" name="716fe21beb0c65750f5c0fa990178d25"></a><!-- doxytag: member="KPIM::ThreadWeaver::Weaver::applyForWork" ref="716fe21beb0c65750f5c0fa990178d25" args="(Thread *thread, Job *previous)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classKPIM_1_1ThreadWeaver_1_1Job.html">Job</a> * KPIM::ThreadWeaver::Weaver::applyForWork           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classKPIM_1_1ThreadWeaver_1_1Thread.html">Thread</a> *&nbsp;</td>
          <td class="paramname"> <em>thread</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classKPIM_1_1ThreadWeaver_1_1Job.html">Job</a> *&nbsp;</td>
          <td class="paramname"> <em>previous</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Assign a job to the calling thread. 
<p>
This is supposed to be called from the <a class="el" href="classKPIM_1_1ThreadWeaver_1_1Thread.html" title="The class Thread is used to represent the worker threads in the weaver&#39;s inventory...">Thread</a> objects in the inventory. Returns 0 if the weaver is shutting down, telling the calling thread to finish and exit. If no jobs are available and shut down is not in progress, the calling thread is suspended until either condition is met. In previous, threads give the job they have completed. If this is the first job, previous is zero. 
<p>Definition at line <a class="el" href="weaver_8cpp-source.html#l00457">457</a> of file <a class="el" href="weaver_8cpp-source.html">weaver.cpp</a>.</p>

</div>
</div><p>
<a class="anchor" name="58a96b8f350ae6c54f6197eed0d2851b"></a><!-- doxytag: member="KPIM::ThreadWeaver::Weaver::lock" ref="58a96b8f350ae6c54f6197eed0d2851b" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void KPIM::ThreadWeaver::Weaver::lock           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Lock the mutex for this weaver. 
<p>
The threads in the inventory need to lock the weaver's mutex to synchronize the job management. 
<p>Definition at line <a class="el" href="weaver_8cpp-source.html#l00306">306</a> of file <a class="el" href="weaver_8cpp-source.html">weaver.cpp</a>.</p>

</div>
</div><p>
<a class="anchor" name="c0ac0d7e21d3b78f79bc2e82aff4c29d"></a><!-- doxytag: member="KPIM::ThreadWeaver::Weaver::unlock" ref="c0ac0d7e21d3b78f79bc2e82aff4c29d" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void KPIM::ThreadWeaver::Weaver::unlock           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Unlock. 
<p>
See <a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#58a96b8f350ae6c54f6197eed0d2851b" title="Lock the mutex for this weaver.">lock()</a>. 
<p>Definition at line <a class="el" href="weaver_8cpp-source.html#l00313">313</a> of file <a class="el" href="weaver_8cpp-source.html">weaver.cpp</a>.</p>

</div>
</div><p>
<a class="anchor" name="5bba55fc51ac1036522befc9c469b4e4"></a><!-- doxytag: member="KPIM::ThreadWeaver::Weaver::post" ref="5bba55fc51ac1036522befc9c469b4e4" args="(Event::Action, Thread *=0, Job *=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void KPIM::ThreadWeaver::Weaver::post           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classKPIM_1_1ThreadWeaver_1_1Event.html#a9901c5a6c6973f42722a32b13a3c219">Event::Action</a>&nbsp;</td>
          <td class="paramname"> <em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classKPIM_1_1ThreadWeaver_1_1Thread.html">Thread</a> *&nbsp;</td>
          <td class="paramname"> <em>t</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classKPIM_1_1ThreadWeaver_1_1Job.html">Job</a> *&nbsp;</td>
          <td class="paramname"> <em>j</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Post an event that is handled by this object, but in the main (GUI) thread. 
<p>
Different threads may use this method to communicate with the main thread. thread and job mark the objects associated with this event. 
<p>Definition at line <a class="el" href="weaver_8cpp-source.html#l00445">445</a> of file <a class="el" href="weaver_8cpp-source.html">weaver.cpp</a>.</p>

</div>
</div><p>
<a class="anchor" name="a6be4b2670fefdb0407009a050b1a9b9"></a><!-- doxytag: member="KPIM::ThreadWeaver::Weaver::threads" ref="a6be4b2670fefdb0407009a050b1a9b9" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int KPIM::ThreadWeaver::Weaver::threads           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the current number of threads in the inventory. 
<p>

<p>Definition at line <a class="el" href="weaver_8cpp-source.html#l00321">321</a> of file <a class="el" href="weaver_8cpp-source.html">weaver.cpp</a>.</p>

</div>
</div><p>
<a class="anchor" name="c83a86a17666f3021e4ba41204d9bd45"></a><!-- doxytag: member="KPIM::ThreadWeaver::Weaver::finished" ref="c83a86a17666f3021e4ba41204d9bd45" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void KPIM::ThreadWeaver::Weaver::finished           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [signal]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This signal is emitted when the <a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html" title="A weaver is the manager of worker threads (Thread objects) to which it assigns jobs...">Weaver</a> has finished ALL currently queued jobs. 
<p>
If a number of jobs is enqueued sequentially, this signal might be emitted a couple of times (what happens is that all already queued jobs have been processed while you still add new ones). This is not a bug, but the intended behaviour. 
</div>
</div><p>
<a class="anchor" name="ffb8077099de149aa1ae9f71b62a10b9"></a><!-- doxytag: member="KPIM::ThreadWeaver::Weaver::suspended" ref="ffb8077099de149aa1ae9f71b62a10b9" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void KPIM::ThreadWeaver::Weaver::suspended           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [signal]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<a class="el" href="classKPIM_1_1ThreadWeaver_1_1Thread.html" title="The class Thread is used to represent the worker threads in the weaver&#39;s inventory...">Thread</a> queueing has been suspended. 
<p>
When suspend is called with state = true, all threads are allowed to finish their job. When the last thread finished, this signal is emitted. 
</div>
</div><p>
<a class="anchor" name="18a7c06744c800f26afc6ff59747d7fb"></a><!-- doxytag: member="KPIM::ThreadWeaver::Weaver::jobDone" ref="18a7c06744c800f26afc6ff59747d7fb" args="(Job *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void KPIM::ThreadWeaver::Weaver::jobDone           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classKPIM_1_1ThreadWeaver_1_1Job.html">Job</a> *&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [signal]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This signal is emitted when a job is done. 
<p>
It is up to the programmer if this signal or the done signal of the job is more handy. 
</div>
</div><p>
<a class="anchor" name="1a5453dded29ad5166ec1a3fc227ae80"></a><!-- doxytag: member="KPIM::ThreadWeaver::Weaver::assignJobs" ref="1a5453dded29ad5166ec1a3fc227ae80" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void KPIM::ThreadWeaver::Weaver::assignJobs           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Schedule enqueued jobs to be executed by idle threads. 
<p>
This will try to distribute as many jobs as possible to all idle threads. 
<p>Definition at line <a class="el" href="weaver_8cpp-source.html#l00387">387</a> of file <a class="el" href="weaver_8cpp-source.html">weaver.cpp</a>.</p>

</div>
</div><p>
<a class="anchor" name="92feccd3db8b3ec1373a78139e411c5d"></a><!-- doxytag: member="KPIM::ThreadWeaver::Weaver::event" ref="92feccd3db8b3ec1373a78139e411c5d" args="(QEvent *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool KPIM::ThreadWeaver::Weaver::event           </td>
          <td>(</td>
          <td class="paramtype">QEvent *&nbsp;</td>
          <td class="paramname"> <em>e</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Check incoming events for user defined ones. 
<p>
The threads use user defined events to communicate with the <a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html" title="A weaver is the manager of worker threads (Thread objects) to which it assigns jobs...">Weaver</a>. 
<p>Definition at line <a class="el" href="weaver_8cpp-source.html#l00392">392</a> of file <a class="el" href="weaver_8cpp-source.html">weaver.cpp</a>.</p>

</div>
</div><p>
<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="af7fa53f4b80be41238831a923cfb355"></a><!-- doxytag: member="KPIM::ThreadWeaver::Weaver::m_inventory" ref="af7fa53f4b80be41238831a923cfb355" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">QPtrList&lt;<a class="el" href="classKPIM_1_1ThreadWeaver_1_1Thread.html">Thread</a>&gt; <a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#af7fa53f4b80be41238831a923cfb355">KPIM::ThreadWeaver::Weaver::m_inventory</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The thread inventory. 
<p>

<p>Definition at line <a class="el" href="weaver_8h-source.html#l00415">415</a> of file <a class="el" href="weaver_8h-source.html">weaver.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="7ff1159de91e03d2dde19cf453ae0b61"></a><!-- doxytag: member="KPIM::ThreadWeaver::Weaver::m_assignments" ref="7ff1159de91e03d2dde19cf453ae0b61" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">QPtrList&lt;<a class="el" href="classKPIM_1_1ThreadWeaver_1_1Job.html">Job</a>&gt; <a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#7ff1159de91e03d2dde19cf453ae0b61">KPIM::ThreadWeaver::Weaver::m_assignments</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The job queue. 
<p>

<p>Definition at line <a class="el" href="weaver_8h-source.html#l00417">417</a> of file <a class="el" href="weaver_8h-source.html">weaver.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="b52ea52d66a2edd8afcb6d385741c2bd"></a><!-- doxytag: member="KPIM::ThreadWeaver::Weaver::m_active" ref="b52ea52d66a2edd8afcb6d385741c2bd" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#b52ea52d66a2edd8afcb6d385741c2bd">KPIM::ThreadWeaver::Weaver::m_active</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The number of jobs that are assigned to the worker threads, but not finished. 
<p>

<p>Definition at line <a class="el" href="weaver_8h-source.html#l00420">420</a> of file <a class="el" href="weaver_8h-source.html">weaver.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="77a597d8b923e8c77e1f5935e49ebfcc"></a><!-- doxytag: member="KPIM::ThreadWeaver::Weaver::m_inventoryMin" ref="77a597d8b923e8c77e1f5935e49ebfcc" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#77a597d8b923e8c77e1f5935e49ebfcc">KPIM::ThreadWeaver::Weaver::m_inventoryMin</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Stored setting. 
<p>

<p>Definition at line <a class="el" href="weaver_8h-source.html#l00422">422</a> of file <a class="el" href="weaver_8h-source.html">weaver.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="61ea4e6b0a4454b1cc9d2847fb8964d8"></a><!-- doxytag: member="KPIM::ThreadWeaver::Weaver::m_inventoryMax" ref="61ea4e6b0a4454b1cc9d2847fb8964d8" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#61ea4e6b0a4454b1cc9d2847fb8964d8">KPIM::ThreadWeaver::Weaver::m_inventoryMax</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Stored setting . 
<p>

<p>Definition at line <a class="el" href="weaver_8h-source.html#l00424">424</a> of file <a class="el" href="weaver_8h-source.html">weaver.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="8420bc62fd80965ef584ddca692e2244"></a><!-- doxytag: member="KPIM::ThreadWeaver::Weaver::m_jobAvailable" ref="8420bc62fd80965ef584ddca692e2244" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">QWaitCondition <a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#8420bc62fd80965ef584ddca692e2244">KPIM::ThreadWeaver::Weaver::m_jobAvailable</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Wait condition all idle or done threads wait for. 
<p>

<p>Definition at line <a class="el" href="weaver_8h-source.html#l00426">426</a> of file <a class="el" href="weaver_8h-source.html">weaver.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="66e8a94ea6dab32b8361a7a8768411eb"></a><!-- doxytag: member="KPIM::ThreadWeaver::Weaver::m_jobFinished" ref="66e8a94ea6dab32b8361a7a8768411eb" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">QWaitCondition <a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#66e8a94ea6dab32b8361a7a8768411eb">KPIM::ThreadWeaver::Weaver::m_jobFinished</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Wait for a job to finish. 
<p>

<p>Definition at line <a class="el" href="weaver_8h-source.html#l00428">428</a> of file <a class="el" href="weaver_8h-source.html">weaver.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="c4e7a4f5f63c6308157f696c369750b2"></a><!-- doxytag: member="KPIM::ThreadWeaver::Weaver::m_shuttingDown" ref="c4e7a4f5f63c6308157f696c369750b2" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#c4e7a4f5f63c6308157f696c369750b2">KPIM::ThreadWeaver::Weaver::m_shuttingDown</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Indicates if the weaver is shutting down and exiting it's threads. 
<p>

<p>Definition at line <a class="el" href="weaver_8h-source.html#l00431">431</a> of file <a class="el" href="weaver_8h-source.html">weaver.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="46885facf2d244b1b4fa94e7ccf54174"></a><!-- doxytag: member="KPIM::ThreadWeaver::Weaver::m_running" ref="46885facf2d244b1b4fa94e7ccf54174" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#46885facf2d244b1b4fa94e7ccf54174">KPIM::ThreadWeaver::Weaver::m_running</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
m_running is set to true when a job is enqueued and set to false when the job finishes that was the last in the queue. 
<p>
E.g., this will flip from false to true to false when you continuously enqueue one single job. 
<p>Definition at line <a class="el" href="weaver_8h-source.html#l00436">436</a> of file <a class="el" href="weaver_8h-source.html">weaver.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="45db086873432be4797d22cd339a15b1"></a><!-- doxytag: member="KPIM::ThreadWeaver::Weaver::m_suspend" ref="45db086873432be4797d22cd339a15b1" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classKPIM_1_1ThreadWeaver_1_1Weaver.html#45db086873432be4797d22cd339a15b1">KPIM::ThreadWeaver::Weaver::m_suspend</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
If m_suspend is true, no new jobs will be assigned to threads. 
<p>
Jobs may be queued, but will not be processed until suspend (false) is called. 
<p>Definition at line <a class="el" href="weaver_8h-source.html#l00441">441</a> of file <a class="el" href="weaver_8h-source.html">weaver.h</a>.</p>

</div>
</div><p>
<hr>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="weaver_8h-source.html">weaver.h</a><li><a class="el" href="weaver_8cpp-source.html">weaver.cpp</a></ul>
</div>
    </div></div>


      </td>
  </tr>
  <tr>
    <td valign="top" id="leftmenu" width="25%">
      <a name="navigation"></a>
      <div class="menu_box"><h2>libkdepim</h2>
<div class="nav_list">
<ul><li><a href="index.html">Main Page</a></li><li><a href="namespaces.html">Namespace List</a></li><li><a href="hierarchy.html">Class Hierarchy</a></li><li><a href="classes.html">Alphabetical List</a></li><li><a href="annotated.html">Class List</a></li><li><a href="files.html">File List</a></li><li><a href="namespacemembers.html">Namespace Members</a></li><li><a href="functions.html">Class Members</a></li></ul>
<!--
<h2>Class Picker</h2>
<div style="text-align: center;">
<form name="guideform">
<select name="guidelinks" style="width:100%;" onChange="window.location=document.guideform.guidelinks.options[document.guideform.guidelinks.selectedIndex].value">
<option value="annotated.html">-- Choose --</option>
  <option value="classActionBase.html">actionbase</option>,  <option value="classActionEditWidget.html">actioneditwidget</option>,  <option value="classAlarmClient.html">alarmclient</option>,  <option value="classConditionEditWidget.html">conditioneditwidget</option>,  <option value="classGroupItem.html">groupitem</option>,  <option value="classKABC_1_1ResourceNull.html">kabc::resourcenull</option>,  <option value="classKConfigWizard.html">kconfigwizard</option>,  <option value="classKDateEdit.html">kdateedit</option>,  <option value="classKDatePickerPopup.html">kdatepickerpopup</option>,  <option value="classKIncidenceChooser.html">kincidencechooser</option>,  <option value="classKomposer_1_1Core.html">komposer::core</option>,  <option value="classKomposer_1_1KomposerIface.html">komposer::komposeriface</option>,  <option value="classKParts_1_1InfoExtension.html">kparts::infoextension</option>,  <option value="classKParts_1_1SideBarExtension.html">kparts::sidebarextension</option>,  <option value="classKPartsGenericPart.html">kpartsgenericpart</option>,  <option value="classKPartsWidgetPlugin.html">kpartswidgetplugin</option>,  <option value="classKPIM_1_1BroadcastStatus.html">kpim::broadcaststatus</option>,  <option value="classKPIM_1_1ClickLineEdit.html">kpim::clicklineedit</option>,  <option value="classKPIM_1_1CollectingProcess.html">kpim::collectingprocess</option>,  <option value="classKPIM_1_1ConfigManager.html">kpim::configmanager</option>,  <option value="classKPIM_1_1DiffAlgoDisplay.html">kpim::diffalgodisplay</option>,  <option value="classKPIM_1_1DistributionList.html">kpim::distributionlist</option>,  <option value="classKPIM_1_1KMailCompletion.html">kpim::kmailcompletion</option>,  <option value="classKPIM_1_1KPixmapRegionSelectorDialog.html">kpim::kpixmapregionselectordialog</option>,  <option value="classKPIM_1_1KPixmapRegionSelectorWidget.html">kpim::kpixmapregionselectorwidget</option>,  <option value="classKPIM_1_1LdapClient.html">kpim::ldapclient</option>,  <option value="classKPIM_1_1LdapObject.html">kpim::ldapobject</option>,  <option value="classKPIM_1_1LdapSearch.html">kpim::ldapsearch</option>,  <option value="classKPIM_1_1OverlayWidget.html">kpim::overlaywidget</option>,  <option value="classKPIM_1_1PluginLoader.html">kpim::pluginloader</option>,  <option value="classKPIM_1_1ProgressManager.html">kpim::progressmanager</option>,  <option value="classKPIM_1_1ResourceABC.html">kpim::resourceabc</option>,  <option value="classKPIM_1_1SelectionItem.html">kpim::selectionitem</option>,  <option value="classKPIM_1_1ThreadWeaver_1_1Event.html">kpim::threadweaver::event</option>,  <option value="classKPIM_1_1ThreadWeaver_1_1Job.html">kpim::threadweaver::job</option>,  <option value="classKPIM_1_1ThreadWeaver_1_1Thread.html">kpim::threadweaver::thread</option>,  <option value="classKPIM_1_1ThreadWeaver_1_1Weaver.html">kpim::threadweaver::weaver</option>,  <option value="classKPIM_1_1ThreadWeaver_1_1WeaverExtension.html">kpim::threadweaver::weaverextension</option>,  <option value="classKPIM_1_1ThreadWeaver_1_1WeaverThreadLogger.html">kpim::threadweaver::weaverthreadlogger</option>,  <option value="classKPrefsDialog.html">kprefsdialog</option>,  <option value="classKPrefsWid.html">kprefswid</option>,  <option value="classKPrefsWidBool.html">kprefswidbool</option>,  <option value="classKPrefsWidColor.html">kprefswidcolor</option>,  <option value="classKPrefsWidCombo.html">kprefswidcombo</option>,  <option value="classKPrefsWidDate.html">kprefswiddate</option>,  <option value="classKPrefsWidDuration.html">kprefswidduration</option>,  <option value="classKPrefsWidFont.html">kprefswidfont</option>,  <option value="classKPrefsWidInt.html">kprefswidint</option>,  <option value="classKPrefsWidManager.html">kprefswidmanager</option>,  <option value="classKPrefsWidPath.html">kprefswidpath</option>,  <option value="classKPrefsWidRadios.html">kprefswidradios</option>,  <option value="classKPrefsWidString.html">kprefswidstring</option>,  <option value="classKPrefsWidTime.html">kprefswidtime</option>,  <option value="classKRecentAddress_1_1RecentAddresses.html">krecentaddress::recentaddresses</option>,  <option value="classKRegExp3.html">kregexp3</option>,  <option value="classKResourcePrefs.html">kresourceprefs</option>,  <option value="classKRSqueezedTextLabel.html">krsqueezedtextlabel</option>,  <option value="classKSubscription.html">ksubscription</option>,  <option value="classKTimeEdit.html">ktimeedit</option>,  <option value="classKVCardDrag.html">kvcarddrag</option>,  <option value="classKWidgetLister.html">kwidgetlister</option>,  <option value="classLinkLocator.html">linklocator</option>,  <option value="classQStrictUtf7Codec.html">qstrictutf7codec</option>,  <option value="classQUtf7Codec.html">qutf7codec</option>,  <option value="classRuleEditWidget.html">ruleeditwidget</option>,  <option value="classRuleListWidget.html">rulelistwidget</option>,  <option value="classRuleStack.html">rulestack</option>,  <option value="classScorableGroup.html">scorablegroup</option>,  <option value="classSingleActionWidget.html">singleactionwidget</option>,  <option value="classSingleConditionWidget.html">singleconditionwidget</option>,
</select>
</form>
</div>
-->
</div></div>
<div class="menu_box"><h2>API Dox</h2>
<div class="nav_list">
<ul>
<li><a href="../../akregator/html/index.html">akregator</a></li><li>&nbsp;&nbsp;<a href="../../akregator/src/html/index.html">src</a></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<a href="../../akregator/src/librss/html/index.html">librss</a></li><li><a href="../../certmanager/html/index.html">certmanager</a></li><li>&nbsp;&nbsp;<a href="../../certmanager/lib/html/index.html">lib</a></li><li><a href="../../kaddressbook/html/index.html">kaddressbook</a></li><li><a href="../../kalarm/html/index.html">kalarm</a></li><li>&nbsp;&nbsp;<a href="../../kalarm/lib/html/index.html">lib</a></li><li><a href="../../kandy/html/index.html">kandy</a></li><li><a href="../../karm/html/index.html">karm</a></li><li><a href="../../kdgantt/html/index.html">kdgantt</a></li><li><a href="../../kgantt/html/index.html">kgantt</a></li><li><a href="../../kioslaves/html/index.html">kioslaves</a></li><li>&nbsp;&nbsp;<a href="../../kioslaves/imap4/html/index.html">imap4</a></li><li>&nbsp;&nbsp;<a href="../../kioslaves/mbox/html/index.html">mbox</a></li><li><a href="../../kitchensync/html/index.html">kitchensync</a></li><li><a href="../../kmail/html/index.html">kmail</a></li><li><a href="../../knotes/html/index.html">knotes</a></li><li><a href="../../konsolekalendar/html/index.html">konsolekalendar</a></li><li><a href="../../kontact/html/index.html">kontact</a></li><li><a href="../../korganizer/html/index.html">korganizer</a></li><li><a href="../../kpilot/html/index.html">kpilot</a></li><li>&nbsp;&nbsp;<a href="../../kpilot/kpilot/html/index.html">kpilot</a></li><li>&nbsp;&nbsp;<a href="../../kpilot/lib/html/index.html">lib</a></li><li><a href="../../libemailfunctions/html/index.html">libemailfunctions</a></li><li><a href="../../libkcal/html/index.html">libkcal</a></li><li><a href="../../libkdepim/html/index.html">libkdepim</a></li><li><a href="../../libkholidays/html/index.html">libkholidays</a></li><li><a href="../../libkmime/html/index.html">libkmime</a></li><li><a href="../../libkpgp/html/index.html">libkpgp</a></li><li><a href="../../libkpimidentities/html/index.html">libkpimidentities</a></li>
</ul></div></div>


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

<span class="doNotDisplay">
  <a href="http://www.kde.org/" accesskey="8">KDE Home</a> |
  <a href="http://accessibility.kde.org/" accesskey="9">KDE Accessibility Home</a> |
  <a href="http://www.kde.org/media/accesskeys.php" accesskey="0">Description of Access Keys</a>
</span>


<div style="height: 8px"></div>

<div id="footer">
  <div id="footer_left">
    Maintained by <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;groo&#116;&#64;kde&#46;or&#x67;">Adriaan de Groot</a>
and
<a href="&#109;a&#105;&#108;&#116;&#111;&#58;w&#105;nter&#64;kde&#46;or&#x67">Allen Winter</a>.
<br/>
    KDE and K Desktop Environment are trademarks of <a href="http://www.kde.org/areas/kde-ev/" title="Homepage of the KDE non-profit Organization">KDE e.V.</a> |
    <a href="http://www.kde.org/contact/impressum.php">Legal</a>
  </div>
  <div id="footer_right"><img src="/media/images/footer_right.png" style="margin: 0px" alt="" /></div>
</div>

<!--
WARNING: DO NOT SEND MAIL TO THE FOLLOWING EMAIL ADDRESS! YOU WILL
BE BLOCKED INSTANTLY AND PERMANENTLY!
<a href="mailto:aaaatrap-425acc3b5374943f@kde.org">Block me</a>
WARNING END
-->

</body>
</html>