NAME
Quiq::Schedule - Matrix von zeitlichen Vorgängen
BASE CLASS
DESCRIPTION
Ordne eine Menge von zeitlichen Vorgängen (z.B. gelaufene Prozesse) in einer Reihe von Zeitschienen (Matrix) an. Finden Vorgänge parallel statt (also zeitlich überlappend), hat die Matrix mehr als eine Zeitschiene.
METHODS
Klassenmethoden
new() - Konstruktor
Synopsis
$mtx = $class->new(\@objects,$sub);
Arguments
- @objects
-
Liste von Objekten, die einen Anfangs- und einen End-Zeitpunkt besitzen.
- $sub
-
Subroutine, die den Anfangs- und den Ende-Zeitpunkt des Objektes in Unix-Epoch liefert. Signatur:
sub { my $obj = shift; my $epoch1 = ...; my $epoch2 = ...; return ($epoch1,$epoch2); }
Returns
Matrix-Objekt
Description
Instantiiere ein Matrix-Objekt für die Vorgänge @objects und liefere eine Referenz auf dieses Objekt zurück.
Algorithmus
Wir beginnen mit einer leeren Liste von Zeitschienen.
Die Objekte @objects werden nach Anfangszeitpunkt aufsteigend sortiert.
Es wird über die Objekte iteriert. Das aktuelle Objekt wird zu der ersten Zeitschiene hinzugefügt, die frei ist. Eine Zeitschiene ist frei, wenn sie leer ist oder der Ende-Zeitpunkt des letzten Elements vor dem Anfangs-Zeitpunkt des aktuellen Objekts liegt.
Objektmethoden
entries() - Einträge der Prozess-Matrix
Synopsis
@entries | $entryA = $mtx->entries;
@entries | $entryA = $mtx->entries($i);
Returns
Liste von Prozess-Matrix-Einträgen (Array of Quiq::Hash). Im Skalarkontext eine Referenz auf die Liste.
Description
Liefere die Liste der Einträge in der Prozess-Matrix. Ist $i angegeben, nur die Einträge der Zeitleiste $i. Ein Eintrag ist ein Quiq:Hash-Objekt mit den Attributen:
- timeline
-
Index der Zeitleiste.
- begin
-
Anfangszeitpunkt in Unix Epoch.
- end
-
Ende-Zeitpunkt in Unix Epoch.
- object
-
Referenz auf das ursprüngliche Objekt.
maxLength() - Maximale Anzahl Einträge in einer Zeitleiste
Synopsis
$n = $mtx->maxLength;
Returns
Integer
Description
Liefere die maximale Anzahl an Einträgen in einer Zeitschiene.
minTime() - Frühester Anfangs-Zeitpunkt
Synopsis
$epoch = $mtx->minTime;
Returns
Float
Description
Liefere den frühesten Anfangs-Zeitpunkt über allen Objekten.
maxTime() - Spätester Ende-Zeitpunkt
Synopsis
$epoch = $mtx->maxTime;
Returns
Float
Description
Liefere den spätesten Ende-Zeitpunkt über allen Objekten.
width() - Breite der Matrix
Synopsis
$width = $mtx->width;
Returns
Integer
Description
Liefere die Anzahl der Kolumnen der Matrix.
VERSION
1.205
AUTHOR
Frank Seitz, http://fseitz.de/
COPYRIGHT
Copyright (C) 2022 Frank Seitz
LICENSE
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.