1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Xapian: API Documentation: Xapian::ValueIterator Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">xapian-core
 <span id="projectnumber">1.4.18</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceXapian.html">Xapian</a></li><li class="navelem"><a class="el" href="classXapian_1_1ValueIterator.html">ValueIterator</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> |
<a href="classXapian_1_1ValueIterator-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">Xapian::ValueIterator Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Class for iterating over document values.
<a href="classXapian_1_1ValueIterator.html#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ae8f251e2647b9b73b1b516c8bc2a15e4"><td class="memItemLeft" align="right" valign="top"><a id="ae8f251e2647b9b73b1b516c8bc2a15e4"></a>
 </td><td class="memItemRight" valign="bottom"><a class="el" href="classXapian_1_1ValueIterator.html#ae8f251e2647b9b73b1b516c8bc2a15e4">ValueIterator</a> (const <a class="el" href="classXapian_1_1ValueIterator.html">ValueIterator</a> &o)</td></tr>
<tr class="memdesc:ae8f251e2647b9b73b1b516c8bc2a15e4"><td class="mdescLeft"> </td><td class="mdescRight">Copy constructor. <br /></td></tr>
<tr class="separator:ae8f251e2647b9b73b1b516c8bc2a15e4"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a1dcd37a282ae544724ffd37dca408406"><td class="memItemLeft" align="right" valign="top"><a id="a1dcd37a282ae544724ffd37dca408406"></a>
<a class="el" href="classXapian_1_1ValueIterator.html">ValueIterator</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classXapian_1_1ValueIterator.html#a1dcd37a282ae544724ffd37dca408406">operator=</a> (const <a class="el" href="classXapian_1_1ValueIterator.html">ValueIterator</a> &o)</td></tr>
<tr class="memdesc:a1dcd37a282ae544724ffd37dca408406"><td class="mdescLeft"> </td><td class="mdescRight">Assignment. <br /></td></tr>
<tr class="separator:a1dcd37a282ae544724ffd37dca408406"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a4084631b78f8c9f95b3bc1f5546549dc"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classXapian_1_1ValueIterator.html#a4084631b78f8c9f95b3bc1f5546549dc">ValueIterator</a> ()</td></tr>
<tr class="memdesc:a4084631b78f8c9f95b3bc1f5546549dc"><td class="mdescLeft"> </td><td class="mdescRight">Default constructor. <a href="classXapian_1_1ValueIterator.html#a4084631b78f8c9f95b3bc1f5546549dc">More...</a><br /></td></tr>
<tr class="separator:a4084631b78f8c9f95b3bc1f5546549dc"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a5a3c9c62e2667580261ef312758942ae"><td class="memItemLeft" align="right" valign="top"><a id="a5a3c9c62e2667580261ef312758942ae"></a>
 </td><td class="memItemRight" valign="bottom"><a class="el" href="classXapian_1_1ValueIterator.html#a5a3c9c62e2667580261ef312758942ae">~ValueIterator</a> ()</td></tr>
<tr class="memdesc:a5a3c9c62e2667580261ef312758942ae"><td class="mdescLeft"> </td><td class="mdescRight">Destructor. <br /></td></tr>
<tr class="separator:a5a3c9c62e2667580261ef312758942ae"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a86246ce4cf6bc8b7d6ee1f48bdf51c38"><td class="memItemLeft" align="right" valign="top"><a id="a86246ce4cf6bc8b7d6ee1f48bdf51c38"></a>
std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classXapian_1_1ValueIterator.html#a86246ce4cf6bc8b7d6ee1f48bdf51c38">operator*</a> () const</td></tr>
<tr class="memdesc:a86246ce4cf6bc8b7d6ee1f48bdf51c38"><td class="mdescLeft"> </td><td class="mdescRight">Return the value at the current position. <br /></td></tr>
<tr class="separator:a86246ce4cf6bc8b7d6ee1f48bdf51c38"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ae76c157616ca36ce63409846649fc666"><td class="memItemLeft" align="right" valign="top"><a id="ae76c157616ca36ce63409846649fc666"></a>
<a class="el" href="classXapian_1_1ValueIterator.html">ValueIterator</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classXapian_1_1ValueIterator.html#ae76c157616ca36ce63409846649fc666">operator++</a> ()</td></tr>
<tr class="memdesc:ae76c157616ca36ce63409846649fc666"><td class="mdescLeft"> </td><td class="mdescRight">Advance the iterator to the next position. <br /></td></tr>
<tr class="separator:ae76c157616ca36ce63409846649fc666"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aa101b6f08ac0cbd9ec306ecf154892d4"><td class="memItemLeft" align="right" valign="top"><a id="aa101b6f08ac0cbd9ec306ecf154892d4"></a>
DerefWrapper_< std::string > </td><td class="memItemRight" valign="bottom"><a class="el" href="classXapian_1_1ValueIterator.html#aa101b6f08ac0cbd9ec306ecf154892d4">operator++</a> (int)</td></tr>
<tr class="memdesc:aa101b6f08ac0cbd9ec306ecf154892d4"><td class="mdescLeft"> </td><td class="mdescRight">Advance the iterator to the next position (postfix version). <br /></td></tr>
<tr class="separator:aa101b6f08ac0cbd9ec306ecf154892d4"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aa818fa4e4d20cffa158ec0846c4a45d6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceXapian.html#ad8f7a78bc920532b7d2baa3281b33e2f">Xapian::docid</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classXapian_1_1ValueIterator.html#aa818fa4e4d20cffa158ec0846c4a45d6">get_docid</a> () const</td></tr>
<tr class="memdesc:aa818fa4e4d20cffa158ec0846c4a45d6"><td class="mdescLeft"> </td><td class="mdescRight">Return the docid at the current position. <a href="classXapian_1_1ValueIterator.html#aa818fa4e4d20cffa158ec0846c4a45d6">More...</a><br /></td></tr>
<tr class="separator:aa818fa4e4d20cffa158ec0846c4a45d6"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ad507ddef176cdaf03cdd87b0a524848a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceXapian.html#a94a899651fa920c72ffa9635bde630ea">Xapian::valueno</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classXapian_1_1ValueIterator.html#ad507ddef176cdaf03cdd87b0a524848a">get_valueno</a> () const</td></tr>
<tr class="memdesc:ad507ddef176cdaf03cdd87b0a524848a"><td class="mdescLeft"> </td><td class="mdescRight">Return the value slot number for the current position. <a href="classXapian_1_1ValueIterator.html#ad507ddef176cdaf03cdd87b0a524848a">More...</a><br /></td></tr>
<tr class="separator:ad507ddef176cdaf03cdd87b0a524848a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aecff65bcb208c551bfee41fec244fbbf"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classXapian_1_1ValueIterator.html#aecff65bcb208c551bfee41fec244fbbf">skip_to</a> (<a class="el" href="namespaceXapian.html#ad8f7a78bc920532b7d2baa3281b33e2f">Xapian::docid</a> docid_or_slot)</td></tr>
<tr class="memdesc:aecff65bcb208c551bfee41fec244fbbf"><td class="mdescLeft"> </td><td class="mdescRight">Advance the iterator to document id or value slot <em>docid_or_slot</em>. <a href="classXapian_1_1ValueIterator.html#aecff65bcb208c551bfee41fec244fbbf">More...</a><br /></td></tr>
<tr class="separator:aecff65bcb208c551bfee41fec244fbbf"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ae41c268fb5e79b1e4f8cd90a62ec92dd"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classXapian_1_1ValueIterator.html#ae41c268fb5e79b1e4f8cd90a62ec92dd">check</a> (<a class="el" href="namespaceXapian.html#ad8f7a78bc920532b7d2baa3281b33e2f">Xapian::docid</a> <a class="el" href="namespaceXapian.html#ad8f7a78bc920532b7d2baa3281b33e2f">docid</a>)</td></tr>
<tr class="memdesc:ae41c268fb5e79b1e4f8cd90a62ec92dd"><td class="mdescLeft"> </td><td class="mdescRight">Check if the specified docid occurs. <a href="classXapian_1_1ValueIterator.html#ae41c268fb5e79b1e4f8cd90a62ec92dd">More...</a><br /></td></tr>
<tr class="separator:ae41c268fb5e79b1e4f8cd90a62ec92dd"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a98c9631fd52b218982cc03d32e47fa47"><td class="memItemLeft" align="right" valign="top"><a id="a98c9631fd52b218982cc03d32e47fa47"></a>
std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classXapian_1_1ValueIterator.html#a98c9631fd52b218982cc03d32e47fa47">get_description</a> () const</td></tr>
<tr class="memdesc:a98c9631fd52b218982cc03d32e47fa47"><td class="mdescLeft"> </td><td class="mdescRight">Return a string describing this object. <br /></td></tr>
<tr class="separator:a98c9631fd52b218982cc03d32e47fa47"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Class for iterating over document values. </p>
</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
<a id="a4084631b78f8c9f95b3bc1f5546549dc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4084631b78f8c9f95b3bc1f5546549dc">◆ </a></span>ValueIterator()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Xapian::ValueIterator::ValueIterator </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Default constructor. </p>
<p>Creates an uninitialised iterator, which can't be used before being assigned to, but is sometimes syntactically convenient. </p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="ae41c268fb5e79b1e4f8cd90a62ec92dd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae41c268fb5e79b1e4f8cd90a62ec92dd">◆ </a></span>check()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool Xapian::ValueIterator::check </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespaceXapian.html#ad8f7a78bc920532b7d2baa3281b33e2f">Xapian::docid</a> </td>
<td class="paramname"><em>docid</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Check if the specified docid occurs. </p>
<p>The caller is required to ensure that the specified document id <em>did</em> actually exists in the database.</p>
<p>This method acts like <a class="el" href="classXapian_1_1ValueIterator.html#aecff65bcb208c551bfee41fec244fbbf" title="Advance the iterator to document id or value slot docid_or_slot.">skip_to()</a> if that can be done at little extra cost, in which case it then returns true. This is how chert and glass databases behave because they store values in streams which allow for an efficient implementation of <a class="el" href="classXapian_1_1ValueIterator.html#aecff65bcb208c551bfee41fec244fbbf" title="Advance the iterator to document id or value slot docid_or_slot.">skip_to()</a>.</p>
<p>Otherwise it simply checks if a particular docid is present. If it is, it returns true. If it isn't, it returns false, and leaves the position unspecified (and hence the result of calling methods which depend on the current position, such as <a class="el" href="classXapian_1_1ValueIterator.html#aa818fa4e4d20cffa158ec0846c4a45d6" title="Return the docid at the current position.">get_docid()</a>, are also unspecified). In this state, next() will advance to the first matching position after document <em>did</em>, and <a class="el" href="classXapian_1_1ValueIterator.html#aecff65bcb208c551bfee41fec244fbbf" title="Advance the iterator to document id or value slot docid_or_slot.">skip_to()</a> will act as it would if the position was the first matching position after document <em>did</em>.</p>
<p>Currently the inmemory and remote backends behave in the latter way because they don't support streamed values and so <a class="el" href="classXapian_1_1ValueIterator.html#aecff65bcb208c551bfee41fec244fbbf" title="Advance the iterator to document id or value slot docid_or_slot.">skip_to()</a> must check each document it skips over which is significantly slower.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">docid</td><td>The document id to check. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="aa818fa4e4d20cffa158ec0846c4a45d6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa818fa4e4d20cffa158ec0846c4a45d6">◆ </a></span>get_docid()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespaceXapian.html#ad8f7a78bc920532b7d2baa3281b33e2f">Xapian::docid</a> Xapian::ValueIterator::get_docid </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Return the docid at the current position. </p>
<p>If we're iterating over values of a document, this method will throw <a class="el" href="classXapian_1_1InvalidOperationError.html" title="InvalidOperationError indicates the API was used in an invalid way.">Xapian::InvalidOperationError</a>. </p>
</div>
</div>
<a id="ad507ddef176cdaf03cdd87b0a524848a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad507ddef176cdaf03cdd87b0a524848a">◆ </a></span>get_valueno()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespaceXapian.html#a94a899651fa920c72ffa9635bde630ea">Xapian::valueno</a> Xapian::ValueIterator::get_valueno </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Return the value slot number for the current position. </p>
<p>If the iterator is over all values in a slot, this returns that slot's number. If the iterator is over the values in a particular document, it returns the number of each slot in turn. </p>
</div>
</div>
<a id="aecff65bcb208c551bfee41fec244fbbf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aecff65bcb208c551bfee41fec244fbbf">◆ </a></span>skip_to()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void Xapian::ValueIterator::skip_to </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespaceXapian.html#ad8f7a78bc920532b7d2baa3281b33e2f">Xapian::docid</a> </td>
<td class="paramname"><em>docid_or_slot</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Advance the iterator to document id or value slot <em>docid_or_slot</em>. </p>
<p>If this iterator is over values in a document, then this method advances the iterator to value slot <em>docid_or_slot</em>, or the first slot after it if there is no value in slot <em>slot</em>.</p>
<p>If this iterator is over values in a particular slot, then this method advances the iterator to document id <em>docid_or_slot</em>, or the first document id after it if there is no value in the slot we're iterating over for document <em>docid_or_slot</em>.</p>
<p>Note: The "two-faced" nature of this method is due to how C++ overloading works. <a class="el" href="namespaceXapian.html#ad8f7a78bc920532b7d2baa3281b33e2f" title="A unique identifier for a document.">Xapian::docid</a> and <a class="el" href="namespaceXapian.html#a94a899651fa920c72ffa9635bde630ea" title="The number for a value slot in a document.">Xapian::valueno</a> are both typedefs for the same unsigned integer type, so overloading can't distinguish them.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">docid_or_slot</td><td>The docid/slot to advance to. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>xapian/<a class="el" href="valueiterator_8h.html">valueiterator.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by <a href="https://www.doxygen.org/">Doxygen 1.9.1</a>
</small></address>
</body>
</html>
|