public class FlowControlTask
extends java.lang.Object
KLasse zur Verarbeitung der Steuerungspakete, die von anderen Applikationen zur Flusskontrolle an das Archivsystem geschickt werden. Der Empfaenger einer Archivantwort kann den Sendefluss des im ArchiveQueryTask
eingesetzten StreamMultiplexer
steuern. Die dazu versandten Steuerungspakete werden vom InQueuesMgr
empfangen und dann von diesem Task an die entsprechenden Multiplexer weitergeleitet.
Modifier and Type | Field and Description |
---|---|
private java.util.Map<SystemObject,java.util.Map<java.lang.Integer,StreamMultiplexer>> |
ctrlMap
Datenhaltung: Anfragendes ApplikationsObjekt -> Anfrage-Index -> StreamMultiplexer.
|
private Debug |
logger |
private java.lang.Object |
syncObj
Spezielles Objekt zur Synchronisierung.
|
Constructor and Description |
---|
FlowControlTask(ArchiveManager archiveMgr)
Erzeugt einen neuen Flusskontroll-Task.
|
Modifier and Type | Method and Description |
---|---|
private void |
log(byte[] streamTicketPacket) |
private void |
log(SystemObject queryAppObj,
int queryIdx,
byte[] streamTicketPacket) |
void |
processFlowCtrl(ResultData resultData) |
void |
subscribe(SystemObject queryAppObj,
int queryIdx,
StreamMultiplexer mux)
Registriert den angegebenen StreamMultiplexer für den Empfang von Steuerpaketen vom angegebenen Anfrage-Applikations-Objekt und Anfrage-Index, die dieser gerade mit einer Archivantwort versorgt.
|
void |
unsubscribe(SystemObject queryAppObj,
int queryIdx)
De-Registriert den zuvor unter dem angegebenen Anfrage-Applikations-Objekt und Anfrage-Index registrierten StreamMultiplexer für den Empfang von Steuerpaketen.
|
private java.lang.Object syncObj
Spezielles Objekt zur Synchronisierung.
private Debug logger
private java.util.Map<SystemObject,java.util.Map<java.lang.Integer,StreamMultiplexer>> ctrlMap
Datenhaltung: Anfragendes ApplikationsObjekt -> Anfrage-Index -> StreamMultiplexer.
public FlowControlTask(ArchiveManager archiveMgr)
Erzeugt einen neuen Flusskontroll-Task.
aMgr
- Der Archiv-Managerrodl
- Ring-of-Death-ListenerinputData
- Warteschlange des Taskspublic void processFlowCtrl(ResultData resultData)
public void subscribe(SystemObject queryAppObj, int queryIdx, StreamMultiplexer mux)
Registriert den angegebenen StreamMultiplexer für den Empfang von Steuerpaketen vom angegebenen Anfrage-Applikations-Objekt und Anfrage-Index, die dieser gerade mit einer Archivantwort versorgt.
queryAppObj
- Anfrage-Applikations-ObjektqueryIdx
- Anfrage-Indexmux
- StreamMultiplexerpublic void unsubscribe(SystemObject queryAppObj, int queryIdx)
De-Registriert den zuvor unter dem angegebenen Anfrage-Applikations-Objekt und Anfrage-Index registrierten StreamMultiplexer für den Empfang von Steuerpaketen.
queryAppObj
- Anfrage-Applikations-ObjektqueryIdx
- Anfrage-Indexprivate void log(byte[] streamTicketPacket)
private void log(SystemObject queryAppObj, int queryIdx, byte[] streamTicketPacket)