📄 zone.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><!--NewPage--><HTML><HEAD><!-- Generated by javadoc on Tue Nov 30 14:11:21 MST 2004 --><TITLE>Swarm 2.2 Reference Guide: Interface Zone</TITLE><LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style"></HEAD><BODY BGCOLOR="white"><!-- ========== START OF NAVBAR ========== --><A NAME="navbar_top"><!-- --></A><TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0"><TR><TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"><A NAME="navbar_top_firstrow"><!-- --></A><TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3"> <TR ALIGN="center" VALIGN="top"> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT ID="NavBarFont1"><B>Overview</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT ID="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="package-tree.html"><FONT ID="NavBarFont1"><B>Tree</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT ID="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-files/index-1.html"><FONT ID="NavBarFont1"><B>Index</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT ID="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="../../swarm/defobj/WarningS.html"><B>PREV CLASS</B></A> <A HREF="../../swarm/defobj/ZoneC.html"><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="Zone.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD></TR><TR><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> SUMMARY: INNER | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD></TR></TABLE><!-- =========== END OF NAVBAR =========== --><HR><!-- ======== START OF CLASS DATA ======== --><H2><FONT SIZE="-1">swarm.defobj</FONT><BR>Interface Zone</H2><DL><DT><B>All Known Subinterfaces:</B> <DD><A HREF="../../swarm/simtoolsgui/GUISwarm.html">GUISwarm</A>, <A HREF="../../swarm/objectbase/Swarm.html">Swarm</A>, <A HREF="../../swarm/activity/SwarmProcess.html">SwarmProcess</A></DD></DL><DL><DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../swarm/defobj/ZoneImpl.html">ZoneImpl</A></DD></DL><HR><DL><DT>public interface <B>Zone</B><DT>extends <A HREF="../../swarm/defobj/Create.html">Create</A>, <A HREF="../../swarm/defobj/CreateS.html">CreateS</A>, <A HREF="../../swarm/defobj/Drop.html">Drop</A>, <A HREF="../../swarm/defobj/DropS.html">DropS</A></DL><P><strong> Modular unit of storage allocation.</strong>.A zone is a source of storage for objects or other allocated data. Whenever a new object is created, a zone must be identified from which the storage for its instance variables, or other internal data, is obtained. A program may establish multiple zones to ensure that objects with similar lifetime or storage needs are allocated together, and in general to optimize allocation and reuse of storage. Zones also maintain a collection of all objects allocated within the zone. This collection, referred to as the "population" of a zone, is a set of all objects which have been created but not yet dropped within the zone. Collections maintained automatically by zones can eliminate a need for other, separately maintained collections in applications that need to keep track of entire populations of objects. Collections of allocated objects can provide support for object query, external object storage, and automatic storage reclamation. A zone may be used to obtain storage not only for objects, but also for raw storage blocks like those provided by the C malloc function. All objects and storage blocks allocated in a zone remain local to that zone. This means that allocation of storage in other zones does not affect the efficiency of storage allocation within a particular zone. For most zone types, individual allocations may still be freed within a zone, and total storage of a zone may grow and shrink according to aggregate needs. In addition to freeing individual allocations, an entire zone may also dropped. Dropping a zone automatically frees all object allocations made within it, including final drop processing on any allocated objects that need it. Release of an entire zone can be much faster than individual release of each object within it. The Zone type is a fully implemented type that provides default storage management support for objects and other allocated storage. It is also a supertype for other zones that implement alternative policies for use in specialized situations. A zone is created using standard create messages just like other objects. This means that a zone must identify another zone from which it obtains its storage. Storage is typically obtained from this other zone in large units called pages, which are then managed by the local zone to support internal allocations. The getZone message of the DefinedObject type returns the zone which provides these base pages. Since a new zone always requires that an existing zone be identified, no new zones could be created unless there were some zones that already existed. Two such zones are predefined as part of the defobj library: globalZone and scratchZone.<P><HR><P><!-- ======== INNER CLASS SUMMARY ======== --><!-- =========== FIELD SUMMARY =========== --><!-- ======== CONSTRUCTOR SUMMARY ======== --><!-- ========== METHOD SUMMARY =========== --><A NAME="method_summary"><!-- --></A><TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%"><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> java.lang.Object</CODE></FONT></TD><TD><CODE><B><A HREF="../../swarm/defobj/Zone.html#allocIVars(java.lang.Class)">allocIVars</A></B>(java.lang.Class aClass)</CODE><BR> allocIVars: allocates the instance variable structure for a new object.</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE> java.lang.Object</CODE></FONT></TD><TD><CODE><B><A HREF="../../swarm/defobj/Zone.html#allocIVarsComponent(java.lang.Class)">allocIVarsComponent</A></B>(java.lang.Class aClass)</CODE><BR> These messages allocate, copy, and free This message allocates the storage that holds the instance variables for an object.</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE> java.lang.Object</CODE></FONT></TD><TD><CODE><B><A HREF="../../swarm/defobj/Zone.html#copyIVars(java.lang.Object)">copyIVars</A></B>(java.lang.Object anObject)</CODE><BR> copyIVars: creates copies an existing instance variable structure into a new allocation made within the local zone.</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE> java.lang.Object</CODE></FONT></TD><TD><CODE><B><A HREF="../../swarm/defobj/Zone.html#copyIVarsComponent(java.lang.Object)">copyIVarsComponent</A></B>(java.lang.Object anObject)</CODE><BR> Like allocateIVarsComponent, except it copies the storage that holds the instances variables for an object.</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="../../swarm/defobj/Zone.html#describeForEach(java.lang.Object)">describeForEach</A></B>(java.lang.Object outputCharStream)</CODE><BR> Generate debug description for each member of the zone population.</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="../../swarm/defobj/Zone.html#describeForEachID(java.lang.Object)">describeForEachID</A></B>(java.lang.Object outputCharStream)</CODE><BR> Generate debug id description for each member of the zone population.</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="../../swarm/defobj/Zone.html#freeIVars(java.lang.Object)">freeIVars</A></B>(java.lang.Object anObject)</CODE><BR> freeIVars: releases storage that was previously allocated to hold the instance variable structure of an object.</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="../../swarm/defobj/Zone.html#freeIVarsComponent(java.lang.Object)">freeIVarsComponent</A></B>(java.lang.Object anObject)</CODE><BR> Frees the instance variable storage for an object.</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE> java.lang.Object</CODE></FONT></TD><TD><CODE><B><A HREF="../../swarm/defobj/Zone.html#getComponentZone()">getComponentZone</A></B>()</CODE><BR> Returns a specially qualified version of the zone that automatically allocates all its objects with the internal component qualification, even if allocated with allocIVars: or copyIVars:.</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE> int</CODE></FONT></TD><TD><CODE><B><A HREF="../../swarm/defobj/Zone.html#getPageSize()">getPageSize</A></B>()</CODE><BR> </TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE> <A HREF="../../swarm/collections/List.html">List</A></CODE></FONT></TD><TD><CODE><B><A HREF="../../swarm/defobj/Zone.html#getPopulation()">getPopulation</A></B>()</CODE><BR> getPopulation returns a collection all objects allocated in a zone using either allocIVars: or copyIVars: and not yet freed using freeIVars:.</TD></TR></TABLE> <A NAME="methods_inherited_from_class_swarm.defobj.Drop"><!-- --></A><TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%"><TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor"><TD><B>Methods inherited from interface swarm.defobj.<A HREF="../../swarm/defobj/Drop.html">Drop</A></B></TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD><CODE><A HREF="../../swarm/defobj/Drop.html#drop()">drop</A></CODE></TD></TR></TABLE> <A NAME="methods_inherited_from_class_swarm.defobj.DefinedObject"><!-- --></A><TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%"><TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor"><TD><B>Methods inherited from interface swarm.defobj.<A HREF="../../swarm/defobj/DefinedObject.html">DefinedObject</A></B></TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD><CODE><A HREF="../../swarm/defobj/DefinedObject.html#compare(java.lang.Object)">compare</A>, <A HREF="../../swarm/defobj/DefinedObject.html#describe(java.lang.Object)">describe</A>, <A HREF="../../swarm/defobj/DefinedObject.html#describeID(java.lang.Object)">describeID</A>, <A HREF="../../swarm/defobj/DefinedObject.html#getDisplayName()">getDisplayName</A>, <A HREF="../../swarm/defobj/DefinedObject.html#getTypeName()">getTypeName</A>, <A HREF="../../swarm/defobj/DefinedObject.html#getZone()">getZone</A>, <A HREF="../../swarm/defobj/DefinedObject.html#perform(swarm.Selector)">perform</A>, <A HREF="../../swarm/defobj/DefinedObject.html#perform$with(swarm.Selector, java.lang.Object)">perform$with</A>,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -