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 TypeMethodDescriptionlongGibt die Archivzeit in Millisekunden seit Epoch zurück.default de.bsvrz.dav.daf.main.ResultDataasResultData(de.bsvrz.dav.daf.main.config.DataModel dataModel, IdDataIdentification did, boolean isDelayed) Gibt für die Quittierung diesen Datensatz als ResultData zurück.static SerializableDatasetcreate(ContainerDataResult result) Erstellt einen neuenSerializableDatasetbasierend auf bereits archivierten Daten.static SerializableDatasetcreate(de.bsvrz.dav.daf.main.Dataset dataset, long archiveTime, SerializeTaskHelper helper) Erstellt einen neuenSerializableDatasetbasierend auf einem Datenverteiler-Datensatz.static SerializableDatasetcreateAsync(de.bsvrz.dav.daf.main.Dataset dataset, long archiveTime, SignalingQueue<AsyncSerializableDataset> serializeQueue) Erstellt einen neuenSerializableDatasetbasierend auf einem Datenverteiler-Datensatz.static SerializableDatasetcreateGap(long archTime, long dataIdx, long dataTime) Erstellt einenSerializableDataset, der eine (potenzielle) Datenlücke repräsentiert.longGibt den Datenindex zurück.de.bsvrz.dav.daf.main.DataStateGibt den Zustand des Datensatzes zurück.longdataTime()Gibt die Datenzeit in Millisekunden seit Epoch zurück.longSchätz den Speicherverbrauch dieses Objektsdefault booleanhasData()Gibt zurück, ob Nutzdaten vorhanden sind.de.bsvrz.dav.daf.main.DataGibt den ursprünglichen empfangenen Dateninhalt zurück.byte[]Gibt ein den serialisierten Data-Inhalt zurück.intGibt 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 neuenSerializableDatasetbasierend 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 neuenSerializableDatasetbasierend 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 neuenSerializableDatasetbasierend auf einem Datenverteiler-Datensatz. Die Serialisierung des Datenverteiler-Datensatzes erfolgt asynchron, indem einAsyncSerializableDatasetin 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
SerializeTaskabgearbeitet.- 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_SOURCEusw. 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.DATAzurü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
-