|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.lang.Thread
de.bsvrz.pua.prot.processing.ProcessingBuffer
public abstract class ProcessingBuffer
Klasse zum Markieren und Erstellen von Ausgangsdatensätzen. Zum Starten der Datenaufbereitung den Thread mit
Thread.start()
starten. Wenn Datensätze eingehen, wird die Datenaufbereitung benachrichtigt. Ist die
Datensammlung abgeschlossen, wird die Datenaufbereitung ein letzes Mal benachrichtigt.
Nested Class Summary |
---|
Nested classes/interfaces inherited from class java.lang.Thread |
---|
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler |
Field Summary | |
---|---|
protected RingBuffer<IntermediateDataSet> |
buffer
Ringpuffer in dem die Ausgangsdatensätze abgelegt werden. |
protected ProtocolRequestResult |
bufferResult
Informationen über das Ergebnis der Datensammlung |
protected ClientDavInterface |
dav
Verbindung zum Dateverteiler |
protected Debug |
debug
Debug Ausgaben. |
protected boolean |
done
Zeigt an ob alle Daten gesammelt und abgerufen wurden. |
protected IMDSBuilder |
imdsBuilder
Objekt dass die Ausgangsdatensätze erzeugt. |
protected static int |
INITIAL_RINGBUFFER_SIZE
Initialisierung Ringpuffer |
protected java.util.List<Tuple<java.lang.Long,java.lang.Long>> |
periods
Abzufragende Zeitbereiche. |
protected ProcessingInformation |
pi
Informationen zur Datenaufbereitung |
protected java.util.Hashtable<RealElement,ValueProvider> |
realElements
Zuordnung: Reale Elemente -> Wertebeschaffer |
protected java.util.Hashtable<TempAttributeDescription,TempAttribut> |
tempElements
Zuordnung: Temporäre Attribute -> Wertebeschaffer für temporäre Attribute |
Fields inherited from class java.lang.Thread |
---|
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY |
Constructor Summary | |
---|---|
ProcessingBuffer(ClientDavInterface dav,
ProcessingInterface processor,
ProcessingInformation pi,
java.util.List<Tuple<java.lang.Long,java.lang.Long>> periods)
Startet den Buffer. |
Method Summary | |
---|---|
void |
abort()
Beendet die Datensammlung. |
abstract boolean |
applyAggregations(BaseDataSet[] baseData)
Führt die Aggregierungen durch. |
IntermediateDataSet |
applyPostFilter(BaseDataSet[] baseData,
byte status,
long winnerTimeStamp)
Ruft den Nachfilter für nicht-aggregierte Daten auf. |
protected boolean |
getInsertEmpty()
Zeigt an ob ein leerer Datensatz eingefügt werden soll. |
ProtocolRequestResult |
getResult()
Zeigt ob die Datensammlung erfolgreich war. |
RealAttributeDescription |
getTimeStampOrigin(TempAttributeDescription tad)
Liefert das Attribut zurück, das den Zeitstempel des temporären Attributsfestlegt. |
protected int |
getWinners(ValueProvider[] elements,
java.util.List<ValueProvider> winners)
Legt die Elemente mit dem kleinsten Datenzeitstempel in einer Liste ab. |
abstract boolean |
hasData()
Zeigt an ob Daten abgeholt werden können. |
abstract void |
init()
Erzeugt die Abbildungen: Elemente -> Wertebeschaffer. |
boolean |
isAbort()
|
protected boolean |
isAggregate()
|
boolean |
isDeltaProtocol()
Zeigt an, ob ein Änderungsprotokoll erstellt wird. |
abstract boolean |
isDone()
Zeigt ob der Buffer noch weitere Daten liefern wird. |
protected abstract boolean |
isDoneCollecting()
Zeigt an ob mit das Abfragen aller Daten abgeschlossen wurde. |
protected abstract boolean |
isListAggregation()
Werden nicht aggregierte Daten versendet? |
protected void |
nextInterval(long endOfInterval)
Ist direkt nachdem alle Daten einer Datenart eines Intevalls gesammelt wurden aufzurufen. |
protected void |
notifyProcessor()
Benachrichtigt das Objekt das die Datenaufbereitung durchführt. |
protected abstract void |
processNewData(java.util.ArrayList<ValueProvider> winners,
ValueProvider[] elements)
Bereitet aus den Ergebnisdatensätzen die Ergebnisdaten auf. |
void |
run()
Erstellt die Ausgangsdatensätze. |
protected void |
setAggregate(boolean aggregate)
|
protected void |
setDone()
Wird aufgerufen wenn die Datensammlung beendet werden soll ist oder abgebrochen wird. |
protected void |
setTempAttributes()
Legt einen Eintrag für jedes temporären Attribut in tempElements an. |
int |
size()
|
abstract void |
storeAggregatedData(byte status)
Falls Aggregationsdatensätze vorhanden sind, werden sie in den Ausgangspuffer gelegt. |
void |
storeDataSet(IntermediateDataSet intermediateData)
Speichert den Ausgangsdatensatz im Ausgangspuffer buffer . |
IntermediateDataSet |
take()
Liefert einen Ausgangsdatensatz zurück. |
Methods inherited from class java.lang.Thread |
---|
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
protected static final int INITIAL_RINGBUFFER_SIZE
protected ProcessingInformation pi
protected ProtocolRequestResult bufferResult
protected ClientDavInterface dav
protected final Debug debug
protected RingBuffer<IntermediateDataSet> buffer
protected java.util.Hashtable<RealElement,ValueProvider> realElements
protected java.util.Hashtable<TempAttributeDescription,TempAttribut> tempElements
protected java.util.List<Tuple<java.lang.Long,java.lang.Long>> periods
protected boolean done
protected IMDSBuilder imdsBuilder
run()
initialisiert.
Constructor Detail |
---|
public ProcessingBuffer(ClientDavInterface dav, ProcessingInterface processor, ProcessingInformation pi, java.util.List<Tuple<java.lang.Long,java.lang.Long>> periods) throws FailureException
init()
sollte unverzüglich nach Erzeugen des Objekts aufgerufen werden.
dav
- Verbindung zum Datenverteilerprocessor
- Objekt das die Datenaufbereitung durchführt. Wird jedes Mal benachrichtigt, wenn ein
Ausgangsdatensatz vorliegt.pi
- Informationen zur Datenaufbereitung.periods
- Zeitbereiche, in denen der Buffer Daten sammeln soll. Die Zeitbereiche müssen bereits sortiert und
zusammengefasst sein! Die Liste wird nicht geändert.
FailureException
- Fehler bei der Kommunikation mit der KonfigurationMethod Detail |
---|
public abstract void init() throws FailureException, java.lang.InterruptedException
realElements
und tempElements
. Die Objekte, die in
diesen Hashtables als 'Values' abgelegt werden, erledigen das Abfragen der Werte selbständig. Sollte sofort nach
Erzeugen des Objektes Aufgerufen werden.
FailureException
- Fehler.
java.lang.InterruptedException
- Thread wird abgebrochen.protected void setTempAttributes()
tempElements
an.
public ProtocolRequestResult getResult()
protected void notifyProcessor()
public IntermediateDataSet take() throws java.lang.InterruptedException
java.lang.InterruptedException
- Warten auf Ausgangsdatensatz wurde unterbrochen.public void run()
getResult()
abgefragt werden.
run
in interface java.lang.Runnable
run
in class java.lang.Thread
protected abstract void processNewData(java.util.ArrayList<ValueProvider> winners, ValueProvider[] elements) throws FailureException, java.lang.InterruptedException
winners
- Liste der Datensätze mit minimalem, nicht aufgefüllten Datenzeitstempel.elements
- Liste aller Ergebnislieferanten.
FailureException
- Fehler bei der Aufbereitung.
java.lang.InterruptedException
- Aufbereitung wurde unterbrochen.protected abstract boolean isListAggregation()
true
falls Liste
eine der ausgewählten die Aggregationsanwendungen ist.public void storeDataSet(IntermediateDataSet intermediateData)
buffer
. Benachrichtigt den Datenaufbereiter
processor
falls notwendig.
intermediateData
- Ausgangsdatensatz.public abstract boolean applyAggregations(BaseDataSet[] baseData)
isAggregate()
true
liefert.
baseData
- Werte des Ausgangsdatensatz. Einträge können von der Methode geändert werden.
true
: Der Ausgangsdatensatz soll nachgefiltert und ausgegeben werden.public abstract void storeAggregatedData(byte status)
status
- Status, den der Aggregationsdatensatz erhalten soll.storeDataSet(IntermediateDataSet)
public IntermediateDataSet applyPostFilter(BaseDataSet[] baseData, byte status, long winnerTimeStamp)
baseData
- Elemente des Ausgangsdatensatz.status
- Status, der dem Ausgangsdatensatz zugeordnet werden soll.winnerTimeStamp
- Minimaler, nicht aufgefüllter Zeitstempel.
protected int getWinners(ValueProvider[] elements, java.util.List<ValueProvider> winners)
elements
- Feld mit realen Elementen, deren Datenzeitstempel überprüft wird.winners
- Liste in der die Elemente mit minimalem Datenzeitstempel abgelegt werden. Die Liste wird vorher
geleert.
public int size()
protected abstract boolean isDoneCollecting() throws FailureException, java.lang.InterruptedException
true
zurückgegeben,
sobald alle Daten abgefragt wurden. isDone()
muss jedoch noch nicht false
zurückliefern!
Wird von run()
jedesmal aufgerufen, bevor ein neuer Ausgangsdatensatz erstellt wird.
true
falls alle Daten abgefragt wurden.
FailureException
- Fehler bei der Überprüfung
java.lang.InterruptedException
- Warten auf Antwortdatensatz wurde unterbrochen.public abstract boolean hasData()
true
falls Daten mittels take()
abgeholt werden können.protected void setDone()
done
true
zurückliefern.
public abstract boolean isDone()
true
falls noch weitere Daten zu erwarten sind.public void abort()
ValueProvider.abort()
für jedes reale Element auf.
protected boolean isAggregate()
protected void setAggregate(boolean aggregate)
aggregate
- The aggregate to set.protected void nextInterval(long endOfInterval)
endOfInterval
- Endzeitpunkt des Intervalls, das gerade beendet wurde.IMDSBuilder.nextInterval(long)
public boolean isAbort()
true
falls die Datenaufbereitung abgebrochen wurde.public RealAttributeDescription getTimeStampOrigin(TempAttributeDescription tad)
init()
Methode gültige Werte!
tad
- Temporäres Attribut
null
wenn noch
kein reales Attribut für das übergebene temporäre Attribut eingetragen wurde.public boolean isDeltaProtocol()
true
falls ein Änderungsprotokoll erstellt wird. false
, falls ein
Zustandsprotokoll erstellt wird.protected boolean getInsertEmpty()
true
falls ein leerer Datensatz eingefügt werden soll.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |