Added: lucy/site/trunk/content/docs/c/Lucy/Index/IndexManager.mdtext
URL: 
http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/c/Lucy/Index/IndexManager.mdtext?rev=1737682&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/c/Lucy/Index/IndexManager.mdtext (added)
+++ lucy/site/trunk/content/docs/c/Lucy/Index/IndexManager.mdtext Mon Apr  4 
12:55:10 2016
@@ -0,0 +1,201 @@
+Title: Lucy::Index::IndexManager – C API Documentation
+
+<div class="c-api">
+<h2>Lucy::Index::IndexManager</h2>
+<table>
+<tr>
+<td class="label">parcel</td>
+<td><a href="../../lucy.html">Lucy</a></td>
+</tr>
+<tr>
+<td class="label">class variable</td>
+<td><code><span class="prefix">LUCY_</span>INDEXMANAGER</code></td>
+</tr>
+<tr>
+<td class="label">struct symbol</td>
+<td><code><span class="prefix">lucy_</span>IndexManager</code></td>
+</tr>
+<tr>
+<td class="label">class nickname</td>
+<td><code><span class="prefix">lucy_</span>IxManager</code></td>
+</tr>
+<tr>
+<td class="label">header file</td>
+<td><code>Lucy/Index/IndexManager.h</code></td>
+</tr>
+</table>
+<h3>Name</h3>
+<p>Lucy::Index::IndexManager – Policies governing index updating, locking, 
and file deletion.</p>
+<h3>Description</h3>
+<p>IndexManager is an advanced-use class for controlling index locking,
+updating, merging, and deletion behaviors.</p>
+<p>IndexManager and <a 
href="../../Lucy/Plan/Architecture.html">Architecture</a> are
+complementary classes: Architecture is used to define traits and behaviors
+which cannot change for the life of an index; IndexManager is used for
+defining rules which may change from process to process.</p>
+<h3>Functions</h3>
+<dl>
+<dt id="func_new">new</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>IndexManager* <span 
class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>IxManager_new</strong>(
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/String.html">String</a> *<strong>host</strong>,
+    <span class="prefix">lucy_</span><a 
href="../../Lucy/Store/LockFactory.html">LockFactory</a> 
*<strong>lock_factory</strong>
+);
+</code></pre>
+<p>Create a new IndexManager.</p>
+<dl>
+<dt>host</dt>
+<dd><p>An identifier which should be unique per-machine.</p>
+</dd>
+<dt>lock_factory</dt>
+<dd><p>A LockFactory.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_init">init</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>IndexManager*
+<span class="prefix">lucy_</span><strong>IxManager_init</strong>(
+    <span class="prefix">lucy_</span>IndexManager *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/String.html">String</a> *<strong>host</strong>,
+    <span class="prefix">lucy_</span><a 
href="../../Lucy/Store/LockFactory.html">LockFactory</a> 
*<strong>lock_factory</strong>
+);
+</code></pre>
+<p>Initialize an IndexManager.</p>
+<dl>
+<dt>host</dt>
+<dd><p>An identifier which should be unique per-machine.</p>
+</dd>
+<dt>lock_factory</dt>
+<dd><p>A LockFactory.</p>
+</dd>
+</dl>
+</dd>
+</dl>
+<h3>Methods</h3>
+<dl>
+<dt id="func_Destroy">Destroy</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>IxManager_Destroy</strong>(
+    <span class="prefix">lucy_</span>IndexManager *<strong>self</strong>
+);
+</code></pre>
+<p>Generic destructor.  Frees the struct itself but not any complex
+member elements.</p>
+</dd>
+<dt id="func_Set_Folder">Set_Folder</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>IxManager_Set_Folder</strong>(
+    <span class="prefix">lucy_</span>IndexManager *<strong>self</strong>,
+    <span class="prefix">lucy_</span><a 
href="../../Lucy/Store/Folder.html">Folder</a> *<strong>folder</strong>
+);
+</code></pre>
+<p>Setter for <code>folder</code> member.  Typical clients (Indexer,
+IndexReader) will use this method to install their own Folder instance.</p>
+</dd>
+<dt id="func_Get_Folder">Get_Folder</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a 
href="../../Lucy/Store/Folder.html">Folder</a>*
+<span class="prefix">lucy_</span><strong>IxManager_Get_Folder</strong>(
+    <span class="prefix">lucy_</span>IndexManager *<strong>self</strong>
+);
+</code></pre>
+<p>Getter for <code>folder</code> member.</p>
+</dd>
+<dt id="func_Get_Host">Get_Host</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a 
href="../../Clownfish/String.html">String</a>*
+<span class="prefix">lucy_</span><strong>IxManager_Get_Host</strong>(
+    <span class="prefix">lucy_</span>IndexManager *<strong>self</strong>
+);
+</code></pre>
+<p>Getter for <code>host</code> member.</p>
+</dd>
+<dt id="func_Recycle">Recycle</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a 
href="../../Clownfish/Vector.html">Vector</a>* <span class="comment">// 
incremented</span>
+<span class="prefix">lucy_</span><strong>IxManager_Recycle</strong>(
+    <span class="prefix">lucy_</span>IndexManager *<strong>self</strong>,
+    <span class="prefix">lucy_</span><a 
href="../../Lucy/Index/PolyReader.html">PolyReader</a> *<strong>reader</strong>,
+    <span class="prefix">lucy_</span><a 
href="../../Lucy/Index/DeletionsWriter.html">DeletionsWriter</a> 
*<strong>del_writer</strong>,
+    int64_t <strong>cutoff</strong>,
+    bool <strong>optimize</strong>
+);
+</code></pre>
+<p>Return an array of SegReaders representing segments that should be
+consolidated.  Implementations must balance index-time churn against
+search-time degradation due to segment proliferation. The default
+implementation prefers small segments or segments with a high
+proportion of deletions.</p>
+<dl>
+<dt>reader</dt>
+<dd><p>A PolyReader.</p>
+</dd>
+<dt>del_writer</dt>
+<dd><p>A DeletionsWriter.</p>
+</dd>
+<dt>cutoff</dt>
+<dd><p>A segment number which all returned SegReaders must
+exceed.</p>
+</dd>
+<dt>optimize</dt>
+<dd><p>A boolean indicating whether to spend extra time
+optimizing the index for search-time performance.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Make_Write_Lock">Make_Write_Lock</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a 
href="../../Lucy/Store/Lock.html">Lock</a>* <span class="comment">// 
incremented</span>
+<span class="prefix">lucy_</span><strong>IxManager_Make_Write_Lock</strong>(
+    <span class="prefix">lucy_</span>IndexManager *<strong>self</strong>
+);
+</code></pre>
+<p>Create the Lock which controls access to modifying the logical content
+of the index.</p>
+</dd>
+<dt id="func_Set_Write_Lock_Timeout">Set_Write_Lock_Timeout</dt>
+<dd>
+<pre><code>void
+<span 
class="prefix">lucy_</span><strong>IxManager_Set_Write_Lock_Timeout</strong>(
+    <span class="prefix">lucy_</span>IndexManager *<strong>self</strong>,
+    uint32_t <strong>timeout</strong>
+);
+</code></pre>
+<p>Setter for write lock timeout.  Default: 1000 milliseconds.</p>
+</dd>
+<dt id="func_Get_Write_Lock_Timeout">Get_Write_Lock_Timeout</dt>
+<dd>
+<pre><code>uint32_t
+<span 
class="prefix">lucy_</span><strong>IxManager_Get_Write_Lock_Timeout</strong>(
+    <span class="prefix">lucy_</span>IndexManager *<strong>self</strong>
+);
+</code></pre>
+<p>Getter for write lock timeout.</p>
+</dd>
+<dt id="func_Set_Write_Lock_Interval">Set_Write_Lock_Interval</dt>
+<dd>
+<pre><code>void
+<span 
class="prefix">lucy_</span><strong>IxManager_Set_Write_Lock_Interval</strong>(
+    <span class="prefix">lucy_</span>IndexManager *<strong>self</strong>,
+    uint32_t <strong>timeout</strong>
+);
+</code></pre>
+<p>Setter for write lock retry interval.  Default: 100 milliseconds.</p>
+</dd>
+<dt id="func_Get_Write_Lock_Interval">Get_Write_Lock_Interval</dt>
+<dd>
+<pre><code>uint32_t
+<span 
class="prefix">lucy_</span><strong>IxManager_Get_Write_Lock_Interval</strong>(
+    <span class="prefix">lucy_</span>IndexManager *<strong>self</strong>
+);
+</code></pre>
+<p>Getter for write lock retry interval.</p>
+</dd>
+</dl>
+<h3>Inheritance</h3>
+<p>Lucy::Index::IndexManager is a <a 
href="../../Clownfish/Obj.html">Clownfish::Obj</a>.</p>
+</div>

Added: lucy/site/trunk/content/docs/c/Lucy/Index/IndexReader.mdtext
URL: 
http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/c/Lucy/Index/IndexReader.mdtext?rev=1737682&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/c/Lucy/Index/IndexReader.mdtext (added)
+++ lucy/site/trunk/content/docs/c/Lucy/Index/IndexReader.mdtext Mon Apr  4 
12:55:10 2016
@@ -0,0 +1,195 @@
+Title: Lucy::Index::IndexReader – C API Documentation
+
+<div class="c-api">
+<h2>Lucy::Index::IndexReader</h2>
+<table>
+<tr>
+<td class="label">parcel</td>
+<td><a href="../../lucy.html">Lucy</a></td>
+</tr>
+<tr>
+<td class="label">class variable</td>
+<td><code><span class="prefix">LUCY_</span>INDEXREADER</code></td>
+</tr>
+<tr>
+<td class="label">struct symbol</td>
+<td><code><span class="prefix">lucy_</span>IndexReader</code></td>
+</tr>
+<tr>
+<td class="label">class nickname</td>
+<td><code><span class="prefix">lucy_</span>IxReader</code></td>
+</tr>
+<tr>
+<td class="label">header file</td>
+<td><code>Lucy/Index/IndexReader.h</code></td>
+</tr>
+</table>
+<h3>Name</h3>
+<p>Lucy::Index::IndexReader – Read from an inverted index.</p>
+<h3>Description</h3>
+<p>IndexReader is the interface through which
+<a href="../../Lucy/Search/IndexSearcher.html">IndexSearcher</a> objects 
access the
+content of an index.</p>
+<p>IndexReader objects always represent a point-in-time view of an index as it
+existed at the moment the reader was created.  If you want search results
+to reflect modifications to an index, you must create a new IndexReader
+after the update process completes.</p>
+<p>IndexReaders are composites; most of the work is done by individual
+<a href="../../Lucy/Index/DataReader.html">DataReader</a> sub-components, 
which may be
+accessed via <a 
href="../../Lucy/Index/IndexReader.html#func_Fetch">Fetch()</a> and <a 
href="../../Lucy/Index/IndexReader.html#func_Obtain">Obtain()</a>.  The most 
efficient and powerful access
+to index data happens at the segment level via
+<a href="../../Lucy/Index/SegReader.html">SegReader</a>’s sub-components.</p>
+<h3>Functions</h3>
+<dl>
+<dt id="func_open">open</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>IndexReader* <span 
class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>IxReader_open</strong>(
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/Obj.html">Obj</a> *<strong>index</strong>,
+    <span class="prefix">lucy_</span><a 
href="../../Lucy/Index/Snapshot.html">Snapshot</a> *<strong>snapshot</strong>,
+    <span class="prefix">lucy_</span><a 
href="../../Lucy/Index/IndexManager.html">IndexManager</a> 
*<strong>manager</strong>
+);
+</code></pre>
+<p>IndexReader is an abstract base class; open() returns the IndexReader
+subclass PolyReader, which channels the output of 0 or more SegReaders.</p>
+<dl>
+<dt>index</dt>
+<dd><p>Either a string filepath or a Folder.</p>
+</dd>
+<dt>snapshot</dt>
+<dd><p>A Snapshot.  If not supplied, the most recent snapshot
+file will be used.</p>
+</dd>
+<dt>manager</dt>
+<dd><p>An <a href="../../Lucy/Index/IndexManager.html">IndexManager</a>.
+Read-locking is off by default; supplying this argument turns it on.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_do_open">do_open</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>IndexReader*
+<span class="prefix">lucy_</span><strong>IxReader_do_open</strong>(
+    <span class="prefix">lucy_</span>IndexReader *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/Obj.html">Obj</a> *<strong>index</strong>,
+    <span class="prefix">lucy_</span><a 
href="../../Lucy/Index/Snapshot.html">Snapshot</a> *<strong>snapshot</strong>,
+    <span class="prefix">lucy_</span><a 
href="../../Lucy/Index/IndexManager.html">IndexManager</a> 
*<strong>manager</strong>
+);
+</code></pre>
+<p>Initialize and open an IndexReader.</p>
+<dl>
+<dt>index</dt>
+<dd><p>Either a string filepath or a Folder.</p>
+</dd>
+<dt>snapshot</dt>
+<dd><p>A Snapshot.  If not supplied, the most recent snapshot
+file will be used.</p>
+</dd>
+<dt>manager</dt>
+<dd><p>An <a href="../../Lucy/Index/IndexManager.html">IndexManager</a>.
+Read-locking is off by default; supplying this argument turns it on.</p>
+</dd>
+</dl>
+</dd>
+</dl>
+<h3>Methods</h3>
+<dl>
+<dt id="func_Doc_Max">Doc_Max <span class="comment">(abstract)</span></dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">lucy_</span><strong>IxReader_Doc_Max</strong>(
+    <span class="prefix">lucy_</span>IndexReader *<strong>self</strong>
+);
+</code></pre>
+<p>Return the maximum number of documents available to the reader, which
+is also the highest possible internal document id.  Documents which
+have been marked as deleted but not yet purged from the index are
+included in this count.</p>
+</dd>
+<dt id="func_Doc_Count">Doc_Count <span class="comment">(abstract)</span></dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">lucy_</span><strong>IxReader_Doc_Count</strong>(
+    <span class="prefix">lucy_</span>IndexReader *<strong>self</strong>
+);
+</code></pre>
+<p>Return the number of documents available to the reader, subtracting
+any that are marked as deleted.</p>
+</dd>
+<dt id="func_Del_Count">Del_Count <span class="comment">(abstract)</span></dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">lucy_</span><strong>IxReader_Del_Count</strong>(
+    <span class="prefix">lucy_</span>IndexReader *<strong>self</strong>
+);
+</code></pre>
+<p>Return the number of documents which have been marked as deleted but
+not yet purged from the index.</p>
+</dd>
+<dt id="func_Offsets">Offsets <span class="comment">(abstract)</span></dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a 
href="../../Lucy/Object/I32Array.html">I32Array</a>* <span class="comment">// 
incremented</span>
+<span class="prefix">lucy_</span><strong>IxReader_Offsets</strong>(
+    <span class="prefix">lucy_</span>IndexReader *<strong>self</strong>
+);
+</code></pre>
+<p>Return an array with one entry for each segment, corresponding to
+segment doc_id start offset.</p>
+</dd>
+<dt id="func_Seg_Readers">Seg_Readers <span 
class="comment">(abstract)</span></dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a 
href="../../Clownfish/Vector.html">Vector</a>* <span class="comment">// 
incremented</span>
+<span class="prefix">lucy_</span><strong>IxReader_Seg_Readers</strong>(
+    <span class="prefix">lucy_</span>IndexReader *<strong>self</strong>
+);
+</code></pre>
+<p>Return an array of all the SegReaders represented within the
+IndexReader.</p>
+</dd>
+<dt id="func_Obtain">Obtain</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a 
href="../../Lucy/Index/DataReader.html">DataReader</a>*
+<span class="prefix">lucy_</span><strong>IxReader_Obtain</strong>(
+    <span class="prefix">lucy_</span>IndexReader *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/String.html">String</a> *<strong>api</strong>
+);
+</code></pre>
+<p>Fetch a component, or throw an error if the component can’t be found.</p>
+<dl>
+<dt>api</dt>
+<dd><p>The name of the DataReader subclass that the desired
+component must implement.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Fetch">Fetch</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a 
href="../../Lucy/Index/DataReader.html">DataReader</a>*
+<span class="prefix">lucy_</span><strong>IxReader_Fetch</strong>(
+    <span class="prefix">lucy_</span>IndexReader *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/String.html">String</a> *<strong>api</strong>
+);
+</code></pre>
+<p>Fetch a component, or return NULL if the component can’t be
+found.</p>
+<dl>
+<dt>api</dt>
+<dd><p>The name of the DataReader subclass that the desired
+component must implement.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Destroy">Destroy</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>IxReader_Destroy</strong>(
+    <span class="prefix">lucy_</span>IndexReader *<strong>self</strong>
+);
+</code></pre>
+<p>Generic destructor.  Frees the struct itself but not any complex
+member elements.</p>
+</dd>
+</dl>
+<h3>Inheritance</h3>
+<p>Lucy::Index::IndexReader is a <a 
href="../../Lucy/Index/DataReader.html">Lucy::Index::DataReader</a> is a <a 
href="../../Clownfish/Obj.html">Clownfish::Obj</a>.</p>
+</div>

Added: lucy/site/trunk/content/docs/c/Lucy/Index/Indexer.mdtext
URL: 
http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/c/Lucy/Index/Indexer.mdtext?rev=1737682&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/c/Lucy/Index/Indexer.mdtext (added)
+++ lucy/site/trunk/content/docs/c/Lucy/Index/Indexer.mdtext Mon Apr  4 
12:55:10 2016
@@ -0,0 +1,262 @@
+Title: Lucy::Index::Indexer – C API Documentation
+
+<div class="c-api">
+<h2>Lucy::Index::Indexer</h2>
+<table>
+<tr>
+<td class="label">parcel</td>
+<td><a href="../../lucy.html">Lucy</a></td>
+</tr>
+<tr>
+<td class="label">class variable</td>
+<td><code><span class="prefix">LUCY_</span>INDEXER</code></td>
+</tr>
+<tr>
+<td class="label">struct symbol</td>
+<td><code><span class="prefix">lucy_</span>Indexer</code></td>
+</tr>
+<tr>
+<td class="label">class nickname</td>
+<td><code><span class="prefix">lucy_</span>Indexer</code></td>
+</tr>
+<tr>
+<td class="label">header file</td>
+<td><code>Lucy/Index/Indexer.h</code></td>
+</tr>
+</table>
+<h3>Name</h3>
+<p>Lucy::Index::Indexer – Build inverted indexes.</p>
+<h3>Description</h3>
+<p>The Indexer class is Apache Lucy’s primary tool for managing the content 
of
+inverted indexes, which may later be searched using
+<a href="../../Lucy/Search/IndexSearcher.html">IndexSearcher</a>.</p>
+<p>In general, only one Indexer at a time may write to an index safely.  If a
+write lock cannot be secured, new() will throw an exception.</p>
+<p>If an index is located on a shared volume, each writer application must
+identify itself by supplying an
+<a href="../../Lucy/Index/IndexManager.html">IndexManager</a> with a unique
+<code>host</code> id to Indexer’s constructor or index corruption will
+occur.  See <a href="../../Lucy/Docs/FileLocking.html">FileLocking</a> for a 
detailed
+discussion.</p>
+<p>Note: at present, <a 
href="../../Lucy/Index/Indexer.html#func_Delete_By_Term">Delete_By_Term()</a> 
and <a 
href="../../Lucy/Index/Indexer.html#func_Delete_By_Query">Delete_By_Query()</a> 
only affect
+documents which had been previously committed to the index – and not any
+documents added this indexing session but not yet committed.  This may
+change in a future update.</p>
+<h3>Functions</h3>
+<dl>
+<dt id="func_new">new</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>Indexer* <span class="comment">// 
incremented</span>
+<span class="prefix">lucy_</span><strong>Indexer_new</strong>(
+    <span class="prefix">lucy_</span><a 
href="../../Lucy/Plan/Schema.html">Schema</a> *<strong>schema</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/Obj.html">Obj</a> *<strong>index</strong>,
+    <span class="prefix">lucy_</span><a 
href="../../Lucy/Index/IndexManager.html">IndexManager</a> 
*<strong>manager</strong>,
+    int32_t <strong>flags</strong>
+);
+</code></pre>
+<p>Open a new Indexer.  If the index already exists, update it.</p>
+<dl>
+<dt>schema</dt>
+<dd><p>A Schema.</p>
+</dd>
+<dt>index</dt>
+<dd><p>Either a string filepath or a Folder.</p>
+</dd>
+<dt>manager</dt>
+<dd><p>An IndexManager.</p>
+</dd>
+<dt>flags</dt>
+<dd><p>Flags governing behavior.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_init">init</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>Indexer*
+<span class="prefix">lucy_</span><strong>Indexer_init</strong>(
+    <span class="prefix">lucy_</span>Indexer *<strong>self</strong>,
+    <span class="prefix">lucy_</span><a 
href="../../Lucy/Plan/Schema.html">Schema</a> *<strong>schema</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/Obj.html">Obj</a> *<strong>index</strong>,
+    <span class="prefix">lucy_</span><a 
href="../../Lucy/Index/IndexManager.html">IndexManager</a> 
*<strong>manager</strong>,
+    int32_t <strong>flags</strong>
+);
+</code></pre>
+<p>Initialize an Indexer.</p>
+<dl>
+<dt>schema</dt>
+<dd><p>A Schema.</p>
+</dd>
+<dt>index</dt>
+<dd><p>Either a string filepath or a Folder.</p>
+</dd>
+<dt>manager</dt>
+<dd><p>An IndexManager.</p>
+</dd>
+<dt>flags</dt>
+<dd><p>Flags governing behavior.</p>
+</dd>
+</dl>
+</dd>
+</dl>
+<h3>Methods</h3>
+<dl>
+<dt id="func_Add_Doc">Add_Doc</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Indexer_Add_Doc</strong>(
+    <span class="prefix">lucy_</span>Indexer *<strong>self</strong>,
+    <span class="prefix">lucy_</span><a 
href="../../Lucy/Document/Doc.html">Doc</a> *<strong>doc</strong>,
+    float <strong>boost</strong>
+);
+</code></pre>
+<p>Add a document to the index.</p>
+<dl>
+<dt>doc</dt>
+<dd><p>A Lucy::Document::Doc object.</p>
+</dd>
+<dt>boost</dt>
+<dd><p>A floating point weight which affects how this document
+scores.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Add_Index">Add_Index</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Indexer_Add_Index</strong>(
+    <span class="prefix">lucy_</span>Indexer *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/Obj.html">Obj</a> *<strong>index</strong>
+);
+</code></pre>
+<p>Absorb an existing index into this one.  The two indexes must
+have matching Schemas.</p>
+<dl>
+<dt>index</dt>
+<dd><p>Either an index path name or a Folder.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Delete_By_Term">Delete_By_Term</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Indexer_Delete_By_Term</strong>(
+    <span class="prefix">lucy_</span>Indexer *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/String.html">String</a> *<strong>field</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/Obj.html">Obj</a> *<strong>term</strong>
+);
+</code></pre>
+<p>Mark documents which contain the supplied term as deleted, so that
+they will be excluded from search results and eventually removed
+altogether.  The change is not apparent to search apps until after
+<a href="../../Lucy/Index/Indexer.html#func_Commit">Commit()</a> succeeds.</p>
+<dl>
+<dt>field</dt>
+<dd><p>The name of an indexed field. (If it is not spec’d as
+<code>indexed</code>, an error will occur.)</p>
+</dd>
+<dt>term</dt>
+<dd><p>The term which identifies docs to be marked as deleted.  If
+<code>field</code> is associated with an Analyzer, <code>term</code>
+will be processed automatically (so don’t pre-process it yourself).</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Delete_By_Query">Delete_By_Query</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Indexer_Delete_By_Query</strong>(
+    <span class="prefix">lucy_</span>Indexer *<strong>self</strong>,
+    <span class="prefix">lucy_</span><a 
href="../../Lucy/Search/Query.html">Query</a> *<strong>query</strong>
+);
+</code></pre>
+<p>Mark documents which match the supplied Query as deleted.</p>
+<dl>
+<dt>query</dt>
+<dd><p>A <a href="../../Lucy/Search/Query.html">Query</a>.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Delete_By_Doc_ID">Delete_By_Doc_ID</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Indexer_Delete_By_Doc_ID</strong>(
+    <span class="prefix">lucy_</span>Indexer *<strong>self</strong>,
+    int32_t <strong>doc_id</strong>
+);
+</code></pre>
+<p>Mark the document identified by the supplied document ID as deleted.</p>
+<dl>
+<dt>doc_id</dt>
+<dd><p>A <a href="../../Lucy/Docs/DocIDs.html">document id</a>.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Optimize">Optimize</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Indexer_Optimize</strong>(
+    <span class="prefix">lucy_</span>Indexer *<strong>self</strong>
+);
+</code></pre>
+<p>Optimize the index for search-time performance.  This may take a
+while, as it can involve rewriting large amounts of data.</p>
+<p>Every Indexer session which changes index content and ends in a
+<a href="../../Lucy/Index/Indexer.html#func_Commit">Commit()</a> creates a new 
segment.  Once written, segments are never
+modified.  However, they are periodically recycled by feeding their
+content into the segment currently being written.</p>
+<p>The <a href="../../Lucy/Index/Indexer.html#func_Optimize">Optimize()</a> 
method causes all existing index content to be fed back
+into the Indexer.  When <a 
href="../../Lucy/Index/Indexer.html#func_Commit">Commit()</a> completes after 
an <a href="../../Lucy/Index/Indexer.html#func_Optimize">Optimize()</a>, the
+index will consist of one segment.  So <a 
href="../../Lucy/Index/Indexer.html#func_Optimize">Optimize()</a> must be called
+before <a href="../../Lucy/Index/Indexer.html#func_Commit">Commit()</a>.  
Also, optimizing a fresh index created from scratch
+has no effect.</p>
+<p>Historically, there was a significant search-time performance benefit
+to collapsing down to a single segment versus even two segments.  Now
+the effect of collapsing is much less significant, and calling
+<a href="../../Lucy/Index/Indexer.html#func_Optimize">Optimize()</a> is rarely 
justified.</p>
+</dd>
+<dt id="func_Commit">Commit</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Indexer_Commit</strong>(
+    <span class="prefix">lucy_</span>Indexer *<strong>self</strong>
+);
+</code></pre>
+<p>Commit any changes made to the index.  Until this is called, none of
+the changes made during an indexing session are permanent.</p>
+<p>Calling <a href="../../Lucy/Index/Indexer.html#func_Commit">Commit()</a> 
invalidates the Indexer, so if you want to make more
+changes you’ll need a new one.</p>
+</dd>
+<dt id="func_Prepare_Commit">Prepare_Commit</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Indexer_Prepare_Commit</strong>(
+    <span class="prefix">lucy_</span>Indexer *<strong>self</strong>
+);
+</code></pre>
+<p>Perform the expensive setup for <a 
href="../../Lucy/Index/Indexer.html#func_Commit">Commit()</a> in advance, so 
that <a href="../../Lucy/Index/Indexer.html#func_Commit">Commit()</a>
+completes quickly.  (If <a 
href="../../Lucy/Index/Indexer.html#func_Prepare_Commit">Prepare_Commit()</a> 
is not called explicitly by
+the user, <a href="../../Lucy/Index/Indexer.html#func_Commit">Commit()</a> 
will call it internally.)</p>
+</dd>
+<dt id="func_Get_Schema">Get_Schema</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a 
href="../../Lucy/Plan/Schema.html">Schema</a>*
+<span class="prefix">lucy_</span><strong>Indexer_Get_Schema</strong>(
+    <span class="prefix">lucy_</span>Indexer *<strong>self</strong>
+);
+</code></pre>
+<p>Accessor for schema.</p>
+</dd>
+<dt id="func_Destroy">Destroy</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Indexer_Destroy</strong>(
+    <span class="prefix">lucy_</span>Indexer *<strong>self</strong>
+);
+</code></pre>
+<p>Generic destructor.  Frees the struct itself but not any complex
+member elements.</p>
+</dd>
+</dl>
+<h3>Inheritance</h3>
+<p>Lucy::Index::Indexer is a <a 
href="../../Clownfish/Obj.html">Clownfish::Obj</a>.</p>
+</div>

Added: lucy/site/trunk/content/docs/c/Lucy/Index/Lexicon.mdtext
URL: 
http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/c/Lucy/Index/Lexicon.mdtext?rev=1737682&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/c/Lucy/Index/Lexicon.mdtext (added)
+++ lucy/site/trunk/content/docs/c/Lucy/Index/Lexicon.mdtext Mon Apr  4 
12:55:10 2016
@@ -0,0 +1,97 @@
+Title: Lucy::Index::Lexicon – C API Documentation
+
+<div class="c-api">
+<h2>Lucy::Index::Lexicon</h2>
+<table>
+<tr>
+<td class="label">parcel</td>
+<td><a href="../../lucy.html">Lucy</a></td>
+</tr>
+<tr>
+<td class="label">class variable</td>
+<td><code><span class="prefix">LUCY_</span>LEXICON</code></td>
+</tr>
+<tr>
+<td class="label">struct symbol</td>
+<td><code><span class="prefix">lucy_</span>Lexicon</code></td>
+</tr>
+<tr>
+<td class="label">class nickname</td>
+<td><code><span class="prefix">lucy_</span>Lex</code></td>
+</tr>
+<tr>
+<td class="label">header file</td>
+<td><code>Lucy/Index/Lexicon.h</code></td>
+</tr>
+</table>
+<h3>Name</h3>
+<p>Lucy::Index::Lexicon – Iterator for a field’s terms.</p>
+<h3>Description</h3>
+<p>A Lexicon is an iterator which provides access to all the unique terms for
+a given field in sorted order.</p>
+<p>If an index consists of two documents with a ‘content’ field holding 
“three
+blind mice” and “three musketeers” respectively, then iterating through 
the
+‘content’ field’s lexicon would produce this list:</p>
+<pre><code>blind
+mice
+musketeers
+three
+</code></pre>
+<h3>Methods</h3>
+<dl>
+<dt id="func_Destroy">Destroy</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Lex_Destroy</strong>(
+    <span class="prefix">lucy_</span>Lexicon *<strong>self</strong>
+);
+</code></pre>
+<p>Generic destructor.  Frees the struct itself but not any complex
+member elements.</p>
+</dd>
+<dt id="func_Seek">Seek <span class="comment">(abstract)</span></dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Lex_Seek</strong>(
+    <span class="prefix">lucy_</span>Lexicon *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/Obj.html">Obj</a> *<strong>target</strong>
+);
+</code></pre>
+<p>Seek the Lexicon to the first iterator state which is greater than or
+equal to <code>target</code>.  If <code>target</code> is NULL,
+reset the iterator.</p>
+</dd>
+<dt id="func_Next">Next <span class="comment">(abstract)</span></dt>
+<dd>
+<pre><code>bool
+<span class="prefix">lucy_</span><strong>Lex_Next</strong>(
+    <span class="prefix">lucy_</span>Lexicon *<strong>self</strong>
+);
+</code></pre>
+<p>Proceed to the next term.</p>
+<p><strong>Returns:</strong> true until the iterator is exhausted, then 
false.</p>
+</dd>
+<dt id="func_Reset">Reset <span class="comment">(abstract)</span></dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Lex_Reset</strong>(
+    <span class="prefix">lucy_</span>Lexicon *<strong>self</strong>
+);
+</code></pre>
+<p>Reset the iterator.  <a 
href="../../Lucy/Index/Lexicon.html#func_Next">Next()</a> must be called to 
proceed to the first
+element.</p>
+</dd>
+<dt id="func_Get_Term">Get_Term <span class="comment">(abstract)</span></dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a 
href="../../Clownfish/Obj.html">Obj</a>*
+<span class="prefix">lucy_</span><strong>Lex_Get_Term</strong>(
+    <span class="prefix">lucy_</span>Lexicon *<strong>self</strong>
+);
+</code></pre>
+<p>Return the current term, or NULL if the iterator is not in a
+valid state.</p>
+</dd>
+</dl>
+<h3>Inheritance</h3>
+<p>Lucy::Index::Lexicon is a <a 
href="../../Clownfish/Obj.html">Clownfish::Obj</a>.</p>
+</div>

Added: lucy/site/trunk/content/docs/c/Lucy/Index/LexiconReader.mdtext
URL: 
http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/c/Lucy/Index/LexiconReader.mdtext?rev=1737682&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/c/Lucy/Index/LexiconReader.mdtext (added)
+++ lucy/site/trunk/content/docs/c/Lucy/Index/LexiconReader.mdtext Mon Apr  4 
12:55:10 2016
@@ -0,0 +1,88 @@
+Title: Lucy::Index::LexiconReader – C API Documentation
+
+<div class="c-api">
+<h2>Lucy::Index::LexiconReader</h2>
+<table>
+<tr>
+<td class="label">parcel</td>
+<td><a href="../../lucy.html">Lucy</a></td>
+</tr>
+<tr>
+<td class="label">class variable</td>
+<td><code><span class="prefix">LUCY_</span>LEXICONREADER</code></td>
+</tr>
+<tr>
+<td class="label">struct symbol</td>
+<td><code><span class="prefix">lucy_</span>LexiconReader</code></td>
+</tr>
+<tr>
+<td class="label">class nickname</td>
+<td><code><span class="prefix">lucy_</span>LexReader</code></td>
+</tr>
+<tr>
+<td class="label">header file</td>
+<td><code>Lucy/Index/LexiconReader.h</code></td>
+</tr>
+</table>
+<h3>Name</h3>
+<p>Lucy::Index::LexiconReader – Read Lexicon data.</p>
+<h3>Description</h3>
+<p>LexiconReader reads term dictionary information.</p>
+<h3>Methods</h3>
+<dl>
+<dt id="func_Lexicon">Lexicon <span class="comment">(abstract)</span></dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a 
href="../../Lucy/Index/Lexicon.html">Lexicon</a>* <span class="comment">// 
incremented</span>
+<span class="prefix">lucy_</span><strong>LexReader_Lexicon</strong>(
+    <span class="prefix">lucy_</span>LexiconReader *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/String.html">String</a> *<strong>field</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/Obj.html">Obj</a> *<strong>term</strong>
+);
+</code></pre>
+<p>Return a new Lexicon for the given <code>field</code>.  Will return
+NULL if either the field is not indexed, or if no documents
+contain a value for the field.</p>
+<dl>
+<dt>field</dt>
+<dd><p>Field name.</p>
+</dd>
+<dt>term</dt>
+<dd><p>Pre-locate the Lexicon to this term.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Doc_Freq">Doc_Freq <span class="comment">(abstract)</span></dt>
+<dd>
+<pre><code>uint32_t
+<span class="prefix">lucy_</span><strong>LexReader_Doc_Freq</strong>(
+    <span class="prefix">lucy_</span>LexiconReader *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/String.html">String</a> *<strong>field</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/Obj.html">Obj</a> *<strong>term</strong>
+);
+</code></pre>
+<p>Return the number of documents where the specified term is present.</p>
+</dd>
+<dt id="func_Aggregator">Aggregator</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>LexiconReader* <span 
class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>LexReader_Aggregator</strong>(
+    <span class="prefix">lucy_</span>LexiconReader *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/Vector.html">Vector</a> *<strong>readers</strong>,
+    <span class="prefix">lucy_</span><a 
href="../../Lucy/Object/I32Array.html">I32Array</a> *<strong>offsets</strong>
+);
+</code></pre>
+<p>Return a LexiconReader which merges the output of other
+LexiconReaders.</p>
+<dl>
+<dt>readers</dt>
+<dd><p>An array of LexiconReaders.</p>
+</dd>
+<dt>offsets</dt>
+<dd><p>Doc id start offsets for each reader.</p>
+</dd>
+</dl>
+</dd>
+</dl>
+<h3>Inheritance</h3>
+<p>Lucy::Index::LexiconReader is a <a 
href="../../Lucy/Index/DataReader.html">Lucy::Index::DataReader</a> is a <a 
href="../../Clownfish/Obj.html">Clownfish::Obj</a>.</p>
+</div>

Added: lucy/site/trunk/content/docs/c/Lucy/Index/PolyReader.mdtext
URL: 
http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/c/Lucy/Index/PolyReader.mdtext?rev=1737682&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/c/Lucy/Index/PolyReader.mdtext (added)
+++ lucy/site/trunk/content/docs/c/Lucy/Index/PolyReader.mdtext Mon Apr  4 
12:55:10 2016
@@ -0,0 +1,155 @@
+Title: Lucy::Index::PolyReader – C API Documentation
+
+<div class="c-api">
+<h2>Lucy::Index::PolyReader</h2>
+<table>
+<tr>
+<td class="label">parcel</td>
+<td><a href="../../lucy.html">Lucy</a></td>
+</tr>
+<tr>
+<td class="label">class variable</td>
+<td><code><span class="prefix">LUCY_</span>POLYREADER</code></td>
+</tr>
+<tr>
+<td class="label">struct symbol</td>
+<td><code><span class="prefix">lucy_</span>PolyReader</code></td>
+</tr>
+<tr>
+<td class="label">class nickname</td>
+<td><code><span class="prefix">lucy_</span>PolyReader</code></td>
+</tr>
+<tr>
+<td class="label">header file</td>
+<td><code>Lucy/Index/PolyReader.h</code></td>
+</tr>
+</table>
+<h3>Name</h3>
+<p>Lucy::Index::PolyReader – Multi-segment implementation of IndexReader.</p>
+<h3>Description</h3>
+<p>PolyReader conflates index data from multiple segments.  For instance, if
+an index contains three segments with 10 documents each, PolyReader’s
+<a href="../../Lucy/Index/PolyReader.html#func_Doc_Max">Doc_Max()</a> method 
will return 30.</p>
+<p>Some of PolyReader’s <a 
href="../../Lucy/Index/DataReader.html">DataReader</a> components
+may be less efficient or complete than the single-segment implementations
+accessed via <a href="../../Lucy/Index/SegReader.html">SegReader</a>.</p>
+<h3>Functions</h3>
+<dl>
+<dt id="func_open">open</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>PolyReader* <span 
class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>PolyReader_open</strong>(
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/Obj.html">Obj</a> *<strong>index</strong>,
+    <span class="prefix">lucy_</span><a 
href="../../Lucy/Index/Snapshot.html">Snapshot</a> *<strong>snapshot</strong>,
+    <span class="prefix">lucy_</span><a 
href="../../Lucy/Index/IndexManager.html">IndexManager</a> 
*<strong>manager</strong>
+);
+</code></pre>
+<p>Create and open a PolyReader.</p>
+<dl>
+<dt>index</dt>
+<dd><p>Either a string filepath or a <a 
href="../../Lucy/Store/Folder.html">Folder</a>.</p>
+</dd>
+<dt>snapshot</dt>
+<dd><p>A Snapshot.  If not supplied, the most recent snapshot
+file will be used.</p>
+</dd>
+<dt>manager</dt>
+<dd><p>An <a href="../../Lucy/Index/IndexManager.html">IndexManager</a>.
+Read-locking is off by default; supplying this argument turns it on.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_do_open">do_open</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>PolyReader*
+<span class="prefix">lucy_</span><strong>PolyReader_do_open</strong>(
+    <span class="prefix">lucy_</span>PolyReader *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/Obj.html">Obj</a> *<strong>index</strong>,
+    <span class="prefix">lucy_</span><a 
href="../../Lucy/Index/Snapshot.html">Snapshot</a> *<strong>snapshot</strong>,
+    <span class="prefix">lucy_</span><a 
href="../../Lucy/Index/IndexManager.html">IndexManager</a> 
*<strong>manager</strong>
+);
+</code></pre>
+<p>Initialize and open a PolyReader.</p>
+<dl>
+<dt>index</dt>
+<dd><p>Either a string filepath or a <a 
href="../../Lucy/Store/Folder.html">Folder</a>.</p>
+</dd>
+<dt>snapshot</dt>
+<dd><p>A Snapshot.  If not supplied, the most recent snapshot
+file will be used.</p>
+</dd>
+<dt>manager</dt>
+<dd><p>An <a href="../../Lucy/Index/IndexManager.html">IndexManager</a>.
+Read-locking is off by default; supplying this argument turns it on.</p>
+</dd>
+</dl>
+</dd>
+</dl>
+<h3>Methods</h3>
+<dl>
+<dt id="func_Doc_Max">Doc_Max</dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">lucy_</span><strong>PolyReader_Doc_Max</strong>(
+    <span class="prefix">lucy_</span>PolyReader *<strong>self</strong>
+);
+</code></pre>
+<p>Return the maximum number of documents available to the reader, which
+is also the highest possible internal document id.  Documents which
+have been marked as deleted but not yet purged from the index are
+included in this count.</p>
+</dd>
+<dt id="func_Doc_Count">Doc_Count</dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">lucy_</span><strong>PolyReader_Doc_Count</strong>(
+    <span class="prefix">lucy_</span>PolyReader *<strong>self</strong>
+);
+</code></pre>
+<p>Return the number of documents available to the reader, subtracting
+any that are marked as deleted.</p>
+</dd>
+<dt id="func_Del_Count">Del_Count</dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">lucy_</span><strong>PolyReader_Del_Count</strong>(
+    <span class="prefix">lucy_</span>PolyReader *<strong>self</strong>
+);
+</code></pre>
+<p>Return the number of documents which have been marked as deleted but
+not yet purged from the index.</p>
+</dd>
+<dt id="func_Offsets">Offsets</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a 
href="../../Lucy/Object/I32Array.html">I32Array</a>* <span class="comment">// 
incremented</span>
+<span class="prefix">lucy_</span><strong>PolyReader_Offsets</strong>(
+    <span class="prefix">lucy_</span>PolyReader *<strong>self</strong>
+);
+</code></pre>
+<p>Return an array with one entry for each segment, corresponding to
+segment doc_id start offset.</p>
+</dd>
+<dt id="func_Seg_Readers">Seg_Readers</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a 
href="../../Clownfish/Vector.html">Vector</a>* <span class="comment">// 
incremented</span>
+<span class="prefix">lucy_</span><strong>PolyReader_Seg_Readers</strong>(
+    <span class="prefix">lucy_</span>PolyReader *<strong>self</strong>
+);
+</code></pre>
+<p>Return an array of all the SegReaders represented within the
+IndexReader.</p>
+</dd>
+<dt id="func_Destroy">Destroy</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>PolyReader_Destroy</strong>(
+    <span class="prefix">lucy_</span>PolyReader *<strong>self</strong>
+);
+</code></pre>
+<p>Generic destructor.  Frees the struct itself but not any complex
+member elements.</p>
+</dd>
+</dl>
+<h3>Inheritance</h3>
+<p>Lucy::Index::PolyReader is a <a 
href="../../Lucy/Index/IndexReader.html">Lucy::Index::IndexReader</a> is a <a 
href="../../Lucy/Index/DataReader.html">Lucy::Index::DataReader</a> is a <a 
href="../../Clownfish/Obj.html">Clownfish::Obj</a>.</p>
+</div>

Added: lucy/site/trunk/content/docs/c/Lucy/Index/PostingList.mdtext
URL: 
http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/c/Lucy/Index/PostingList.mdtext?rev=1737682&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/c/Lucy/Index/PostingList.mdtext (added)
+++ lucy/site/trunk/content/docs/c/Lucy/Index/PostingList.mdtext Mon Apr  4 
12:55:10 2016
@@ -0,0 +1,67 @@
+Title: Lucy::Index::PostingList – C API Documentation
+
+<div class="c-api">
+<h2>Lucy::Index::PostingList</h2>
+<table>
+<tr>
+<td class="label">parcel</td>
+<td><a href="../../lucy.html">Lucy</a></td>
+</tr>
+<tr>
+<td class="label">class variable</td>
+<td><code><span class="prefix">LUCY_</span>POSTINGLIST</code></td>
+</tr>
+<tr>
+<td class="label">struct symbol</td>
+<td><code><span class="prefix">lucy_</span>PostingList</code></td>
+</tr>
+<tr>
+<td class="label">class nickname</td>
+<td><code><span class="prefix">lucy_</span>PList</code></td>
+</tr>
+<tr>
+<td class="label">header file</td>
+<td><code>Lucy/Index/PostingList.h</code></td>
+</tr>
+</table>
+<h3>Name</h3>
+<p>Lucy::Index::PostingList – Term-Document pairings.</p>
+<h3>Description</h3>
+<p>PostingList is an iterator which supplies a list of document ids that match
+a given term.</p>
+<p>See <a href="../../Lucy/Docs/IRTheory.html">IRTheory</a> for definitions of 
“posting” and
+“posting list”.</p>
+<h3>Methods</h3>
+<dl>
+<dt id="func_Get_Doc_Freq">Get_Doc_Freq <span 
class="comment">(abstract)</span></dt>
+<dd>
+<pre><code>uint32_t
+<span class="prefix">lucy_</span><strong>PList_Get_Doc_Freq</strong>(
+    <span class="prefix">lucy_</span>PostingList *<strong>self</strong>
+);
+</code></pre>
+<p>Return the number of documents that the PostingList contains.  (This
+number will include any documents which have been marked as deleted but
+not yet purged.)</p>
+</dd>
+<dt id="func_Seek">Seek <span class="comment">(abstract)</span></dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>PList_Seek</strong>(
+    <span class="prefix">lucy_</span>PostingList *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/Obj.html">Obj</a> *<strong>target</strong>
+);
+</code></pre>
+<p>Prepare the PostingList object to iterate over matches for documents
+that match <code>target</code>.</p>
+<dl>
+<dt>target</dt>
+<dd><p>The term to match.  If NULL, the iterator will
+be empty.</p>
+</dd>
+</dl>
+</dd>
+</dl>
+<h3>Inheritance</h3>
+<p>Lucy::Index::PostingList is a <a 
href="../../Lucy/Search/Matcher.html">Lucy::Search::Matcher</a> is a <a 
href="../../Clownfish/Obj.html">Clownfish::Obj</a>.</p>
+</div>

Added: lucy/site/trunk/content/docs/c/Lucy/Index/PostingListReader.mdtext
URL: 
http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/c/Lucy/Index/PostingListReader.mdtext?rev=1737682&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/c/Lucy/Index/PostingListReader.mdtext (added)
+++ lucy/site/trunk/content/docs/c/Lucy/Index/PostingListReader.mdtext Mon Apr  
4 12:55:10 2016
@@ -0,0 +1,70 @@
+Title: Lucy::Index::PostingListReader – C API Documentation
+
+<div class="c-api">
+<h2>Lucy::Index::PostingListReader</h2>
+<table>
+<tr>
+<td class="label">parcel</td>
+<td><a href="../../lucy.html">Lucy</a></td>
+</tr>
+<tr>
+<td class="label">class variable</td>
+<td><code><span class="prefix">LUCY_</span>POSTINGLISTREADER</code></td>
+</tr>
+<tr>
+<td class="label">struct symbol</td>
+<td><code><span class="prefix">lucy_</span>PostingListReader</code></td>
+</tr>
+<tr>
+<td class="label">class nickname</td>
+<td><code><span class="prefix">lucy_</span>PListReader</code></td>
+</tr>
+<tr>
+<td class="label">header file</td>
+<td><code>Lucy/Index/PostingListReader.h</code></td>
+</tr>
+</table>
+<h3>Name</h3>
+<p>Lucy::Index::PostingListReader – Read postings data.</p>
+<h3>Description</h3>
+<p>PostingListReaders produce <a 
href="../../Lucy/Index/PostingList.html">PostingList</a>
+objects which convey document matching information.</p>
+<h3>Methods</h3>
+<dl>
+<dt id="func_Posting_List">Posting_List <span 
class="comment">(abstract)</span></dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a 
href="../../Lucy/Index/PostingList.html">PostingList</a>* <span 
class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>PListReader_Posting_List</strong>(
+    <span class="prefix">lucy_</span>PostingListReader *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/String.html">String</a> *<strong>field</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/Obj.html">Obj</a> *<strong>term</strong>
+);
+</code></pre>
+<p>Returns a PostingList, or NULL if either <code>field</code> is
+NULL or <code>field</code> is not present in any documents.</p>
+<dl>
+<dt>field</dt>
+<dd><p>A field name.</p>
+</dd>
+<dt>term</dt>
+<dd><p>If supplied, the PostingList will be pre-located to this
+term using <a 
href="../../Lucy/Index/PostingList.html#func_Seek">Seek()</a>.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Aggregator">Aggregator</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>PostingListReader* <span 
class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>PListReader_Aggregator</strong>(
+    <span class="prefix">lucy_</span>PostingListReader *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/Vector.html">Vector</a> *<strong>readers</strong>,
+    <span class="prefix">lucy_</span><a 
href="../../Lucy/Object/I32Array.html">I32Array</a> *<strong>offsets</strong>
+);
+</code></pre>
+<p>Returns NULL since PostingLists may only be iterated at the
+segment level.</p>
+</dd>
+</dl>
+<h3>Inheritance</h3>
+<p>Lucy::Index::PostingListReader is a <a 
href="../../Lucy/Index/DataReader.html">Lucy::Index::DataReader</a> is a <a 
href="../../Clownfish/Obj.html">Clownfish::Obj</a>.</p>
+</div>

Added: lucy/site/trunk/content/docs/c/Lucy/Index/SegReader.mdtext
URL: 
http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/c/Lucy/Index/SegReader.mdtext?rev=1737682&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/c/Lucy/Index/SegReader.mdtext (added)
+++ lucy/site/trunk/content/docs/c/Lucy/Index/SegReader.mdtext Mon Apr  4 
12:55:10 2016
@@ -0,0 +1,121 @@
+Title: Lucy::Index::SegReader – C API Documentation
+
+<div class="c-api">
+<h2>Lucy::Index::SegReader</h2>
+<table>
+<tr>
+<td class="label">parcel</td>
+<td><a href="../../lucy.html">Lucy</a></td>
+</tr>
+<tr>
+<td class="label">class variable</td>
+<td><code><span class="prefix">LUCY_</span>SEGREADER</code></td>
+</tr>
+<tr>
+<td class="label">struct symbol</td>
+<td><code><span class="prefix">lucy_</span>SegReader</code></td>
+</tr>
+<tr>
+<td class="label">class nickname</td>
+<td><code><span class="prefix">lucy_</span>SegReader</code></td>
+</tr>
+<tr>
+<td class="label">header file</td>
+<td><code>Lucy/Index/SegReader.h</code></td>
+</tr>
+</table>
+<h3>Name</h3>
+<p>Lucy::Index::SegReader – Single-segment IndexReader.</p>
+<h3>Description</h3>
+<p>SegReader interprets the data within a single segment of an index.</p>
+<p>Generally speaking, only advanced users writing subclasses which manipulate
+data at the segment level need to deal with the SegReader API directly.</p>
+<p>Nearly all of SegReader’s functionality is implemented by pluggable
+components spawned by <a 
href="../../Lucy/Plan/Architecture.html">Architecture</a>’s
+factory methods.</p>
+<h3>Methods</h3>
+<dl>
+<dt id="func_Destroy">Destroy</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>SegReader_Destroy</strong>(
+    <span class="prefix">lucy_</span>SegReader *<strong>self</strong>
+);
+</code></pre>
+<p>Generic destructor.  Frees the struct itself but not any complex
+member elements.</p>
+</dd>
+<dt id="func_Get_Seg_Name">Get_Seg_Name</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a 
href="../../Clownfish/String.html">String</a>*
+<span class="prefix">lucy_</span><strong>SegReader_Get_Seg_Name</strong>(
+    <span class="prefix">lucy_</span>SegReader *<strong>self</strong>
+);
+</code></pre>
+<p>Return the name of the segment.</p>
+</dd>
+<dt id="func_Get_Seg_Num">Get_Seg_Num</dt>
+<dd>
+<pre><code>int64_t
+<span class="prefix">lucy_</span><strong>SegReader_Get_Seg_Num</strong>(
+    <span class="prefix">lucy_</span>SegReader *<strong>self</strong>
+);
+</code></pre>
+<p>Return the number of the segment.</p>
+</dd>
+<dt id="func_Del_Count">Del_Count</dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">lucy_</span><strong>SegReader_Del_Count</strong>(
+    <span class="prefix">lucy_</span>SegReader *<strong>self</strong>
+);
+</code></pre>
+<p>Return the number of documents which have been marked as deleted but
+not yet purged from the index.</p>
+</dd>
+<dt id="func_Doc_Max">Doc_Max</dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">lucy_</span><strong>SegReader_Doc_Max</strong>(
+    <span class="prefix">lucy_</span>SegReader *<strong>self</strong>
+);
+</code></pre>
+<p>Return the maximum number of documents available to the reader, which
+is also the highest possible internal document id.  Documents which
+have been marked as deleted but not yet purged from the index are
+included in this count.</p>
+</dd>
+<dt id="func_Doc_Count">Doc_Count</dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">lucy_</span><strong>SegReader_Doc_Count</strong>(
+    <span class="prefix">lucy_</span>SegReader *<strong>self</strong>
+);
+</code></pre>
+<p>Return the number of documents available to the reader, subtracting
+any that are marked as deleted.</p>
+</dd>
+<dt id="func_Offsets">Offsets</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a 
href="../../Lucy/Object/I32Array.html">I32Array</a>* <span class="comment">// 
incremented</span>
+<span class="prefix">lucy_</span><strong>SegReader_Offsets</strong>(
+    <span class="prefix">lucy_</span>SegReader *<strong>self</strong>
+);
+</code></pre>
+<p>Return an array with one entry for each segment, corresponding to
+segment doc_id start offset.</p>
+</dd>
+<dt id="func_Seg_Readers">Seg_Readers</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a 
href="../../Clownfish/Vector.html">Vector</a>* <span class="comment">// 
incremented</span>
+<span class="prefix">lucy_</span><strong>SegReader_Seg_Readers</strong>(
+    <span class="prefix">lucy_</span>SegReader *<strong>self</strong>
+);
+</code></pre>
+<p>Return an array of all the SegReaders represented within the
+IndexReader.</p>
+</dd>
+</dl>
+<h3>Inheritance</h3>
+<p>Lucy::Index::SegReader is a <a 
href="../../Lucy/Index/IndexReader.html">Lucy::Index::IndexReader</a> is a <a 
href="../../Lucy/Index/DataReader.html">Lucy::Index::DataReader</a> is a <a 
href="../../Clownfish/Obj.html">Clownfish::Obj</a>.</p>
+</div>

Added: lucy/site/trunk/content/docs/c/Lucy/Index/SegWriter.mdtext
URL: 
http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/c/Lucy/Index/SegWriter.mdtext?rev=1737682&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/c/Lucy/Index/SegWriter.mdtext (added)
+++ lucy/site/trunk/content/docs/c/Lucy/Index/SegWriter.mdtext Mon Apr  4 
12:55:10 2016
@@ -0,0 +1,191 @@
+Title: Lucy::Index::SegWriter – C API Documentation
+
+<div class="c-api">
+<h2>Lucy::Index::SegWriter</h2>
+<table>
+<tr>
+<td class="label">parcel</td>
+<td><a href="../../lucy.html">Lucy</a></td>
+</tr>
+<tr>
+<td class="label">class variable</td>
+<td><code><span class="prefix">LUCY_</span>SEGWRITER</code></td>
+</tr>
+<tr>
+<td class="label">struct symbol</td>
+<td><code><span class="prefix">lucy_</span>SegWriter</code></td>
+</tr>
+<tr>
+<td class="label">class nickname</td>
+<td><code><span class="prefix">lucy_</span>SegWriter</code></td>
+</tr>
+<tr>
+<td class="label">header file</td>
+<td><code>Lucy/Index/SegWriter.h</code></td>
+</tr>
+</table>
+<h3>Name</h3>
+<p>Lucy::Index::SegWriter – Write one segment of an index.</p>
+<h3>Description</h3>
+<p>SegWriter is a conduit through which information fed to Indexer passes.  It
+manages <a href="../../Lucy/Index/Segment.html">Segment</a> and Inverter, 
invokes the
+<a href="../../Lucy/Analysis/Analyzer.html">Analyzer</a> chain, and feeds low
+level <a href="../../Lucy/Index/DataWriter.html">DataWriters</a> such as
+PostingListWriter and DocWriter.</p>
+<p>The sub-components of a SegWriter are determined by
+<a href="../../Lucy/Plan/Architecture.html">Architecture</a>.  DataWriter 
components
+which are added to the stack of writers via <a 
href="../../Lucy/Index/SegWriter.html#func_Add_Writer">Add_Writer()</a> have
+Add_Inverted_Doc() invoked for each document supplied to SegWriter’s
+<a href="../../Lucy/Index/SegWriter.html#func_Add_Doc">Add_Doc()</a>.</p>
+<h3>Methods</h3>
+<dl>
+<dt id="func_Register">Register</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>SegWriter_Register</strong>(
+    <span class="prefix">lucy_</span>SegWriter *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/String.html">String</a> *<strong>api</strong>,
+    <span class="prefix">lucy_</span><a 
href="../../Lucy/Index/DataWriter.html">DataWriter</a> 
*<strong>component</strong> <span class="comment">// decremented</span>
+);
+</code></pre>
+<p>Register a DataWriter component with the SegWriter.  (Note that
+registration simply makes the writer available via <a 
href="../../Lucy/Index/SegWriter.html#func_Fetch">Fetch()</a>, so you may
+also want to call <a 
href="../../Lucy/Index/SegWriter.html#func_Add_Writer">Add_Writer()</a>).</p>
+<dl>
+<dt>api</dt>
+<dd><p>The name of the DataWriter api which <code>writer</code>
+implements.</p>
+</dd>
+<dt>component</dt>
+<dd><p>A DataWriter.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Fetch">Fetch</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a 
href="../../Clownfish/Obj.html">Obj</a>*
+<span class="prefix">lucy_</span><strong>SegWriter_Fetch</strong>(
+    <span class="prefix">lucy_</span>SegWriter *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/String.html">String</a> *<strong>api</strong>
+);
+</code></pre>
+<p>Retrieve a registered component.</p>
+<dl>
+<dt>api</dt>
+<dd><p>The name of the DataWriter api which the component
+implements.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Add_Writer">Add_Writer</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>SegWriter_Add_Writer</strong>(
+    <span class="prefix">lucy_</span>SegWriter *<strong>self</strong>,
+    <span class="prefix">lucy_</span><a 
href="../../Lucy/Index/DataWriter.html">DataWriter</a> *<strong>writer</strong> 
<span class="comment">// decremented</span>
+);
+</code></pre>
+<p>Add a DataWriter to the SegWriter’s stack of writers.</p>
+</dd>
+<dt id="func_Add_Doc">Add_Doc</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>SegWriter_Add_Doc</strong>(
+    <span class="prefix">lucy_</span>SegWriter *<strong>self</strong>,
+    <span class="prefix">lucy_</span><a 
href="../../Lucy/Document/Doc.html">Doc</a> *<strong>doc</strong>,
+    float <strong>boost</strong>
+);
+</code></pre>
+<p>Add a document to the segment.  Inverts <code>doc</code>, increments
+the Segment’s internal document id, then calls Add_Inverted_Doc(),
+feeding all sub-writers.</p>
+</dd>
+<dt id="func_Add_Segment">Add_Segment</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>SegWriter_Add_Segment</strong>(
+    <span class="prefix">lucy_</span>SegWriter *<strong>self</strong>,
+    <span class="prefix">lucy_</span><a 
href="../../Lucy/Index/SegReader.html">SegReader</a> *<strong>reader</strong>,
+    <span class="prefix">lucy_</span><a 
href="../../Lucy/Object/I32Array.html">I32Array</a> *<strong>doc_map</strong>
+);
+</code></pre>
+<p>Add content from an existing segment into the one currently being
+written.</p>
+<dl>
+<dt>reader</dt>
+<dd><p>The SegReader containing content to add.</p>
+</dd>
+<dt>doc_map</dt>
+<dd><p>An array of integers mapping old document ids to
+new.  Deleted documents are mapped to 0, indicating that they should be
+skipped.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Merge_Segment">Merge_Segment</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>SegWriter_Merge_Segment</strong>(
+    <span class="prefix">lucy_</span>SegWriter *<strong>self</strong>,
+    <span class="prefix">lucy_</span><a 
href="../../Lucy/Index/SegReader.html">SegReader</a> *<strong>reader</strong>,
+    <span class="prefix">lucy_</span><a 
href="../../Lucy/Object/I32Array.html">I32Array</a> *<strong>doc_map</strong>
+);
+</code></pre>
+<p>Move content from an existing segment into the one currently being
+written.</p>
+<p>The default implementation calls <a 
href="../../Lucy/Index/SegWriter.html#func_Add_Segment">Add_Segment()</a> then 
<a 
href="../../Lucy/Index/SegWriter.html#func_Delete_Segment">Delete_Segment()</a>.</p>
+<dl>
+<dt>reader</dt>
+<dd><p>The SegReader containing content to merge, which must
+represent a segment which is part of the the current snapshot.</p>
+</dd>
+<dt>doc_map</dt>
+<dd><p>An array of integers mapping old document ids to
+new.  Deleted documents are mapped to 0, indicating that they should be
+skipped.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Delete_Segment">Delete_Segment</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>SegWriter_Delete_Segment</strong>(
+    <span class="prefix">lucy_</span>SegWriter *<strong>self</strong>,
+    <span class="prefix">lucy_</span><a 
href="../../Lucy/Index/SegReader.html">SegReader</a> *<strong>reader</strong>
+);
+</code></pre>
+<p>Remove a segment’s data.  The default implementation is a no-op, as
+all files within the segment directory will be automatically deleted.
+Subclasses which manage their own files outside of the segment system
+should override this method and use it as a trigger for cleaning up
+obsolete data.</p>
+<dl>
+<dt>reader</dt>
+<dd><p>The SegReader containing content to merge, which must
+represent a segment which is part of the the current snapshot.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Finish">Finish</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>SegWriter_Finish</strong>(
+    <span class="prefix">lucy_</span>SegWriter *<strong>self</strong>
+);
+</code></pre>
+<p>Complete the segment: close all streams, store metadata, etc.</p>
+</dd>
+<dt id="func_Destroy">Destroy</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>SegWriter_Destroy</strong>(
+    <span class="prefix">lucy_</span>SegWriter *<strong>self</strong>
+);
+</code></pre>
+<p>Generic destructor.  Frees the struct itself but not any complex
+member elements.</p>
+</dd>
+</dl>
+<h3>Inheritance</h3>
+<p>Lucy::Index::SegWriter is a <a 
href="../../Lucy/Index/DataWriter.html">Lucy::Index::DataWriter</a> is a <a 
href="../../Clownfish/Obj.html">Clownfish::Obj</a>.</p>
+</div>

Added: lucy/site/trunk/content/docs/c/Lucy/Index/Segment.mdtext
URL: 
http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/c/Lucy/Index/Segment.mdtext?rev=1737682&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/c/Lucy/Index/Segment.mdtext (added)
+++ lucy/site/trunk/content/docs/c/Lucy/Index/Segment.mdtext Mon Apr  4 
12:55:10 2016
@@ -0,0 +1,177 @@
+Title: Lucy::Index::Segment – C API Documentation
+
+<div class="c-api">
+<h2>Lucy::Index::Segment</h2>
+<table>
+<tr>
+<td class="label">parcel</td>
+<td><a href="../../lucy.html">Lucy</a></td>
+</tr>
+<tr>
+<td class="label">class variable</td>
+<td><code><span class="prefix">LUCY_</span>SEGMENT</code></td>
+</tr>
+<tr>
+<td class="label">struct symbol</td>
+<td><code><span class="prefix">lucy_</span>Segment</code></td>
+</tr>
+<tr>
+<td class="label">class nickname</td>
+<td><code><span class="prefix">lucy_</span>Seg</code></td>
+</tr>
+<tr>
+<td class="label">header file</td>
+<td><code>Lucy/Index/Segment.h</code></td>
+</tr>
+</table>
+<h3>Name</h3>
+<p>Lucy::Index::Segment – Warehouse for information about one segment of an 
inverted index.</p>
+<h3>Description</h3>
+<p>Apache Lucy’s indexes are made up of individual “segments”, each of 
which is
+is an independent inverted index.  On the file system, each segment is a
+directory within the main index directory whose name starts with “seg_”:
+“seg_2”, “seg_5a”, etc.</p>
+<p>Each Segment object keeps track of information about an index segment: its
+fields, document count, and so on.  The Segment object itself writes one
+file, <code>segmeta.json</code>; besides storing info needed by Segment
+itself, the “segmeta” file serves as a central repository for metadata
+generated by other index components – relieving them of the burden of
+storing metadata themselves.</p>
+<h3>Methods</h3>
+<dl>
+<dt id="func_Add_Field">Add_Field</dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">lucy_</span><strong>Seg_Add_Field</strong>(
+    <span class="prefix">lucy_</span>Segment *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/String.html">String</a> *<strong>field</strong>
+);
+</code></pre>
+<p>Register a new field and assign it a field number.  If the field was
+already known, nothing happens.</p>
+<dl>
+<dt>field</dt>
+<dd><p>Field name.</p>
+</dd>
+</dl>
+<p><strong>Returns:</strong> the field’s field number, which is a positive 
integer.</p>
+</dd>
+<dt id="func_Store_Metadata">Store_Metadata</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Seg_Store_Metadata</strong>(
+    <span class="prefix">lucy_</span>Segment *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/String.html">String</a> *<strong>key</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/Obj.html">Obj</a> *<strong>metadata</strong> <span 
class="comment">// decremented</span>
+);
+</code></pre>
+<p>Store arbitrary information in the segment’s metadata hash, to be
+serialized later.  Throws an error if <code>key</code> is used twice.</p>
+<dl>
+<dt>key</dt>
+<dd><p>String identifying an index component.</p>
+</dd>
+<dt>metadata</dt>
+<dd><p>JSON-izable data structure.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Fetch_Metadata">Fetch_Metadata</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a 
href="../../Clownfish/Obj.html">Obj</a>*
+<span class="prefix">lucy_</span><strong>Seg_Fetch_Metadata</strong>(
+    <span class="prefix">lucy_</span>Segment *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/String.html">String</a> *<strong>key</strong>
+);
+</code></pre>
+<p>Fetch a value from the Segment’s metadata hash.</p>
+</dd>
+<dt id="func_Field_Num">Field_Num</dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">lucy_</span><strong>Seg_Field_Num</strong>(
+    <span class="prefix">lucy_</span>Segment *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/String.html">String</a> *<strong>field</strong>
+);
+</code></pre>
+<p>Given a field name, return its field number for this segment (which
+may differ from its number in other segments).  Return 0 (an invalid
+field number) if the field name can’t be found.</p>
+<dl>
+<dt>field</dt>
+<dd><p>Field name.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Field_Name">Field_Name</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a 
href="../../Clownfish/String.html">String</a>*
+<span class="prefix">lucy_</span><strong>Seg_Field_Name</strong>(
+    <span class="prefix">lucy_</span>Segment *<strong>self</strong>,
+    int32_t <strong>field_num</strong>
+);
+</code></pre>
+<p>Given a field number, return the name of its field, or NULL
+if the field name can’t be found.</p>
+</dd>
+<dt id="func_Get_Name">Get_Name</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a 
href="../../Clownfish/String.html">String</a>*
+<span class="prefix">lucy_</span><strong>Seg_Get_Name</strong>(
+    <span class="prefix">lucy_</span>Segment *<strong>self</strong>
+);
+</code></pre>
+<p>Getter for the object’s seg name.</p>
+</dd>
+<dt id="func_Get_Number">Get_Number</dt>
+<dd>
+<pre><code>int64_t
+<span class="prefix">lucy_</span><strong>Seg_Get_Number</strong>(
+    <span class="prefix">lucy_</span>Segment *<strong>self</strong>
+);
+</code></pre>
+<p>Getter for the segment number.</p>
+</dd>
+<dt id="func_Set_Count">Set_Count</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Seg_Set_Count</strong>(
+    <span class="prefix">lucy_</span>Segment *<strong>self</strong>,
+    int64_t <strong>count</strong>
+);
+</code></pre>
+<p>Setter for the object’s document count.</p>
+</dd>
+<dt id="func_Get_Count">Get_Count</dt>
+<dd>
+<pre><code>int64_t
+<span class="prefix">lucy_</span><strong>Seg_Get_Count</strong>(
+    <span class="prefix">lucy_</span>Segment *<strong>self</strong>
+);
+</code></pre>
+<p>Getter for the object’s document count.</p>
+</dd>
+<dt id="func_Compare_To">Compare_To</dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">lucy_</span><strong>Seg_Compare_To</strong>(
+    <span class="prefix">lucy_</span>Segment *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/Obj.html">Obj</a> *<strong>other</strong>
+);
+</code></pre>
+<p>Compare by segment number.</p>
+</dd>
+<dt id="func_Destroy">Destroy</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Seg_Destroy</strong>(
+    <span class="prefix">lucy_</span>Segment *<strong>self</strong>
+);
+</code></pre>
+<p>Generic destructor.  Frees the struct itself but not any complex
+member elements.</p>
+</dd>
+</dl>
+<h3>Inheritance</h3>
+<p>Lucy::Index::Segment is a <a 
href="../../Clownfish/Obj.html">Clownfish::Obj</a>.</p>
+</div>

Added: lucy/site/trunk/content/docs/c/Lucy/Index/Similarity.mdtext
URL: 
http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/c/Lucy/Index/Similarity.mdtext?rev=1737682&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/c/Lucy/Index/Similarity.mdtext (added)
+++ lucy/site/trunk/content/docs/c/Lucy/Index/Similarity.mdtext Mon Apr  4 
12:55:10 2016
@@ -0,0 +1,112 @@
+Title: Lucy::Index::Similarity – C API Documentation
+
+<div class="c-api">
+<h2>Lucy::Index::Similarity</h2>
+<table>
+<tr>
+<td class="label">parcel</td>
+<td><a href="../../lucy.html">Lucy</a></td>
+</tr>
+<tr>
+<td class="label">class variable</td>
+<td><code><span class="prefix">LUCY_</span>SIMILARITY</code></td>
+</tr>
+<tr>
+<td class="label">struct symbol</td>
+<td><code><span class="prefix">lucy_</span>Similarity</code></td>
+</tr>
+<tr>
+<td class="label">class nickname</td>
+<td><code><span class="prefix">lucy_</span>Sim</code></td>
+</tr>
+<tr>
+<td class="label">header file</td>
+<td><code>Lucy/Index/Similarity.h</code></td>
+</tr>
+</table>
+<h3>Name</h3>
+<p>Lucy::Index::Similarity – Judge how well a document matches a query.</p>
+<h3>Description</h3>
+<p>After determining whether a document matches a given query, a score must be
+calculated which indicates how <em>well</em> the document matches the query.  
The
+Similarity class is used to judge how “similar” the query and the document
+are to each other; the closer the resemblance, they higher the document
+scores.</p>
+<p>The default implementation uses Lucene’s modified cosine similarity
+measure.  Subclasses might tweak the existing algorithms, or might be used
+in conjunction with custom Query subclasses to implement arbitrary scoring
+schemes.</p>
+<p>Most of the methods operate on single fields, but some are used to combine
+scores from multiple fields.</p>
+<h3>Functions</h3>
+<dl>
+<dt id="func_new">new</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>Similarity* <span 
class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>Sim_new</strong>(void);
+</code></pre>
+<p>Constructor. Takes no arguments.</p>
+</dd>
+<dt id="func_init">init</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>Similarity*
+<span class="prefix">lucy_</span><strong>Sim_init</strong>(
+    <span class="prefix">lucy_</span>Similarity *<strong>self</strong>
+);
+</code></pre>
+<p>Initialize a Similarity.</p>
+</dd>
+</dl>
+<h3>Methods</h3>
+<dl>
+<dt id="func_Length_Norm">Length_Norm</dt>
+<dd>
+<pre><code>float
+<span class="prefix">lucy_</span><strong>Sim_Length_Norm</strong>(
+    <span class="prefix">lucy_</span>Similarity *<strong>self</strong>,
+    uint32_t <strong>num_tokens</strong>
+);
+</code></pre>
+<p>Dampen the scores of long documents.</p>
+<p>After a field is broken up into terms at index-time, each term must be
+assigned a weight.  One of the factors in calculating this weight is
+the number of tokens that the original field was broken into.</p>
+<p>Typically, we assume that the more tokens in a field, the less
+important any one of them is – so that, e.g. 5 mentions of “Kafka” in
+a short article are given more heft than 5 mentions of “Kafka” in an
+entire book.  The default implementation of length_norm expresses this
+using an inverted square root.</p>
+<p>However, the inverted square root has a tendency to reward very short
+fields highly, which isn’t always appropriate for fields you expect to
+have a lot of tokens on average.</p>
+</dd>
+<dt id="func_Destroy">Destroy</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Sim_Destroy</strong>(
+    <span class="prefix">lucy_</span>Similarity *<strong>self</strong>
+);
+</code></pre>
+<p>Generic destructor.  Frees the struct itself but not any complex
+member elements.</p>
+</dd>
+<dt id="func_Equals">Equals</dt>
+<dd>
+<pre><code>bool
+<span class="prefix">lucy_</span><strong>Sim_Equals</strong>(
+    <span class="prefix">lucy_</span>Similarity *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/Obj.html">Obj</a> *<strong>other</strong>
+);
+</code></pre>
+<p>Indicate whether two objects are the same.  By default, compares the
+memory address.</p>
+<dl>
+<dt>other</dt>
+<dd><p>Another Obj.</p>
+</dd>
+</dl>
+</dd>
+</dl>
+<h3>Inheritance</h3>
+<p>Lucy::Index::Similarity is a <a 
href="../../Clownfish/Obj.html">Clownfish::Obj</a>.</p>
+</div>

Added: lucy/site/trunk/content/docs/c/Lucy/Index/Snapshot.mdtext
URL: 
http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/c/Lucy/Index/Snapshot.mdtext?rev=1737682&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/c/Lucy/Index/Snapshot.mdtext (added)
+++ lucy/site/trunk/content/docs/c/Lucy/Index/Snapshot.mdtext Mon Apr  4 
12:55:10 2016
@@ -0,0 +1,175 @@
+Title: Lucy::Index::Snapshot – C API Documentation
+
+<div class="c-api">
+<h2>Lucy::Index::Snapshot</h2>
+<table>
+<tr>
+<td class="label">parcel</td>
+<td><a href="../../lucy.html">Lucy</a></td>
+</tr>
+<tr>
+<td class="label">class variable</td>
+<td><code><span class="prefix">LUCY_</span>SNAPSHOT</code></td>
+</tr>
+<tr>
+<td class="label">struct symbol</td>
+<td><code><span class="prefix">lucy_</span>Snapshot</code></td>
+</tr>
+<tr>
+<td class="label">class nickname</td>
+<td><code><span class="prefix">lucy_</span>Snapshot</code></td>
+</tr>
+<tr>
+<td class="label">header file</td>
+<td><code>Lucy/Index/Snapshot.h</code></td>
+</tr>
+</table>
+<h3>Name</h3>
+<p>Lucy::Index::Snapshot – Point-in-time index file list.</p>
+<h3>Description</h3>
+<p>A Snapshot is list of index files and folders.  Because index files, once
+written, are never modified, a Snapshot defines a point-in-time view of the
+data in an index.</p>
+<p><a href="../../Lucy/Index/IndexReader.html">IndexReader</a> objects 
interpret the data
+associated with a single Snapshot.</p>
+<h3>Functions</h3>
+<dl>
+<dt id="func_new">new</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>Snapshot* <span class="comment">// 
incremented</span>
+<span class="prefix">lucy_</span><strong>Snapshot_new</strong>(void);
+</code></pre>
+<p>Constructor.  Takes no arguments.</p>
+</dd>
+<dt id="func_init">init</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>Snapshot*
+<span class="prefix">lucy_</span><strong>Snapshot_init</strong>(
+    <span class="prefix">lucy_</span>Snapshot *<strong>self</strong>
+);
+</code></pre>
+<p>Initialize a Snapshot.</p>
+</dd>
+</dl>
+<h3>Methods</h3>
+<dl>
+<dt id="func_List">List</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a 
href="../../Clownfish/Vector.html">Vector</a>* <span class="comment">// 
incremented</span>
+<span class="prefix">lucy_</span><strong>Snapshot_List</strong>(
+    <span class="prefix">lucy_</span>Snapshot *<strong>self</strong>
+);
+</code></pre>
+<p>Return an array of all entries.</p>
+</dd>
+<dt id="func_Num_Entries">Num_Entries</dt>
+<dd>
+<pre><code>uint32_t
+<span class="prefix">lucy_</span><strong>Snapshot_Num_Entries</strong>(
+    <span class="prefix">lucy_</span>Snapshot *<strong>self</strong>
+);
+</code></pre>
+<p>Return the number of entries (including directories).</p>
+</dd>
+<dt id="func_Add_Entry">Add_Entry</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Snapshot_Add_Entry</strong>(
+    <span class="prefix">lucy_</span>Snapshot *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/String.html">String</a> *<strong>entry</strong>
+);
+</code></pre>
+<p>Add a filepath to the snapshot.</p>
+</dd>
+<dt id="func_Delete_Entry">Delete_Entry</dt>
+<dd>
+<pre><code>bool
+<span class="prefix">lucy_</span><strong>Snapshot_Delete_Entry</strong>(
+    <span class="prefix">lucy_</span>Snapshot *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/String.html">String</a> *<strong>entry</strong>
+);
+</code></pre>
+<p>Delete a filepath from the snapshot.</p>
+<p><strong>Returns:</strong> true if the entry existed and was successfully 
deleted, false
+otherwise.</p>
+</dd>
+<dt id="func_Read_File">Read_File</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>Snapshot*
+<span class="prefix">lucy_</span><strong>Snapshot_Read_File</strong>(
+    <span class="prefix">lucy_</span>Snapshot *<strong>self</strong>,
+    <span class="prefix">lucy_</span><a 
href="../../Lucy/Store/Folder.html">Folder</a> *<strong>folder</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/String.html">String</a> *<strong>path</strong>
+);
+</code></pre>
+<p>Decode a snapshot file and initialize the object to reflect its
+contents.</p>
+<dl>
+<dt>folder</dt>
+<dd><p>A Folder.</p>
+</dd>
+<dt>path</dt>
+<dd><p>The location of the snapshot file.  If not supplied, the
+most recent snapshot file in the base directory will be chosen.</p>
+</dd>
+</dl>
+<p><strong>Returns:</strong> the Snapshot object itself</p>
+</dd>
+<dt id="func_Write_File">Write_File</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Snapshot_Write_File</strong>(
+    <span class="prefix">lucy_</span>Snapshot *<strong>self</strong>,
+    <span class="prefix">lucy_</span><a 
href="../../Lucy/Store/Folder.html">Folder</a> *<strong>folder</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/String.html">String</a> *<strong>path</strong>
+);
+</code></pre>
+<p>Write a snapshot file.  The caller must lock the index while this
+operation takes place, and the operation will fail if the snapshot file
+already exists.</p>
+<dl>
+<dt>folder</dt>
+<dd><p>A Folder.</p>
+</dd>
+<dt>path</dt>
+<dd><p>The path of the file to write.  If NULL, a file
+name will be chosen which supersedes the latest snapshot file in the
+index folder.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Set_Path">Set_Path</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Snapshot_Set_Path</strong>(
+    <span class="prefix">lucy_</span>Snapshot *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a 
href="../../Clownfish/String.html">String</a> *<strong>path</strong>
+);
+</code></pre>
+<p>Set the path to the file that the Snapshot object serves as a proxy
+for.</p>
+</dd>
+<dt id="func_Get_Path">Get_Path</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a 
href="../../Clownfish/String.html">String</a>*
+<span class="prefix">lucy_</span><strong>Snapshot_Get_Path</strong>(
+    <span class="prefix">lucy_</span>Snapshot *<strong>self</strong>
+);
+</code></pre>
+<p>Get the path to the snapshot file.  Initially NULL; updated
+by <a href="../../Lucy/Index/Snapshot.html#func_Read_File">Read_File()</a>, <a 
href="../../Lucy/Index/Snapshot.html#func_Write_File">Write_File()</a>, and <a 
href="../../Lucy/Index/Snapshot.html#func_Set_Path">Set_Path()</a>.</p>
+</dd>
+<dt id="func_Destroy">Destroy</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Snapshot_Destroy</strong>(
+    <span class="prefix">lucy_</span>Snapshot *<strong>self</strong>
+);
+</code></pre>
+<p>Generic destructor.  Frees the struct itself but not any complex
+member elements.</p>
+</dd>
+</dl>
+<h3>Inheritance</h3>
+<p>Lucy::Index::Snapshot is a <a 
href="../../Clownfish/Obj.html">Clownfish::Obj</a>.</p>
+</div>

Added: lucy/site/trunk/content/docs/c/Lucy/Object/BitVector.mdtext
URL: 
http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/c/Lucy/Object/BitVector.mdtext?rev=1737682&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/c/Lucy/Object/BitVector.mdtext (added)
+++ lucy/site/trunk/content/docs/c/Lucy/Object/BitVector.mdtext Mon Apr  4 
12:55:10 2016
@@ -0,0 +1,287 @@
+Title: Lucy::Object::BitVector – C API Documentation
+
+<div class="c-api">
+<h2>Lucy::Object::BitVector</h2>
+<table>
+<tr>
+<td class="label">parcel</td>
+<td><a href="../../lucy.html">Lucy</a></td>
+</tr>
+<tr>
+<td class="label">class variable</td>
+<td><code><span class="prefix">LUCY_</span>BITVECTOR</code></td>
+</tr>
+<tr>
+<td class="label">struct symbol</td>
+<td><code><span class="prefix">lucy_</span>BitVector</code></td>
+</tr>
+<tr>
+<td class="label">class nickname</td>
+<td><code><span class="prefix">lucy_</span>BitVec</code></td>
+</tr>
+<tr>
+<td class="label">header file</td>
+<td><code>Lucy/Object/BitVector.h</code></td>
+</tr>
+</table>
+<h3>Name</h3>
+<p>Lucy::Object::BitVector – An array of bits.</p>
+<h3>Description</h3>
+<p>BitVector is a growable array of bits.  All bits are initially zero.</p>
+<h3>Functions</h3>
+<dl>
+<dt id="func_new">new</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>BitVector* <span 
class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>BitVec_new</strong>(
+    uint32_t <strong>capacity</strong>
+);
+</code></pre>
+<p>Create a new BitVector.</p>
+<dl>
+<dt>capacity</dt>
+<dd><p>The number of bits that the initial array should be
+able to hold.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_init">init</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>BitVector*
+<span class="prefix">lucy_</span><strong>BitVec_init</strong>(
+    <span class="prefix">lucy_</span>BitVector *<strong>self</strong>,
+    uint32_t <strong>capacity</strong>
+);
+</code></pre>
+<p>Initialize a BitVector.</p>
+<dl>
+<dt>capacity</dt>
+<dd><p>The number of bits that the initial array should be
+able to hold.</p>
+</dd>
+</dl>
+</dd>
+</dl>
+<h3>Methods</h3>
+<dl>
+<dt id="func_Get">Get</dt>
+<dd>
+<pre><code>bool
+<span class="prefix">lucy_</span><strong>BitVec_Get</strong>(
+    <span class="prefix">lucy_</span>BitVector *<strong>self</strong>,
+    uint32_t <strong>tick</strong>
+);
+</code></pre>
+<p>Return true if the bit at <code>tick</code> has been set, false if it
+hasn’t (regardless of whether it lies within the bounds of the
+object’s capacity).</p>
+<dl>
+<dt>tick</dt>
+<dd><p>The requested bit.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Set">Set</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>BitVec_Set</strong>(
+    <span class="prefix">lucy_</span>BitVector *<strong>self</strong>,
+    uint32_t <strong>tick</strong>
+);
+</code></pre>
+<p>Set the bit at <code>tick</code> to 1.</p>
+<dl>
+<dt>tick</dt>
+<dd><p>The bit to be set.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Next_Hit">Next_Hit</dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">lucy_</span><strong>BitVec_Next_Hit</strong>(
+    <span class="prefix">lucy_</span>BitVector *<strong>self</strong>,
+    uint32_t <strong>tick</strong>
+);
+</code></pre>
+<p>Returns the next set bit equal to or greater than <code>tick</code>,
+or -1 if no such bit exists.</p>
+</dd>
+<dt id="func_Clear">Clear</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>BitVec_Clear</strong>(
+    <span class="prefix">lucy_</span>BitVector *<strong>self</strong>,
+    uint32_t <strong>tick</strong>
+);
+</code></pre>
+<p>Clear the indicated bit. (i.e. set it to 0).</p>
+<dl>
+<dt>tick</dt>
+<dd><p>The bit to be cleared.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Clear_All">Clear_All</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>BitVec_Clear_All</strong>(
+    <span class="prefix">lucy_</span>BitVector *<strong>self</strong>
+);
+</code></pre>
+<p>Clear all bits.</p>
+</dd>
+<dt id="func_Grow">Grow</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>BitVec_Grow</strong>(
+    <span class="prefix">lucy_</span>BitVector *<strong>self</strong>,
+    uint32_t <strong>capacity</strong>
+);
+</code></pre>
+<p>If the BitVector does not already have enough room to hold the
+indicated number of bits, allocate more memory so that it can.</p>
+<dl>
+<dt>capacity</dt>
+<dd><p>Least number of bits the BitVector should accomodate.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_And">And</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>BitVec_And</strong>(
+    <span class="prefix">lucy_</span>BitVector *<strong>self</strong>,
+    const <span class="prefix">lucy_</span>BitVector *<strong>other</strong>
+);
+</code></pre>
+<p>Modify the BitVector so that only bits which remain set are those
+which 1) were already set in this BitVector, and 2) were also set in
+the other BitVector.</p>
+<dl>
+<dt>other</dt>
+<dd><p>Another BitVector.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Or">Or</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>BitVec_Or</strong>(
+    <span class="prefix">lucy_</span>BitVector *<strong>self</strong>,
+    const <span class="prefix">lucy_</span>BitVector *<strong>other</strong>
+);
+</code></pre>
+<p>Modify the BitVector, setting all bits which are set in the other
+BitVector if they were not already set.</p>
+<dl>
+<dt>other</dt>
+<dd><p>Another BitVector.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Xor">Xor</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>BitVec_Xor</strong>(
+    <span class="prefix">lucy_</span>BitVector *<strong>self</strong>,
+    const <span class="prefix">lucy_</span>BitVector *<strong>other</strong>
+);
+</code></pre>
+<p>Modify the BitVector, performing an XOR operation against the other.</p>
+<dl>
+<dt>other</dt>
+<dd><p>Another BitVector.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_And_Not">And_Not</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>BitVec_And_Not</strong>(
+    <span class="prefix">lucy_</span>BitVector *<strong>self</strong>,
+    const <span class="prefix">lucy_</span>BitVector *<strong>other</strong>
+);
+</code></pre>
+<p>Modify the BitVector, clearing all bits which are set in the other.</p>
+<dl>
+<dt>other</dt>
+<dd><p>Another BitVector.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Flip">Flip</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>BitVec_Flip</strong>(
+    <span class="prefix">lucy_</span>BitVector *<strong>self</strong>,
+    uint32_t <strong>tick</strong>
+);
+</code></pre>
+<p>Invert the value of a bit.</p>
+<dl>
+<dt>tick</dt>
+<dd><p>The bit to invert.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Flip_Block">Flip_Block</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>BitVec_Flip_Block</strong>(
+    <span class="prefix">lucy_</span>BitVector *<strong>self</strong>,
+    uint32_t <strong>offset</strong>,
+    uint32_t <strong>length</strong>
+);
+</code></pre>
+<p>Invert each bit within a contiguous block.</p>
+<dl>
+<dt>offset</dt>
+<dd><p>Lower bound.</p>
+</dd>
+<dt>length</dt>
+<dd><p>The number of bits to flip.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Count">Count</dt>
+<dd>
+<pre><code>uint32_t
+<span class="prefix">lucy_</span><strong>BitVec_Count</strong>(
+    <span class="prefix">lucy_</span>BitVector *<strong>self</strong>
+);
+</code></pre>
+<p>Return a count of the number of set bits.</p>
+</dd>
+<dt id="func_To_Array">To_Array</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a 
href="../../Lucy/Object/I32Array.html">I32Array</a>* <span class="comment">// 
incremented</span>
+<span class="prefix">lucy_</span><strong>BitVec_To_Array</strong>(
+    <span class="prefix">lucy_</span>BitVector *<strong>self</strong>
+);
+</code></pre>
+<p>Return an array where each element represents a set bit.</p>
+</dd>
+<dt id="func_Destroy">Destroy</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>BitVec_Destroy</strong>(
+    <span class="prefix">lucy_</span>BitVector *<strong>self</strong>
+);
+</code></pre>
+<p>Generic destructor.  Frees the struct itself but not any complex
+member elements.</p>
+</dd>
+<dt id="func_Clone">Clone</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>BitVector* <span 
class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>BitVec_Clone</strong>(
+    <span class="prefix">lucy_</span>BitVector *<strong>self</strong>
+);
+</code></pre>
+<p>Return a clone of the object.</p>
+</dd>
+</dl>
+<h3>Inheritance</h3>
+<p>Lucy::Object::BitVector is a <a 
href="../../Clownfish/Obj.html">Clownfish::Obj</a>.</p>
+</div>


Reply via email to