<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (version 1.7.0_80) on Tue Aug 30 09:57:34 EDT 2016 -->
<title>L-Index</title>
<meta name="date" content="2016-08-30">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="L-Index";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../overview-summary.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li>Use</li>
<li><a href="../overview-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li class="navBarCell1Rev">Index</li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-11.html">Prev Letter</a></li>
<li><a href="index-13.html">Next Letter</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-filesindex-12.html" target="_top">Frames</a></li>
<li><a href="index-12.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="contentContainer"><a href="index-1.html">A</a>&nbsp;<a href="index-2.html">B</a>&nbsp;<a href="index-3.html">C</a>&nbsp;<a href="index-4.html">D</a>&nbsp;<a href="index-5.html">E</a>&nbsp;<a href="index-6.html">F</a>&nbsp;<a href="index-7.html">G</a>&nbsp;<a href="index-8.html">H</a>&nbsp;<a href="index-9.html">I</a>&nbsp;<a href="index-10.html">J</a>&nbsp;<a href="index-11.html">K</a>&nbsp;<a href="index-12.html">L</a>&nbsp;<a href="index-13.html">M</a>&nbsp;<a href="index-14.html">N</a>&nbsp;<a href="index-15.html">O</a>&nbsp;<a href="index-16.html">P</a>&nbsp;<a href="index-17.html">Q</a>&nbsp;<a href="index-18.html">R</a>&nbsp;<a href="index-19.html">S</a>&nbsp;<a href="index-20.html">T</a>&nbsp;<a href="index-21.html">U</a>&nbsp;<a href="index-22.html">V</a>&nbsp;<a href="index-23.html">W</a>&nbsp;<a name="_L_">
<!--   -->
</a>
<h2 class="title">L</h2>
<dl>
<dt><span class="strong"><a href="../org/apache/pirk/responder/wideskies/storm/OutputBolt.html#latch">latch</a></span> - Static variable in class org.apache.pirk.responder.wideskies.storm.<a href="../org/apache/pirk/responder/wideskies/storm/OutputBolt.html" title="class in org.apache.pirk.responder.wideskies.storm">OutputBolt</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../org/apache/pirk/responder/wideskies/storm/StormConstants.html#LIMIT_HITS_PER_SEL_KEY">LIMIT_HITS_PER_SEL_KEY</a></span> - Static variable in class org.apache.pirk.responder.wideskies.storm.<a href="../org/apache/pirk/responder/wideskies/storm/StormConstants.html" title="class in org.apache.pirk.responder.wideskies.storm">StormConstants</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../org/apache/pirk/responder/wideskies/ResponderProps.html#LIMITHITSPERSELECTOR">LIMITHITSPERSELECTOR</a></span> - Static variable in class org.apache.pirk.responder.wideskies.<a href="../org/apache/pirk/responder/wideskies/ResponderProps.html" title="class in org.apache.pirk.responder.wideskies">ResponderProps</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../org/apache/pirk/responder/wideskies/common/ComputeEncryptedRow.html#loadCacheFromHDFS(org.apache.hadoop.fs.FileSystem,%20java.lang.String,%20org.apache.pirk.query.wideskies.Query)">loadCacheFromHDFS(FileSystem, String, Query)</a></span> - Static method in class org.apache.pirk.responder.wideskies.common.<a href="../org/apache/pirk/responder/wideskies/common/ComputeEncryptedRow.html" title="class in org.apache.pirk.responder.wideskies.common">ComputeEncryptedRow</a></dt>
<dd>
<div class="block">Populate the cache based on the pre-generated exp table in hdfs</div>
</dd>
<dt><a href="../org/apache/pirk/schema/data/LoadDataSchemaTest.html" title="class in org.apache.pirk.schema.data"><span class="strong">LoadDataSchemaTest</span></a> - Class in <a href="../org/apache/pirk/schema/data/package-summary.html">org.apache.pirk.schema.data</a></dt>
<dd>
<div class="block">Test suite for LoadDataSchema and DataSchema</div>
</dd>
<dt><span class="strong"><a href="../org/apache/pirk/schema/data/LoadDataSchemaTest.html#LoadDataSchemaTest()">LoadDataSchemaTest()</a></span> - Constructor for class org.apache.pirk.schema.data.<a href="../org/apache/pirk/schema/data/LoadDataSchemaTest.html" title="class in org.apache.pirk.schema.data">LoadDataSchemaTest</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../org/apache/pirk/utils/SystemConfiguration.html#loadPropsFromDir(java.lang.String)">loadPropsFromDir(String)</a></span> - Static method in class org.apache.pirk.utils.<a href="../org/apache/pirk/utils/SystemConfiguration.html" title="class in org.apache.pirk.utils">SystemConfiguration</a></dt>
<dd>
<div class="block">Loads the properties from local properties file in the specified directory.</div>
</dd>
<dt><span class="strong"><a href="../org/apache/pirk/utils/SystemConfiguration.html#loadPropsFromFile(java.io.File)">loadPropsFromFile(File)</a></span> - Static method in class org.apache.pirk.utils.<a href="../org/apache/pirk/utils/SystemConfiguration.html" title="class in org.apache.pirk.utils">SystemConfiguration</a></dt>
<dd>
<div class="block">Loads the properties from the specified file.</div>
</dd>
<dt><span class="strong"><a href="../org/apache/pirk/utils/SystemConfiguration.html#loadPropsFromResource(java.lang.String)">loadPropsFromResource(String)</a></span> - Static method in class org.apache.pirk.utils.<a href="../org/apache/pirk/utils/SystemConfiguration.html" title="class in org.apache.pirk.utils">SystemConfiguration</a></dt>
<dd>
<div class="block">Loads the properties from the specified resource on the current classloader.</div>
</dd>
<dt><a href="../org/apache/pirk/schema/query/LoadQuerySchemaTest.html" title="class in org.apache.pirk.schema.query"><span class="strong">LoadQuerySchemaTest</span></a> - Class in <a href="../org/apache/pirk/schema/query/package-summary.html">org.apache.pirk.schema.query</a></dt>
<dd>
<div class="block">Test suite for LoadQuerySchema and QuerySchema</div>
</dd>
<dt><span class="strong"><a href="../org/apache/pirk/schema/query/LoadQuerySchemaTest.html#LoadQuerySchemaTest()">LoadQuerySchemaTest()</a></span> - Constructor for class org.apache.pirk.schema.query.<a href="../org/apache/pirk/schema/query/LoadQuerySchemaTest.html" title="class in org.apache.pirk.schema.query">LoadQuerySchemaTest</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../org/apache/pirk/schema/data/DataSchemaLoader.html#loadSchema(java.io.InputStream)">loadSchema(InputStream)</a></span> - Method in class org.apache.pirk.schema.data.<a href="../org/apache/pirk/schema/data/DataSchemaLoader.html" title="class in org.apache.pirk.schema.data">DataSchemaLoader</a></dt>
<dd>
<div class="block">Returns the data schema as defined in XML format on the given stream.</div>
</dd>
<dt><span class="strong"><a href="../org/apache/pirk/schema/query/QuerySchemaLoader.html#loadSchema(java.io.InputStream)">loadSchema(InputStream)</a></span> - Method in class org.apache.pirk.schema.query.<a href="../org/apache/pirk/schema/query/QuerySchemaLoader.html" title="class in org.apache.pirk.schema.query">QuerySchemaLoader</a></dt>
<dd>
<div class="block">Returns the query schema as defined in XML format on the given stream.</div>
</dd>
<dt><a href="../org/apache/pirk/serialization/LocalFileSystemStore.html" title="class in org.apache.pirk.serialization"><span class="strong">LocalFileSystemStore</span></a> - Class in <a href="../org/apache/pirk/serialization/package-summary.html">org.apache.pirk.serialization</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../org/apache/pirk/serialization/LocalFileSystemStore.html#LocalFileSystemStore()">LocalFileSystemStore()</a></span> - Constructor for class org.apache.pirk.serialization.<a href="../org/apache/pirk/serialization/LocalFileSystemStore.html" title="class in org.apache.pirk.serialization">LocalFileSystemStore</a></dt>
<dd>
<div class="block">Creates a new storage service on the local file system using default Java serialization.</div>
</dd>
<dt><span class="strong"><a href="../org/apache/pirk/serialization/LocalFileSystemStore.html#LocalFileSystemStore(org.apache.pirk.serialization.SerializationService)">LocalFileSystemStore(SerializationService)</a></span> - Constructor for class org.apache.pirk.serialization.<a href="../org/apache/pirk/serialization/LocalFileSystemStore.html" title="class in org.apache.pirk.serialization">LocalFileSystemStore</a></dt>
<dd>
<div class="block">Creates a new storage service on the local file system using the given serializer.</div>
</dd>
<dt><span class="strong"><a href="../org/apache/pirk/test/utils/Inputs.html#LOCALFS_QUERY_FILES">LOCALFS_QUERY_FILES</a></span> - Static variable in class org.apache.pirk.test.utils.<a href="../org/apache/pirk/test/utils/Inputs.html" title="class in org.apache.pirk.test.utils">Inputs</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../org/apache/pirk/schema/data/partitioner/PrimitiveTypePartitioner.html#LONG">LONG</a></span> - Static variable in class org.apache.pirk.schema.data.partitioner.<a href="../org/apache/pirk/schema/data/partitioner/PrimitiveTypePartitioner.html" title="class in org.apache.pirk.schema.data.partitioner">PrimitiveTypePartitioner</a></dt>
<dd>&nbsp;</dd>
</dl>
<a href="index-1.html">A</a>&nbsp;<a href="index-2.html">B</a>&nbsp;<a href="index-3.html">C</a>&nbsp;<a href="index-4.html">D</a>&nbsp;<a href="index-5.html">E</a>&nbsp;<a href="index-6.html">F</a>&nbsp;<a href="index-7.html">G</a>&nbsp;<a href="index-8.html">H</a>&nbsp;<a href="index-9.html">I</a>&nbsp;<a href="index-10.html">J</a>&nbsp;<a href="index-11.html">K</a>&nbsp;<a href="index-12.html">L</a>&nbsp;<a href="index-13.html">M</a>&nbsp;<a href="index-14.html">N</a>&nbsp;<a href="index-15.html">O</a>&nbsp;<a href="index-16.html">P</a>&nbsp;<a href="index-17.html">Q</a>&nbsp;<a href="index-18.html">R</a>&nbsp;<a href="index-19.html">S</a>&nbsp;<a href="index-20.html">T</a>&nbsp;<a href="index-21.html">U</a>&nbsp;<a href="index-22.html">V</a>&nbsp;<a href="index-23.html">W</a>&nbsp;</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../overview-summary.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li>Use</li>
<li><a href="../overview-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li class="navBarCell1Rev">Index</li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-11.html">Prev Letter</a></li>
<li><a href="index-13.html">Next Letter</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-filesindex-12.html" target="_top">Frames</a></li>
<li><a href="index-12.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
