Interface SerializableDataset
- All Known Implementing Classes:
AsyncSerializableDataset
,RegularSerializableDataset
public interface SerializableDataset
Interface, für Datensätze, die archiviert werden können. Um einen
SerializableDataset
zu erhalten,
sollte einer der statischen Factory-Methoden dieses Interfaces benutzt werden.-
Method Summary
Modifier and TypeMethodDescriptionlong
Gibt die Archivzeit in Millisekunden seit Epoch zurück.default de.bsvrz.dav.daf.main.ResultData
asResultData
(de.bsvrz.dav.daf.main.config.DataModel dataModel, IdDataIdentification did, boolean isDelayed) Gibt für die Quittierung diesen Datensatz als ResultData zurück.static SerializableDataset
create
(ContainerDataResult result) Erstellt einen neuenSerializableDataset
basierend auf bereits archivierten Daten.static SerializableDataset
create
(de.bsvrz.dav.daf.main.Dataset dataset, long archiveTime, SerializeTaskHelper helper) Erstellt einen neuenSerializableDataset
basierend auf einem Datenverteiler-Datensatz.static SerializableDataset
createAsync
(de.bsvrz.dav.daf.main.Dataset dataset, long archiveTime, SignalingQueue<AsyncSerializableDataset> serializeQueue) Erstellt einen neuenSerializableDataset
basierend auf einem Datenverteiler-Datensatz.static SerializableDataset
createGap
(long archTime, long dataIdx, long dataTime) Erstellt einenSerializableDataset
, der eine (potenzielle) Datenlücke repräsentiert.long
Gibt den Datenindex zurück.de.bsvrz.dav.daf.main.DataState
Gibt den Zustand des Datensatzes zurück.long
dataTime()
Gibt die Datenzeit in Millisekunden seit Epoch zurück.long
Schätz den Speicherverbrauch dieses Objektsdefault boolean
hasData()
Gibt zurück, ob Nutzdaten vorhanden sind.de.bsvrz.dav.daf.main.Data
Gibt den ursprünglichen empfangenen Dateninhalt zurück.byte[]
Gibt ein den serialisierten Data-Inhalt zurück.int
Gibt die Größe des originalen, unkomprimierten Daten-Arrays zurück.
-
Method Details
-
createGap
@NotNull @Contract("_, _, _ -> new") static SerializableDataset createGap(long archTime, long dataIdx, long dataTime) Erstellt einenSerializableDataset
, der eine (potenzielle) Datenlücke repräsentiert.- Parameters:
archTime
- ArchivzeitdataIdx
- DatenindexdataTime
- Datenzeit- Returns:
- neuer Datensatz
-
create
Erstellt einen neuenSerializableDataset
basierend auf bereits archivierten Daten. Das ist z. B. für die Migration sinnvoll.- Parameters:
result
- Bereits archivierte Daten- Returns:
- neuer Datensatz
-
create
@NotNull static SerializableDataset create(de.bsvrz.dav.daf.main.Dataset dataset, long archiveTime, SerializeTaskHelper helper) Erstellt einen neuenSerializableDataset
basierend auf einem Datenverteiler-Datensatz.- Parameters:
dataset
- Datenverteiler-Datensatz (z. B. einResultData
)archiveTime
- Archivzeithelper
- Hilfsklasse für Kompression mit Puffer. Diese Klasse ist nicht threadsafe und darf nur von einem create-Aufruf gleichzeitig benutzt werden.- Returns:
- neuer Datensatz
-
createAsync
@NotNull @Contract("_, _, _ -> new") static SerializableDataset createAsync(de.bsvrz.dav.daf.main.Dataset dataset, long archiveTime, SignalingQueue<AsyncSerializableDataset> serializeQueue) Erstellt einen neuenSerializableDataset
basierend auf einem Datenverteiler-Datensatz. Die Serialisierung des Datenverteiler-Datensatzes erfolgt asynchron, indem einAsyncSerializableDataset
in die übergebene Queue eingefügt wird. Diese Queue muss extern von einem Thread oder Threadpool abgearbeitet werden, was unabhängig von dieser Methode implementiert werden muss.Im Archivsystem wird die Queue vom
SerializeTask
abgearbeitet.- Parameters:
dataset
- Datenverteiler-Datensatz (z. B. einResultData
)archiveTime
- ArchivzeitserializeQueue
- Queue, in der der Serialisierungsjob eingefügt wird.- Returns:
- neuer Datensatz
-
archiveTime
long archiveTime()Gibt die Archivzeit in Millisekunden seit Epoch zurück.- Returns:
- die Archivzeit
-
dataTime
long dataTime()Gibt die Datenzeit in Millisekunden seit Epoch zurück.- Returns:
- die Datenzeit
-
dataIndex
long dataIndex()Gibt den Datenindex zurück.- Returns:
- den Datenindex
-
dataState
@NotNull de.bsvrz.dav.daf.main.DataState dataState()Gibt den Zustand des Datensatzes zurück.- Returns:
- den Zustand des Datensatzes
-
serializedData
@NotNull byte[] serializedData()Gibt ein den serialisierten Data-Inhalt zurück. Die Daten sind evtl. komprimiert (sieheuncompressedSize()
). Datenlücken werden als 6-Byte Folge wieContainerFile.NO_SOURCE
usw. zurückgegeben. Dieses Byte-Array enthält noch nicht den Header mit Zeitstempeln usw., wie er in die Containerdatei geschrieben wird. Dieser kann mitArchiveDataSerializer.serializeData(SerializableDataset)
erzeugt werden.- Returns:
- serialisierte und ggf. komprimierte Daten
-
estimateMemoryUsage
long estimateMemoryUsage()Schätz den Speicherverbrauch dieses Objekts- Returns:
- Speicherverbrauch in Bytes
-
hasData
default boolean hasData()Gibt zurück, ob Nutzdaten vorhanden sind. Dies ist der Fall, wenndataState()
den WertDataState.DATA
zurückliefert.- Returns:
- Sind Nutzdaten vorhanden?
-
originalData
@Nullable de.bsvrz.dav.daf.main.Data originalData()Gibt den ursprünglichen empfangenen Dateninhalt zurück. Der Wert kann null sein und ist nur vorhanden, wenn die Daten vorher vom Datenverteiler empfangen wurden. Dies wird nur für die Quittierung benötigt.- Returns:
- Originaler Datensatz
-
asResultData
default de.bsvrz.dav.daf.main.ResultData asResultData(de.bsvrz.dav.daf.main.config.DataModel dataModel, IdDataIdentification did, boolean isDelayed) Gibt für die Quittierung diesen Datensatz als ResultData zurück.Dies ist nur möglich, wenn in originalData() der ursprüngliche Datensatz übergeben wurde.
- Parameters:
dataModel
- Datenmodelldid
- DatenidentifikationisDelayed
- Nachgeliefert?- Returns:
- Datenverteiler-Datensatz
-
uncompressedSize
int uncompressedSize()Gibt die Größe des originalen, unkomprimierten Daten-Arrays zurück. Enthält 0 (=ContainerFile.NOT_COMPRESSED
) falls die Daten unkomprimiert sind, dann zählt die Größe des serializedData-Bytearrays.- Returns:
- die Größe des unkomprimierten Daten-Arrays
-