ThinkMeta LogoDeutsch
English
fpZip: Kompression

Beim Erstellen von ZIP-Archiven kann die Kompression für jede Datei unabhängig von­ei­nan­der durchgeführt werden. Lediglich beim Schreiben der komprimierten Daten in das Archiv muss der Vorgang serialisiert werden.

fpZip erzeugt für jede zu komprimierende Datei einen asynchronen Vorgang. Der Pseu­do­code in einer asynchronen Programmiersprache ist wie folgt:

CompressFiles(files)
{
  Memory inMemory[files.count];
  Memory outMemory[files.count];
  for (i = 0; i < files.count; ++i) {
    ReadFile(files[i], inMemory[i]);
    Compress(inMemory[i], outMemory[i]);
  }
}

Die Kompressionsfunktion kann weiter in zwei asynchrone Vorgänge für den Deflate- und den CRC32-Algorithmus aufgeteilt werden:

Compress(inMemory, outMemory)
{
  Deflate(inMemory, outMemory);
  CRC32(inMemory);
}

Somit erhält man folgendes Abhängigkeitsdiagramm:

fpZip