|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||
java.lang.Object
|
+--org.abora.gold.java.AboraHeaper
|
+--org.abora.gold.xpp.basic.Heaper
|
+--org.abora.gold.snarf.DiskManager
This is the public interface for managing objects that should go to disk.
This is also the anchor for the so-called Backend emulsion, but I''ll call it
the DiskManager emulsion for simplicity.
| Field Summary | |
protected PrimPtrTable |
myFlockInfoTable
|
protected WeakPtrArray |
myFlockTable
|
protected char |
myFluidSpace
|
protected static Emulsion |
SecretEmulsion
|
| Fields inherited from class org.abora.gold.xpp.basic.Heaper |
AllBlasts, BecomeMap, GarbageCount, InGC, InitializedClasses, InitializingClasses, LastMemory, NextClientRequestNumber, NotOneElementSignal, PackageTable, PromiseNameTable, StringHashSBoxes |
| Fields inherited from class org.abora.gold.java.AboraHeaper |
ActiveClubs, CurrentAuthor, CurrentBertCanopyCache, CurrentBertCrum, CurrentChunk, CurrentGrandMap, CurrentKeyMaster, CurrentPacker, CurrentSensorCanopyCache, CurrentServer, CurrentSession, CurrentSessions, CurrentTrace, InitialEditClub, InitialOwner, InitialReadClub, InitialSponsor, InsideTransactionFlag |
| Constructor Summary | |
DiskManager()
|
|
| Method Summary | |
int |
actualHashForEqual()
|
void |
beginConsistent(IntegerVar dirty)
This is called before entering consistent block. |
static void |
bomb(IntegerVar CHARGE)
|
static void |
cleanupGarbage()
Heaper cleanupGarbage |
static void |
consistent(BlockClosure aBlock)
Execute the block inside a pseudo-transaction. |
static void |
consistent(IntegerVar dirty,
BlockClosure aBlock)
Execute the block inside a pseudo-transaction. |
static void |
consistent(IntegerVar dirty,
BlockClosure aBlock,
Context context)
|
void |
consistentBlockAt(java.lang.String fileName,
int lineNo)
This is called after beginConsistent, but before entering a consistent block, for debugging purposes. |
void |
destroyFlock(FlockInfo info)
Queue destroy of the given flock. |
void |
destruct()
Classes should implement this message rather than a destructor. |
void |
diskUpdate(FlockInfo info)
The flock described by info is Dirty!! On the next commit, rewrite it to the disk. |
void |
dismantleFlock(FlockInfo info)
The flock designated by info has completed all dismantling actions; throw it off the disk. |
void |
dropFlock(int token)
The flock identified by token is being removed from memory. |
static Emulsion |
emulsion()
|
void |
endConsistent(IntegerVar dirty)
This is called after exiting a consistent block. |
static void |
exitTimeNonInherited()
|
Abraham |
fetchCanonical(int hash,
SnarfID snarfID,
int index)
If something is already imaged at that location, then return it. |
PrimPtrTable |
flockInfoTable()
|
void |
flockInfoTable(PrimPtrTable table)
|
WeakPtrArray |
flockTable()
|
void |
flockTable(WeakPtrArray table)
|
java.lang.String |
fluidSpace()
|
java.lang.String |
fluidSpace(java.lang.String aFluidSpace)
|
void |
forgetFlock(FlockInfo info)
Remember that there are no more persistent pointers to the shepherd described by info. |
Turtle |
getInitialFlock()
Return the starting object for the entire backend. |
static DiskManager |
initializeDisk(java.lang.String fname)
This builds the disk managing structure. |
boolean |
insideCommit()
|
static void |
insistent(BlockClosure aBlock)
Execute the block inside a pseudo-transaction. |
static void |
insistent(IntegerVar dirty,
BlockClosure aBlock)
Execute the block inside a pseudo-transaction. |
static void |
insistent(IntegerVar dirty,
BlockClosure aBlock,
Context context)
|
boolean |
isFake()
|
static void |
linkTimeNonInherited()
|
static Heaper |
make(java.lang.String fname)
|
void |
makeConsistent()
The virtual image in memory is now in a consistent state. |
void |
makeConsistentBegin(IntegerVar dirty)
The virtual image in memory is now in a consistent state. |
void |
makeConsistentEnd()
This is called after exiting a top level consistent block. |
void |
makeReal(FlockInfo info)
Retrieve from the disk the flock at index within the specified snarf. |
int |
nextHashForEqual()
Shepherds use a sequence number for their hash. |
void |
purge()
Flush everything out to disk and remove all purgeable imaged objects from memory. |
void |
purgeClean(boolean noneLocked)
purge all shepherds that are currently clean, not locked, not dirty, and purgeable. |
void |
registerStub(Abraham shep,
SnarfID snarfID,
int index)
Called to register a newly created stub (by the diskSpecialist) in the internal tables. |
void |
rememberFlock(FlockInfo info)
There are now persistent pointers to the shepherd described by info. |
void |
setHashCounter(Counter aCounter)
|
static void |
staticTimeNonInherited()
|
void |
storeAlmostNewShepherd(Abraham shep)
Shep has been created, but is not consistent yet. |
void |
storeInitialFlock(Abraham turtle,
XcvrMaker protocol,
Cookbook cookbook)
A turtle just got created!! Remember it as the initial flock. |
void |
storeNewFlock(Abraham shep)
Shep just got created!! On some later commit, assign it to a snarf and write it to the disk. |
| Methods inherited from class org.abora.gold.java.AboraHeaper |
asOop, basicInspect, displayString, error, hack, halt, inspect, knownBug, mightNotImplement, REQUIRES, shouldImplement, shouldNotImplement, stubbleForSubclassResponsibility, thingToDo, willNotImplement |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
protected char myFluidSpace
protected PrimPtrTable myFlockInfoTable
protected WeakPtrArray myFlockTable
protected static Emulsion SecretEmulsion
| Constructor Detail |
public DiskManager()
| Method Detail |
public void destroyFlock(FlockInfo info)
public void diskUpdate(FlockInfo info)
public void dismantleFlock(FlockInfo info)
public void dropFlock(int token)
public void forgetFlock(FlockInfo info)
public Turtle getInitialFlock()
public int nextHashForEqual()
public void rememberFlock(FlockInfo info)
public void setHashCounter(Counter aCounter)
public void storeAlmostNewShepherd(Abraham shep)
public void storeInitialFlock(Abraham turtle,
XcvrMaker protocol,
Cookbook cookbook)
public void storeNewFlock(Abraham shep)
public Abraham fetchCanonical(int hash,
SnarfID snarfID,
int index)
public void makeReal(FlockInfo info)
public void registerStub(Abraham shep,
SnarfID snarfID,
int index)
public void beginConsistent(IntegerVar dirty)
public void consistentBlockAt(java.lang.String fileName,
int lineNo)
public void endConsistent(IntegerVar dirty)
public boolean insideCommit()
public void purge()
public void purgeClean(boolean noneLocked)
public void makeConsistent()
public void makeConsistentBegin(IntegerVar dirty)
public void makeConsistentEnd()
public int actualHashForEqual()
actualHashForEqual in class Heaperpublic boolean isFake()
public void flockInfoTable(PrimPtrTable table)
public void flockTable(WeakPtrArray table)
public PrimPtrTable flockInfoTable()
public WeakPtrArray flockTable()
public void destruct()
Heaper
destruct in class Heaperpublic java.lang.String fluidSpace()
public java.lang.String fluidSpace(java.lang.String aFluidSpace)
public static DiskManager initializeDisk(java.lang.String fname)
public static Heaper make(java.lang.String fname)
public static Emulsion emulsion()
public static void cleanupGarbage()
Heaper
public static void exitTimeNonInherited()
public static void linkTimeNonInherited()
public static void staticTimeNonInherited()
public static void bomb(IntegerVar CHARGE)
public static void consistent(BlockClosure aBlock)
public static void consistent(IntegerVar dirty,
BlockClosure aBlock)
public static void consistent(IntegerVar dirty,
BlockClosure aBlock,
Context context)
public static void insistent(BlockClosure aBlock)
public static void insistent(IntegerVar dirty,
BlockClosure aBlock)
public static void insistent(IntegerVar dirty,
BlockClosure aBlock,
Context context)
|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||