Sophie

Sophie

distrib > Arklinux > devel > i586 > media > main > by-pkgid > 55a0eeb6652adcfc2fb1b1094c78b066 > files > 170

libqtpod-devel-0.4.2-1ark.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>libqtpod: itunesdb::TrackPredicate Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.0 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li id="current"><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
  </ul></div>
<div class="tabs">
  <ul>
    <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
  </ul></div>
<div class="nav">
<b>itunesdb</b>::<a class="el" href="classitunesdb_1_1TrackPredicate.html">TrackPredicate</a></div>
<h1>itunesdb::TrackPredicate Class Reference</h1><!-- doxytag: class="itunesdb::TrackPredicate" --><code>#include &lt;<a class="el" href="track_8h-source.html">track.h</a>&gt;</code>
<p>
<p>Inheritance diagram for itunesdb::TrackPredicate:
<p><center><img src="classitunesdb_1_1TrackPredicate.png" usemap="#itunesdb::TrackPredicate_map" border="0" alt=""></center>
<map name="itunesdb::TrackPredicate_map">
<area href="classitunesdb_1_1TrackPredicates_1_1ByAlbum.html" alt="itunesdb::TrackPredicates::ByAlbum" shape="rect" coords="0,56,224,80">
<area href="classitunesdb_1_1TrackPredicates_1_1ByArtist.html" alt="itunesdb::TrackPredicates::ByArtist" shape="rect" coords="234,56,458,80">
<area href="classitunesdb_1_1TrackPredicates_1_1ByFullInfo.html" alt="itunesdb::TrackPredicates::ByFullInfo" shape="rect" coords="468,56,692,80">
<area href="classitunesdb_1_1TrackPredicates_1_1ByPathInfo.html" alt="itunesdb::TrackPredicates::ByPathInfo" shape="rect" coords="702,56,926,80">
<area href="classitunesdb_1_1TrackPredicates_1_1Contains.html" alt="itunesdb::TrackPredicates::Contains" shape="rect" coords="936,56,1160,80">
<area href="classITunesDBSPLRuleSet.html" alt="ITunesDBSPLRuleSet" shape="rect" coords="1170,56,1394,80">
</map>
<a href="classitunesdb_1_1TrackPredicate-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classitunesdb_1_1TrackPredicate.html#2a031fa5f6b071aa2d0e1fd09fe66f5f">operator()</a> (const <a class="el" href="classitunesdb_1_1Track.html">Track</a> *) const =0</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
This interface will be used by <a class="el" href="classITunesDB.html#9b5efdb3c0e67ee27e892f201a87d62b">ITunesDB::findFirstTrackBy</a> and <a class="el" href="classITunesDB.html#f3f95ef89b93625ddcdd6e2e98dfb23f">ITunesDB::getTracksBy</a>. Callers to these functions provide a reference to an implementation of this interface and thus provide code to decide if a given track is a valid result.<p>
Example: you need to get all the tracks performed at a given year (e.g. 2004) from the database<p>
First create an implementor for <a class="el" href="classitunesdb_1_1TrackPredicate.html">TrackPredicate</a> like this: <pre><code>
 class TracksByYearPredicate : public <a class="el" href="classitunesdb_1_1TrackPredicate.html">TrackPredicate</a> {
     Q_UINT32 m_givenYear;
 public:
     TracksByYearPredicate( Q_UINT32 givenYear ) : m_givenYear( givenYear ) {}
     ~TracksByYearPredicate() {}
     bool operator() ( const <a class="el" href="classitunesdb_1_1Track.html">itunesdb::Track</a>&amp; track ) {
         return track.getYear() == m_givenYear;
     }
 };
 </code></pre> then you call the <a class="el" href="classITunesDB.html#f3f95ef89b93625ddcdd6e2e98dfb23f">ITunesDB::getTracksBy()</a> method of your <a class="el" href="classITunesDB.html">ITunesDB</a> instance (here itunesdb) with a reference to your predicate <pre><code>
 TracksByYearPredicate yearPredicate( 2004 );
 <a class="el" href="classitunesdb_1_1TrackPtrList.html">TrackPtrList</a> result;
 itunesdb.getTracksBy( yearPredicate, result );
 </code></pre> Now you have all tracks performed at 2004 in your result list. Alternatively you can call the getTracksBy() method returning a RangeIterator and add the tracks to your own container. <pre><code>
    ITunesDB::FilteredTrackConstIterator&lt;TracksByYearPredicate&gt; iter = itunesdb.getTracksBy( yearPredicate );
    std::vector&lt;itunesdb::Track*&gt; vector;
    while( iter.hasNext() ) {
        vector.push_back( iter.next() );
    }
 </code></pre> <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classITunesDB.html#9b5efdb3c0e67ee27e892f201a87d62b">ITunesDB::findFirstTrackBy()</a> <p>
<a class="el" href="classITunesDB.html#f3f95ef89b93625ddcdd6e2e98dfb23f">ITunesDB::getTracksBy()</a> } </dd></dl>

<p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="2a031fa5f6b071aa2d0e1fd09fe66f5f"></a><!-- doxytag: member="itunesdb::TrackPredicate::operator()" ref="2a031fa5f6b071aa2d0e1fd09fe66f5f" args="(const Track *) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool itunesdb::TrackPredicate::operator()           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classitunesdb_1_1Track.html">Track</a> *&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Implement this method accordingly to the documentation above and (!) the documentation of the function this predicate will be given to. 
<p>
Implemented in <a class="el" href="classITunesDBSPLRuleSet.html#110a408fd8f8dc15a12507233c1e422b">ITunesDBSPLRuleSet</a>, <a class="el" href="classitunesdb_1_1TrackPredicates_1_1ByArtist.html#406069eb2167ff62eadfb7a8024fd091">itunesdb::TrackPredicates::ByArtist</a>, <a class="el" href="classitunesdb_1_1TrackPredicates_1_1ByAlbum.html#95f2dae63e956c942754c835c71f404b">itunesdb::TrackPredicates::ByAlbum</a>, <a class="el" href="classitunesdb_1_1TrackPredicates_1_1ByFullInfo.html#48288d29fe49482dcaacbd0db41f8aee">itunesdb::TrackPredicates::ByFullInfo</a>, <a class="el" href="classitunesdb_1_1TrackPredicates_1_1ByPathInfo.html#d939f6a3441e0856785759a5d699e23c">itunesdb::TrackPredicates::ByPathInfo</a>, and <a class="el" href="classitunesdb_1_1TrackPredicates_1_1Contains.html#703eb86d34420f347be1bdf5a36b63fd">itunesdb::TrackPredicates::Contains</a>.
</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li>libqtpod/src/<a class="el" href="track_8h-source.html">track.h</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 19 00:15:20 2007 for libqtpod by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.0 </small></address>
</body>
</html>