public class ArchiveInfoQueryTask extends QueryTask
Modifier and Type | Class and Description |
---|---|
private static class |
ArchiveInfoQueryTask.DummyTask |
QueryTask.SendingState
Thread.State, Thread.UncaughtExceptionHandler
Modifier and Type | Field and Description |
---|---|
private ArchiveDataSpecification[] |
adsList |
private ArchiveInfoQueryTask.DummyTask |
dummyTask |
private int |
entryCounter |
private static boolean |
GAP |
private byte[] |
indexMem |
private static boolean |
NO_DIR_ACCESS |
private static boolean |
NO_GAP |
private static int |
NO_MEDIUM_ID |
atgQuery, bosResult, ddResponse, deserializer, gData, gResultData, MIN_CONTAINER_FILES, NA, NN, OA, ON, queryAppObj, queryIdx, sendingState, serializer, serializerVersion, syncObj, t_lsMax, tempMem
resultData, taskMgr
archMgr, didTree, INDEX_MEMORY_SIZE, isTerminated, logger, persMgr, ringOfDeathListener, taskStepListeners
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
START_SENDING, STOP_SENDING, STOP_SENDING_NO_RIGHTS, STOP_SENDING_NOT_A_VALID_SUBSCRIPTION
Constructor and Description |
---|
ArchiveInfoQueryTask(ArchiveManager archiveMgr,
MultiTaskManager tMgr) |
Modifier and Type | Method and Description |
---|---|
private void |
addEntry(long startDIdx,
long startAT,
long startDT,
long endDIdx,
long endAT,
long endDT,
TimingType tt,
boolean gap,
boolean direct,
int volID,
int idx) |
private void |
analyze() |
private long |
calcLastDIdx(long obj,
long atg,
long asp,
short sv,
ArchiveTimeSpecification ats,
IndexResult oa,
IndexResult on,
IndexResult na,
IndexResult nn)
Errechnet den groessten Datenindex aus allen Containerlisten, der unter dem angegebenen TimingType noch innerhalb des angefragten Bereichs liegt.
|
private void |
closeMultiContIter(MultiContainerDataIterator multiContIt) |
private void |
extendLoeschschutz(long obj,
long atg,
long asp,
int sv,
ArchiveDataKind adk,
long contID) |
private boolean |
getDirAccess(MultiContainerDataIterator mci) |
private IndexResult |
getIndexResult(long obj,
long atg,
long asp,
short sv,
ArchiveTimeSpecification ats,
DataIdentNode din,
ArchiveDataKind adk) |
private long |
getMaxContainerDataIndexMaxArchiveTime(long maxTime,
File containerFile)
Gibt von einer Containerdatei den höchsten DataIndex zurück, von dem die ArchiveTime nicht älter als die angegebene Zeit ist
|
private long |
getMaxContainerDataIndexMaxDataTime(long maxTime,
File containerFile)
Gibt von einer Containerdatei den höchsten DataIndex zurück, von dem die DataTime nicht älter als die angegebene Zeit ist
|
private int |
getMedienID(MultiContainerDataIterator mci) |
private byte[] |
insertNumOfEntries(int numOfEntries) |
private boolean |
isGap(long start,
ContainerDataIterator it) |
private void |
printError(String msg) |
private void |
sendResponse()
Beantwortet die Archivinformationsanfragen.
|
private long |
ttVal(TimingType tt,
long dIdx,
long aTime,
long dTime) |
void |
work()
Diese Methode ist zu überschreiben, um die konkrete Aufgabe der Task zu implementieren.
|
createQueryData, dataRequest, getObjectsFromDAV, init, isRequestSupported, parseArchiveDataSpec, sendResultData, setT_lsMax, subscribeSender, unsubscribeSender
doWork, getTaskIndex, run, setTaskIndex
addTaskStepListener, getArchMgr, isTaskTerminated, removeTaskStepListener, suspendTaskIfNecessary, terminateTask
activeCount, checkAccess, clone, 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
private static final boolean GAP
private static final boolean NO_GAP
private static final boolean NO_DIR_ACCESS
private static final int NO_MEDIUM_ID
private ArchiveDataSpecification[] adsList
private byte[] indexMem
private int entryCounter
private ArchiveInfoQueryTask.DummyTask dummyTask
public ArchiveInfoQueryTask(ArchiveManager archiveMgr, MultiTaskManager tMgr)
private IndexResult getIndexResult(long obj, long atg, long asp, short sv, ArchiveTimeSpecification ats, DataIdentNode din, ArchiveDataKind adk) throws Exception
Exception
private long calcLastDIdx(long obj, long atg, long asp, short sv, ArchiveTimeSpecification ats, IndexResult oa, IndexResult on, IndexResult na, IndexResult nn) throws PersistenceException
obj
- ObjektIDatg
- AttributgruppenIDasp
- AspektIDsv
- imVarats
- Bereichoa
- Liste der OA-Container (mit Hilfe der Indexe ermittelt)on
- Liste der ON-Container (mit Hilfe der Indexe ermittelt)na
- Liste der NA-Container (mit Hilfe der Indexe ermittelt)nn
- Liste der NN-Container (mit Hilfe der Indexe ermittelt)PersistenceException
private long getMaxContainerDataIndexMaxDataTime(long maxTime, File containerFile) throws PersistenceException
maxTime
- Maximalzeit der Datenindexe, die berücksichtigt werdencontainerFile
- Die zu öffnende ContainerdateiPersistenceException
- Fehler in der Persistenzprivate long getMaxContainerDataIndexMaxArchiveTime(long maxTime, File containerFile) throws PersistenceException
maxTime
- Maximalzeit der Datenindexe, die berücksichtigt werdencontainerFile
- Die zu öffnende ContainerdateiPersistenceException
- Fehler in der Persistenzprivate boolean isGap(long start, ContainerDataIterator it)
private void sendResponse() throws IOException, DataNotSubscribedException, ConfigurationException, SendSubscriptionNotConfirmed
adsList
werden bearbeitet und beantwortet.private void extendLoeschschutz(long obj, long atg, long asp, int sv, ArchiveDataKind adk, long contID) throws PersistenceException
PersistenceException
private void closeMultiContIter(MultiContainerDataIterator multiContIt)
private boolean getDirAccess(MultiContainerDataIterator mci) throws PersistenceException
PersistenceException
private int getMedienID(MultiContainerDataIterator mci) throws PersistenceException
PersistenceException
private long ttVal(TimingType tt, long dIdx, long aTime, long dTime)
private byte[] insertNumOfEntries(int numOfEntries) throws IOException
IOException
private void printError(String msg) throws IOException
IOException
private void addEntry(long startDIdx, long startAT, long startDT, long endDIdx, long endAT, long endDT, TimingType tt, boolean gap, boolean direct, int volID, int idx) throws IOException
IOException