de.bsvrz.sys.funclib.losb.ringbuffer
Class ArchiveRingBuffer
java.lang.Object
de.bsvrz.sys.funclib.losb.ringbuffer.RingBuffer<ArchiveRingBuffer.PopObject>
de.bsvrz.sys.funclib.losb.ringbuffer.ArchiveRingBuffer
public class ArchiveRingBuffer
- extends RingBuffer<ArchiveRingBuffer.PopObject>
Diese Klasse führt einen zweiten Ringpuffer, um neben dem einzufügenden Objekt
auch den Einfügezeitpunkt festzuhalten (für die Archivzeit).
Sinn dieser Klasse ist es, staendiges erzeugen und loeschen von Objekten zu vermeiden.
Dies wäre der Fall, wenn man jedesmal ein Objekt erzeugt, das das Wertepaar enthält.
Method Summary |
protected void |
copy2NewArray(int newSize)
|
void |
pop(ArchiveRingBuffer.PopObject pobj)
Fügt die ersten Element der beiden Warteschlange in das uebergebene PopObject ein. |
boolean |
push(java.lang.Object elem,
long time)
Fügt ein Objekt in die Warteschlange an letzter Stelle ein. |
Methods inherited from class de.bsvrz.sys.funclib.losb.ringbuffer.RingBuffer |
adjustSizePostDecr, adjustSizePreIncr, changeMaxSize, getLast, isEmpty, isFirstElemOneAheadOfLastElem, isFull, maxSize, next, oneStepFurther, peek, pop, pop, popNoWait, push, size, status, toArray |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ArchiveRingBuffer
public ArchiveRingBuffer(int chunkSize,
int mxsize)
- Parameters:
chunkSize:
- Größe der Blöcke, um die das Feld der Warteschlange wächst und schrumpft.mxSize:
- Maximale Groesse der Warteschlange. Wird diese ueberschritten, liefert #push(E)
false
push
public boolean push(java.lang.Object elem,
long time)
- Fügt ein Objekt in die Warteschlange an letzter Stelle ein. Ein Thread, der in pop() wartet, wird fortgesetzt.
- Parameters:
elem:
- Einzufügendes Objekttime:
- Einfügezeitpunkt
- Returns:
- Wahr, wenn Platz in der Queue war und das Datum eingefuegt wurde, falsch sonst
pop
public void pop(ArchiveRingBuffer.PopObject pobj)
throws java.lang.InterruptedException
- Fügt die ersten Element der beiden Warteschlange in das uebergebene PopObject ein.
Dieses Objekt muss vorher angelegt worden sein und wird nur zur Uebergabe der
beiden Werte verwendet. Wenn die Warteschlange leer ist, blockiert
der aufrufende Thread bis zum nächsten pop()-Aufruf.
- Parameters:
pobj:
- vorher zu erzeugendes Objekt zur Übergabe der Werte.
- Throws:
java.lang.InterruptedException
copy2NewArray
protected void copy2NewArray(int newSize)
- Overrides:
copy2NewArray
in class RingBuffer<ArchiveRingBuffer.PopObject>
Copyright © 2005-2008 beck et al. projects GmbH All Rights Reserved.