📄 rtree.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.4.2_04) on Wed Sep 08 18:10:24 IST 2004 -->
<TITLE>
RTree
</TITLE>
<META NAME="keywords" CONTENT="rtree.RTree class">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
parent.document.title="RTree";
}
</SCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A><A HREF="#skip-navbar_top" title="Skip navigation links"></A><TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A><TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/RTree.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../rtree/Rect.html" title="class in rtree"><B>PREV CLASS</B></A>
<A HREF="../rtree/RTree.Header.html" title="class in rtree"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../index.html" target="_top"><B>FRAMES</B></A>
<A HREF="RTree.html" target="_top"><B>NO FRAMES</B></A>
<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY: <A HREF="#nested_class_summary">NESTED</A> | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A><!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
rtree</FONT>
<BR>
Class RTree</H2>
<PRE>
java.lang.Object
<IMG SRC="../resources/inherit.gif" ALT="extended by"><B>rtree.RTree</B>
</PRE>
<DL>
<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../rtree/seeded/SdTree.html" title="class in rtree.seeded">SdTree</A></DD>
</DL>
<HR>
<DL>
<DT>public class <B>RTree</B><DT>extends java.lang.Object</DL>
<P>
<p><b>1:</b>Call <code>flush</code> after single or multiple inserts. In affect before the application shuts down, the flush method flushes all the rtrees. <p><b>2:</b>Do not run more than one instance of this application. The package cannot handle more than one instance of the application as all the locking is done in the code itself(Monitors) and not on the hard-disk file. <p><b>3:</b>The file name (of the rtree) is case insensitive. <p><b>4:</b>The package is thread proof, i.e you can run as many threads as you want, not worrying about concurrent updations. The package will handle the situation of concurrent reads and writes. Again, it can take care of threads of only one process(Application) and not for more than one process of the program. <p><b>5:</b>For immediate effects of tree writes, give the thread that needs to write to the file a high priority. This will further speed up tree writes. <p><b>6:</b>Give messages like "Updating, please wait..." to the user when calling any of the methods that modifies the tree as the thread may have to wait on a lock variable. <p><b>7:</b>The package maintains a queue of all threads that need to wait on some lock. The sequence of excecution of the threads is dependent on that queue. All the actions are fired in the order in which they were received. <br><b>In short the tree is perfectly concurrent.</b> <p><b>8:</b>For developers: Always obtain a lock from the <code>lockRead</code> or <code>lockWrite</code> method before going into a <code>public</code> method of the <code>RTree</code> class. Unlock by calling the <code>unlock</code> method. See any existing method to understand the mechanism. <p><b>9:</b>To adjust the cache buffer size, see the <code>Node</code> class documentation.
<P>
<P>
<DL>
<DT><B>Author:</B></DT> <DD>Prachuryya Barua</DD></DL>
<HR>
<P>
<!-- ======== NESTED CLASS SUMMARY ======== -->
<A NAME="nested_class_summary"><!-- --></A><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=2><FONT SIZE="+2">
<B>Nested Class Summary</B></FONT></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>(package private) class</CODE></FONT></TD>
<TD><CODE><B><A HREF="../rtree/RTree.Header.html" title="class in rtree">RTree.Header</A></B></CODE>
<BR>
Inner class for the fileList vector - A List of files</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected class</CODE></FONT></TD>
<TD><CODE><B><A HREF="../rtree/RTree.Nearest.html" title="class in rtree">RTree.Nearest</A></B></CODE>
<BR>
this class is a wrapper class for a <code>long</code> value.</TD>
</TR>
</TABLE>
<!-- =========== FIELD SUMMARY =========== -->
<A NAME="field_summary"><!-- --></A><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=2><FONT SIZE="+2">
<B>Field Summary</B></FONT></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static <A HREF="../rtree/CachedNodes.html" title="class in rtree">CachedNodes</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../rtree/RTree.html#chdNodes">chdNodes</A></B></CODE>
<BR>
</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected <A HREF="../rtree/FileHdr.html" title="class in rtree">FileHdr</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../rtree/RTree.html#fileHdr">fileHdr</A></B></CODE>
<BR>
</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>(package private) static java.util.Hashtable</CODE></FONT></TD>
<TD><CODE><B><A HREF="../rtree/RTree.html#fileList">fileList</A></B></CODE>
<BR>
</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../rtree/RTree.html#fileName">fileName</A></B></CODE>
<BR>
<b>Caution:</b> The file name (of the rtree) is case insensitive in spite of the fact that this package was developed on a Linux(RH7.0) platform.</TD>
</TR>
</TABLE>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<A NAME="constructor_summary"><!-- --></A><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=2><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../rtree/RTree.html#RTree(java.lang.String)">RTree</A></B>(java.lang.String fileName)</CODE>
<BR>
</TD>
</TR>
</TABLE>
<!-- ========== METHOD SUMMARY =========== -->
<A NAME="method_summary"><!-- --></A><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=2><FONT SIZE="+2">
<B>Method Summary</B></FONT></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected <A HREF="../rtree/Node.html" title="class in rtree">Node</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../rtree/RTree.html#adjustTree(rtree.Node[], long)">adjustTree</A></B>(<A HREF="../rtree/Node.html" title="class in rtree">Node</A>[] nodes, long slotIndex)</CODE>
<BR>
Adjust Tree from <b>Guttman the Great</b>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private <A HREF="../rtree/Node.html" title="class in rtree">Node</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../rtree/RTree.html#chooseLeaf(rtree.Element)">chooseLeaf</A></B>(<A HREF="../rtree/Element.html" title="class in rtree">Element</A> elmt)</CODE>
<BR>
See <b>Guttman the Great</b>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../rtree/RTree.html#condenseTree(rtree.Node, java.util.Stack)">condenseTree</A></B>(<A HREF="../rtree/Node.html" title="class in rtree">Node</A> node, java.util.Stack stack)</CODE>
<BR>
</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE> java.util.Vector</CODE></FONT></TD>
<TD><CODE><B><A HREF="../rtree/RTree.html#containedBy(rtree.Rect)">containedBy</A></B>(<A HREF="../rtree/Rect.html" title="class in rtree">Rect</A> rect)</CODE>
<BR>
Find all index records whose MBR are enclosed by the MBR 'rect'.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE> java.util.Vector</CODE></FONT></TD>
<TD><CODE><B><A HREF="../rtree/RTree.html#contains(rtree.Rect)">contains</A></B>(<A HREF="../rtree/Rect.html" title="class in rtree">Rect</A> rect)</CODE>
<BR>
Find all index records whose MBR enclose/contain the MBR 'rect'.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE> void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../rtree/RTree.html#delete(rtree.LeafElement)">delete</A></B>(<A HREF="../rtree/LeafElement.html" title="class in rtree">LeafElement</A> elmt)</CODE>
<BR>
given the leaf element, this method deletes the element from the tree compairing its Rect and pointer with the similar entries in the tree.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -