|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.sleepycat.je.tree.INArrayRep<ARRAY_BASE_TYPE,REP_ENUM_TYPE,ELEMENT_TYPE>
public abstract class INArrayRep<ARRAY_BASE_TYPE,REP_ENUM_TYPE,ELEMENT_TYPE>
The base class for the various array representations used by fields associated with an IN node. Storage efficiency, especially when JE is operating in a "cache full" environment is the prime motivation for the various representations.
Each representation assumes that all read operations are done under a shared latch and all updates (set, copy and compact) are done under an exclusive latch. As a result, the representations themselves do not make any provisions for synchronization.
The callers of all the potentially representation mutating methods:
must be careful to save the result value and use it for subsequent operations, since it could represent the new mutated object.
Constructor Summary | |
---|---|
INArrayRep()
|
Method Summary | |
---|---|
abstract long |
calculateMemorySize()
Returns the current memory size of the underlying representation in bytes. |
abstract ARRAY_BASE_TYPE |
compact(IN parent)
Chooses a more compact representation, if that's possible, otherwise does nothing. |
abstract ARRAY_BASE_TYPE |
copy(int from,
int to,
int n,
IN parent)
Copies n elements at index denoted by "from" to the index denoted by "to". |
abstract ELEMENT_TYPE |
get(int idx)
Returns the element at idx. |
abstract REP_ENUM_TYPE |
getType()
|
void |
noteRepChange(INArrayRep<ARRAY_BASE_TYPE,REP_ENUM_TYPE,ELEMENT_TYPE> newRep,
IN parent)
Performs the bookkeeping associated with a representation change. |
abstract ARRAY_BASE_TYPE |
set(int idx,
ELEMENT_TYPE e,
IN parent)
Sets the array element at idx to the node. |
(package private) abstract void |
updateCacheStats(boolean increment,
Evictor evictor)
Update the cache statistics for this representation. |
(package private) void |
updateCacheStats(boolean increment,
IN parent)
Updates the cache statistics associated with this representation. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public INArrayRep()
Method Detail |
---|
public abstract REP_ENUM_TYPE getType()
public abstract ARRAY_BASE_TYPE set(int idx, ELEMENT_TYPE e, IN parent)
idx
- the index to be sete
- the array elelement at the idx
public abstract ELEMENT_TYPE get(int idx)
public abstract ARRAY_BASE_TYPE copy(int from, int to, int n, IN parent)
from
- the source (inclusive) of the copyto
- the target (inclusive) of the copyn
- the number of elements to be copied.
public abstract ARRAY_BASE_TYPE compact(IN parent)
WARNING: This method must not change the memory size of the current representation and return 'this', without explicitly adjusting memory usage (via noteRepChange) before returning. Returning a new instance is the trigger for adjusting memory usage in the parent.
public abstract long calculateMemorySize()
abstract void updateCacheStats(boolean increment, Evictor evictor)
increment
- true the stat should be incremented, false if it must
be decrementedevictor
- the evictor that shoulds ths stat counters#updateCacheStats(boolean)
final void updateCacheStats(boolean increment, IN parent)
increment
- true if the stat is to be incremented, false if it is
to be decrementedpublic final void noteRepChange(INArrayRep<ARRAY_BASE_TYPE,REP_ENUM_TYPE,ELEMENT_TYPE> newRep, IN parent)
newRep
- the new representation that is replacing this one.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |