blob: 14af2644ae3ec358cdd816bafd50e5cde740036d [file] [log] [blame]
<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Class BlockPackedWriter
| Apache Lucene.NET 4.8.0-beta00013 Documentation </title>
<meta name="viewport" content="width=device-width">
<meta name="title" content="Class BlockPackedWriter
| Apache Lucene.NET 4.8.0-beta00013 Documentation ">
<meta name="generator" content="docfx 2.56.2.0">
<link rel="shortcut icon" href="https://lucenenet.apache.org/docs/4.8.0-beta00009/logo/favicon.ico">
<link rel="stylesheet" href="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/docfx.vendor.css">
<link rel="stylesheet" href="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/docfx.css">
<link rel="stylesheet" href="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/main.css">
<meta property="docfx:navrel" content="toc.html">
<meta property="docfx:tocrel" content="core/toc.html">
<meta property="docfx:rel" content="https://lucenenet.apache.org/docs/4.8.0-beta00009/">
</head>
<body data-spy="scroll" data-target="#affix" data-offset="120">
<span id="forkongithub"><a href="https://github.com/apache/lucenenet" target="_blank">Fork me on GitHub</a></span>
<div id="wrapper">
<header>
<nav id="autocollapse" class="navbar ng-scope" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/">
<img id="logo" class="svg" src="https://lucenenet.apache.org/docs/4.8.0-beta00009/logo/lucene-net-color.png" alt="">
</a>
</div>
<div class="collapse navbar-collapse" id="navbar">
<form class="navbar-form navbar-right" role="search" id="search">
<div class="form-group">
<input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
</div>
</form>
</div>
</div>
</nav>
<div class="subnav navbar navbar-default">
<div class="container hide-when-search">
<ul class="level0 breadcrumb">
<li>
<a href="https://lucenenet.apache.org/docs/4.8.0-beta00009/">API</a>
<span id="breadcrumb">
<ul class="breadcrumb">
<li></li>
</ul>
</span>
</li>
</ul>
</div>
</div>
</header>
<div class="container body-content">
<div id="search-results">
<div class="search-list"></div>
<div class="sr-items">
<p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
</div>
<ul id="pagination"></ul>
</div>
</div>
<div role="main" class="container body-content hide-when-search">
<div class="sidenav hide-when-search">
<a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
<div class="sidetoggle collapse" id="sidetoggle">
<div id="sidetoc"></div>
</div>
</div>
<div class="article row grid-right">
<div class="col-md-10">
<article class="content wrap" id="_content" data-uid="Lucene.Net.Util.Packed.BlockPackedWriter">
<h1 id="Lucene_Net_Util_Packed_BlockPackedWriter" data-uid="Lucene.Net.Util.Packed.BlockPackedWriter" class="text-break">Class BlockPackedWriter
</h1>
<div class="markdown level0 summary"><p>A writer for large sequences of longs.
<p>
The sequence is divided into fixed-size blocks and for each block, the
difference between each value and the minimum value of the block is encoded
using as few bits as possible. Memory usage of this class is proportional to
the block size. Each block has an overhead between 1 and 10 bytes to store
the minimum value and the number of bits per value of the block.
<p>
Format:
<ul><li>&lt;BLock&gt;<sup>BlockCount</sup></li><li>BlockCount: ⌈ ValueCount / BlockSize ⌉</li><li>Block: &lt;Header, (Ints)&gt;</li><li>Header: &lt;Token, (MinValue)&gt;</li><li>Token: a byte (<a class="xref" href="Lucene.Net.Store.DataOutput.html#Lucene_Net_Store_DataOutput_WriteByte_System_Byte_">WriteByte(Byte)</a>), first 7 bits are the
number of bits per value (<code>bitsPerValue</code>). If the 8th bit is 1,
then MinValue (see next) is <code>0</code>, otherwise MinValue and needs to
be decoded</li><li>MinValue: a
<a href="https://developers.google.com/protocol-buffers/docs/encoding#types">zigzag-encoded</a>
variable-length <span class="xref">System.Int64</span> (<a class="xref" href="Lucene.Net.Store.DataOutput.html#Lucene_Net_Store_DataOutput_WriteVInt64_System_Int64_">WriteVInt64(Int64)</a>) whose value
should be added to every int from the block to restore the original
values</li><li>Ints: If the number of bits per value is <code>0</code>, then there is
nothing to decode and all ints are equal to MinValue. Otherwise: BlockSize
packed ints (<a class="xref" href="Lucene.Net.Util.Packed.PackedInt32s.html">PackedInt32s</a>) encoded on exactly <code>bitsPerValue</code>
bits per value. They are the subtraction of the original values and
MinValue</li></ul>
<p>
<div class="lucene-block lucene-internal">This is a Lucene.NET INTERNAL API, use at your own risk</div></div>
<div class="markdown level0 conceptual"></div>
<div class="inheritance">
<h5>Inheritance</h5>
<div class="level0"><span class="xref">System.Object</span></div>
<div class="level1"><a class="xref" href="Lucene.Net.Util.Packed.AbstractBlockPackedWriter.html">AbstractBlockPackedWriter</a></div>
<div class="level2"><span class="xref">BlockPackedWriter</span></div>
</div>
<div class="inheritedMembers">
<h5>Inherited Members</h5>
<div>
<a class="xref" href="Lucene.Net.Util.Packed.AbstractBlockPackedWriter.html#Lucene_Net_Util_Packed_AbstractBlockPackedWriter_m_out">AbstractBlockPackedWriter.m_out</a>
</div>
<div>
<a class="xref" href="Lucene.Net.Util.Packed.AbstractBlockPackedWriter.html#Lucene_Net_Util_Packed_AbstractBlockPackedWriter_m_values">AbstractBlockPackedWriter.m_values</a>
</div>
<div>
<a class="xref" href="Lucene.Net.Util.Packed.AbstractBlockPackedWriter.html#Lucene_Net_Util_Packed_AbstractBlockPackedWriter_m_blocks">AbstractBlockPackedWriter.m_blocks</a>
</div>
<div>
<a class="xref" href="Lucene.Net.Util.Packed.AbstractBlockPackedWriter.html#Lucene_Net_Util_Packed_AbstractBlockPackedWriter_m_off">AbstractBlockPackedWriter.m_off</a>
</div>
<div>
<a class="xref" href="Lucene.Net.Util.Packed.AbstractBlockPackedWriter.html#Lucene_Net_Util_Packed_AbstractBlockPackedWriter_m_ord">AbstractBlockPackedWriter.m_ord</a>
</div>
<div>
<a class="xref" href="Lucene.Net.Util.Packed.AbstractBlockPackedWriter.html#Lucene_Net_Util_Packed_AbstractBlockPackedWriter_m_finished">AbstractBlockPackedWriter.m_finished</a>
</div>
<div>
<a class="xref" href="Lucene.Net.Util.Packed.AbstractBlockPackedWriter.html#Lucene_Net_Util_Packed_AbstractBlockPackedWriter_Reset_Lucene_Net_Store_DataOutput_">AbstractBlockPackedWriter.Reset(DataOutput)</a>
</div>
<div>
<a class="xref" href="Lucene.Net.Util.Packed.AbstractBlockPackedWriter.html#Lucene_Net_Util_Packed_AbstractBlockPackedWriter_Add_System_Int64_">AbstractBlockPackedWriter.Add(Int64)</a>
</div>
<div>
<a class="xref" href="Lucene.Net.Util.Packed.AbstractBlockPackedWriter.html#Lucene_Net_Util_Packed_AbstractBlockPackedWriter_Finish">AbstractBlockPackedWriter.Finish()</a>
</div>
<div>
<a class="xref" href="Lucene.Net.Util.Packed.AbstractBlockPackedWriter.html#Lucene_Net_Util_Packed_AbstractBlockPackedWriter_Ord">AbstractBlockPackedWriter.Ord</a>
</div>
<div>
<a class="xref" href="Lucene.Net.Util.Packed.AbstractBlockPackedWriter.html#Lucene_Net_Util_Packed_AbstractBlockPackedWriter_WriteValues_System_Int32_">AbstractBlockPackedWriter.WriteValues(Int32)</a>
</div>
<div>
<span class="xref">System.Object.Equals(System.Object)</span>
</div>
<div>
<span class="xref">System.Object.Equals(System.Object, System.Object)</span>
</div>
<div>
<span class="xref">System.Object.GetHashCode()</span>
</div>
<div>
<span class="xref">System.Object.GetType()</span>
</div>
<div>
<span class="xref">System.Object.MemberwiseClone()</span>
</div>
<div>
<span class="xref">System.Object.ReferenceEquals(System.Object, System.Object)</span>
</div>
<div>
<span class="xref">System.Object.ToString()</span>
</div>
</div>
<h6><strong>Namespace</strong>: <a class="xref" href="Lucene.Net.Util.Packed.html">Lucene.Net.Util.Packed</a></h6>
<h6><strong>Assembly</strong>: Lucene.Net.dll</h6>
<h5 id="Lucene_Net_Util_Packed_BlockPackedWriter_syntax">Syntax</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public sealed class BlockPackedWriter : AbstractBlockPackedWriter</code></pre>
</div>
<h3 id="constructors">Constructors
</h3>
<span class="small pull-right mobile-hide">
<span class="divider">|</span>
<a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Util_Packed_BlockPackedWriter__ctor_Lucene_Net_Store_DataOutput_System_Int32_.md&amp;value=---%0Auid%3A%20Lucene.Net.Util.Packed.BlockPackedWriter.%23ctor(Lucene.Net.Store.DataOutput%2CSystem.Int32)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
</span>
<span class="small pull-right mobile-hide">
<a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net/Util/Packed/BlockPackedWriter.cs/#L66">View Source</a>
</span>
<a id="Lucene_Net_Util_Packed_BlockPackedWriter__ctor_" data-uid="Lucene.Net.Util.Packed.BlockPackedWriter.#ctor*"></a>
<h4 id="Lucene_Net_Util_Packed_BlockPackedWriter__ctor_Lucene_Net_Store_DataOutput_System_Int32_" data-uid="Lucene.Net.Util.Packed.BlockPackedWriter.#ctor(Lucene.Net.Store.DataOutput,System.Int32)">BlockPackedWriter(DataOutput, Int32)</h4>
<div class="markdown level1 summary"><p>Sole constructor. </p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public BlockPackedWriter(DataOutput out, int blockSize)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="Lucene.Net.Store.DataOutput.html">DataOutput</a></td>
<td><span class="parametername">out</span></td>
<td></td>
</tr>
<tr>
<td><span class="xref">System.Int32</span></td>
<td><span class="parametername">blockSize</span></td>
<td><p>the number of values of a single block, must be a power of 2 </p>
</td>
</tr>
</tbody>
</table>
<h3 id="methods">Methods
</h3>
<span class="small pull-right mobile-hide">
<span class="divider">|</span>
<a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Util_Packed_BlockPackedWriter_Flush.md&amp;value=---%0Auid%3A%20Lucene.Net.Util.Packed.BlockPackedWriter.Flush%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
</span>
<span class="small pull-right mobile-hide">
<a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net/Util/Packed/BlockPackedWriter.cs/#L71">View Source</a>
</span>
<a id="Lucene_Net_Util_Packed_BlockPackedWriter_Flush_" data-uid="Lucene.Net.Util.Packed.BlockPackedWriter.Flush*"></a>
<h4 id="Lucene_Net_Util_Packed_BlockPackedWriter_Flush" data-uid="Lucene.Net.Util.Packed.BlockPackedWriter.Flush">Flush()</h4>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">protected override void Flush()</code></pre>
</div>
<h5 class="overrides">Overrides</h5>
<div><a class="xref" href="Lucene.Net.Util.Packed.AbstractBlockPackedWriter.html#Lucene_Net_Util_Packed_AbstractBlockPackedWriter_Flush">AbstractBlockPackedWriter.Flush()</a></div>
<h3 id="seealso">See Also</h3>
<div class="seealso">
<div><a class="xref" href="Lucene.Net.Util.Packed.BlockPackedReaderIterator.html">BlockPackedReaderIterator</a></div>
<div><a class="xref" href="Lucene.Net.Util.Packed.BlockPackedReader.html">BlockPackedReader</a></div>
</div>
</article>
</div>
<div class="hidden-sm col-md-2" role="complementary">
<div class="sideaffix">
<div class="contribution">
<ul class="nav">
<li>
<a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Util_Packed_BlockPackedWriter.md&amp;value=---%0Auid%3A%20Lucene.Net.Util.Packed.BlockPackedWriter%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A" class="contribution-link">Improve this Doc</a>
</li>
<li>
<a href="https://github.com/apache/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net/Util/Packed/BlockPackedWriter.cs/#L61" class="contribution-link">View Source</a>
</li>
</ul>
</div>
<nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
<!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
</nav>
</div>
</div>
</div>
</div>
<footer>
<div class="grad-bottom"></div>
<div class="footer">
<div class="container">
<span class="pull-right">
<a href="#top">Back to top</a>
</span>
Copyright © 2020 The Apache Software Foundation, Licensed under the <a href='http://www.apache.org/licenses/LICENSE-2.0' target='_blank'>Apache License, Version 2.0</a><br> <small>Apache Lucene.Net, Lucene.Net, Apache, the Apache feather logo, and the Apache Lucene.Net project logo are trademarks of The Apache Software Foundation. <br>All other marks mentioned may be trademarks or registered trademarks of their respective owners.</small>
</div>
</div>
</footer>
</div>
<script type="text/javascript" src="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/docfx.vendor.js"></script>
<script type="text/javascript" src="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/docfx.js"></script>
<script type="text/javascript" src="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/main.js"></script>
</body>
</html>