Click or drag to resize

LogicalNode Klasse

Abstrakte Basisklasse für einen Knoten im LogicalTaskTree.
Vererbungshierarchie
SystemObject
  NetEti.GlobalsGenericTreeLogicalNode
    LogicalTaskTreeLogicalNode
      LogicalTaskTreeNodeParent
      LogicalTaskTreeSingleNode
      LogicalTaskTreeUndefinedLogicalNodeClass

Namensraum: LogicalTaskTree
Assembly: LogicalTaskTree (in LogicalTaskTree.dll) Version: 1.0.0+d75bac576d44afb64cfff79fd3665c8ca1172cbc
Syntax
public abstract class LogicalNode : GenericTree<LogicalNode>, 
	IVishnuNode, INotifyPropertiesChanged

Der LogicalNode Typ exponiert die folgenden Member.

Konstruktoren
Eigenschaften
 NameBeschreibung
Public EigenschaftBreakWithResult Ein Teilbaum kann u.U. schon ein eindeutiges logisches Ergebnis haben, bevor alle Kinder ihre Verarbeitung beendet haben. Bei BreakWithResult=True werden diese dann abgebochen, wenn in dem bereffenden Ast keine Trigger aktiv sind.
Public EigenschaftCanTreeStart Gibt an, ob ein (Teil-)Baum gestartet werden kann, d.h. dass bei einem Knoten mit Kindern alle seine Kinder (rekursiv) gestartet werden können oder bei einem Endknoten (Checker) ohne Kinder dieser selbst gestartet werden kann.
Public EigenschaftChildren Liste der Kinder eines Knotens.
(Vererbt von GenericTreeT)
Public EigenschaftDebugMode Bei True können zusätzliche Testausgaben erfolgen. Default: False.
Public EigenschaftId Die eindeutige Kennung des Knotens.
Public EigenschaftIdInfo Die eindeutige Kennung des Knotens (identisch zur Property Id).
Public EigenschaftIdPath Auf eine durch '/' getrennte Kette von Ids reduzierter Pfad zum Knoten.
Public EigenschaftInitNodes Bei True werden alle Knoten im Tree resettet, wenn dieser Knoten gestartet wird. Kann für Loops in Controlled-Jobs verwendet werden. Default: false.
Public EigenschaftIsActive Bei true befindet sich der Teilbaum/Knoten in aktivem (gestartetem) Zustand.
Public EigenschaftIsGlobal Bei true wird dieser Knoten als Referenzknoten angelegt, wenn irgendwo im Tree (nicht nur im aktuellen Job) der Name des Knotens schon gefunden wurde. Bei false wird nur im aktuellen Job nach gleichnamigen Knoten gesucht. Default: false.
Public EigenschaftIsInSleepTime Returns true, wenn gerade eine vom User definierte Ruhezeit für Vishnu-Akteure (Checker) läuft.
Public EigenschaftIsInSnapshot Bei True befindet sich diese LogicalNode innerhalb eines Snapshots.
Public EigenschaftIsSnapshotDummy Bei True dient dieser Knoten nur zur Anzeige und lässt keine weiteren Funktionen zu.
Public EigenschaftLastExecutingTreeEvent Das letzte auslösende TreeEvent (bei TreeEvent-getriggerten Knoten) oder null.
Public EigenschaftLastLogical Der letzte logische Zustand eines Knotens. Für den Zugriff auf Zustände von Child-Knoten, ohne dort die Ermittlung der Zustände erneut anzustoßen. Senkt die Prozessorlast.
Public EigenschaftLastLogicalState Der letzte Ergebniszustand eines Knotens. Für den Zugriff auf Zustände von Child-Knoten, ohne dort die Ermittlung der Zustände erneut anzustoßen. Senkt die Prozessorlast.
Public EigenschaftLastNotNullLogical Merkfeld für den letzten Zustand von Logical, der nicht null war; wird benötigt, damit Worker nur dann gestartet werden, wenn sich der Zustand von Logical signifikant geändert hat und nicht jedesmal, wenn der Checker arbeitet (Logical = null).
Public EigenschaftLastResult Result für diesen Knoten.
Public EigenschaftLastRun Zeitpunkt des letzten Starts des Knoten.
Public EigenschaftLastState Der letzte Verarbeitungszustand eines Knotens. Für den Zugriff auf Zustände von Child-Knoten, ohne dort die Ermittlung der Zustände erneut anzustoßen. Senkt die Prozessorlast.
Public EigenschaftLevel Die Hierarchie-Ebene des Knotens.
Public EigenschaftLevelInfo Die Hierarchie-Ebene des Knotens (identisch zur Property Level).
Public EigenschaftLockName Optionaler zum globalen Sperren verwendeter Name. Wird verwendet, wenn ThreadLocked gesetzt ist.
Public EigenschaftLogger Ein optionaler Logger, der bei bestimmten Ereignissen aufgerufen wird oder null.
Public EigenschaftLogical Der logische Zustand eines Knotens; hierum geht es letztendlich in der gesamten Verarbeitung.
Public EigenschaftLogicalState Der Ergebnis-Zustand des Knotens: None, Start, Done, Fault, Timeout, UserAbort.
Public EigenschaftName "Menschenfreundliche" Darstellung des Knotens.
Public EigenschaftNameId Kombination aus Name und Id des Knotens.
Public EigenschaftNameInfo "Menschenfreundliche" Darstellung des Knotens.
Public EigenschaftNextRun Zeitpunkt des nächsten Starts des Knotens (wenn bekannt) oder DateTime.MinValue.
Public EigenschaftNextRunInfo Info-Text über den nächsten Start des Knotens (wenn bekannt) oder null.
Public EigenschaftNodeType Der Knotentyp: None, NodeConnector, ValueModifier, JobConnector, Constant, Checker, NodeList, JobList, Snapshot.
Public EigenschaftParentView Das Parent-Control, in dem dieser Knoten dargestellt wird.
Public EigenschaftPath Der Pfad zum Knoten bestehend aus einer durch '/' getrennte Kette von NameIds: NameId ist Name + "(" + Id + ")" bei Knoten mit Name != null, nur Id bei Name = null.
Public EigenschaftPathInfo Der Pfad zum Knoten (identisch zur Property Path).
Public EigenschaftReferencedNodeId Id eines ursprünglich referenzierten Knotens oder null.
Public EigenschaftReferencedNodeName Name eines ursprünglich referenzierten Knotens oder null.
Public EigenschaftReferencedNodePath Pfad eines ursprünglich referenzierten Knotens oder null.
Public EigenschaftSingleNodes Anzahl der SingleNodes (letztendlich Checker) am Ende eines (Teil-)Baums.
Public EigenschaftSingleNodesFinished Prozentwert für den Anteil der beendeten SingleNodes (letztendlich Checker) am Ende eines (Teil-)Baums.
Public EigenschaftSleepTimeFrom Der Beginn einer möglichen Ruhezeit.
Public EigenschaftSleepTimeTo Das Ende einer möglichen Ruhezeit.
Public EigenschaftStartCollapsed Bei True wird der Job beim Start zusammengeklappt angezeigt, wenn die UI dies unterstützt.
Public EigenschaftState Der Verarbeitungszustand eines Knotens: None, Waiting, Working, Finished, Triggered, Ready (= Finished | Triggered), CanStart (= None|Ready), Busy (= Waiting | Working).
Public EigenschaftThreadLocked Bei True wird jeder Thread über die Klasse gesperrt, so dass nicht Thread-sichere Checker serialisiert werden; Default: False;
Public EigenschaftTreeParams Zusätzliche Parameter, einige, die für den gesamten Tree Gültigkeit haben und einige knotenspezifische Parameter oder null.
Public EigenschaftTrigger Ein optionaler Trigger, der den Job wiederholt aufruft oder null (setzt intern BreakWithResult außer Kraft).
Public EigenschaftTriggeredRunDelay Verzögert den Start eines Knotens (und InitNodes). Kann für Loops in Controlled-Jobs verwendet werden. Default: 0 (Millisekunden).
Public EigenschaftTypeInfo Der Knotentyp: None, NodeConnector, ValueModifier, Constant, Checker. NodeTypes
Public EigenschaftUserControlPath Der Pfad zum aktuell dynamisch zu ladenden UserControl.
Public EigenschaftWorkersState Ein Sammelstatus für alle zugeordneten Worker.
Zurück nach oben
Methoden
 NameBeschreibung
Public MethodeStatic MemberAllowSnapshots Erlaubt Snapshots.
Public MethodeBreak Wenn erforderlich, beim Trigger abmelden, Abbrechen der Task über CancellationToken, Status setzen.
Public MethodeCanControlledTreeStart Gibt an, ob ein (Teil-)Baum in einem JobController gestartet werden kann, d.h. dass der Knoten und alle seine Eltern (rekursiv) gestartet werden können.
Public MethodeClimb2Top Hangelt sich durch den Baum nach oben (bis zur Root) und ruft für jeden Knoten die Action auf.
(Vererbt von GenericTreeT)
Protected MethodeDoRun Die eigentliche, Knotentyp-spezifische Verarbeitung; muss überschrieben werden.
Public MethodeEquals Vergleicht den Inhalt dieser LogicalNode nach logischen Gesichtspunkten mit dem Inhalt einer übergebenen LogicalNode.
(Überschreibt ObjectEquals(Object))
Protected MethodeFindEventTriggers Sucht nach zuständigen Triggern für ein Event.
Public MethodeFindNodeById Hierüber kann eine Ableitung von LogicalNode ihren eigenen Thread zum Abbruch veranlassen.
Public MethodeGetEnvironment Returniert das ConcurrentDictionary Environment als einfaches Dictionary Results. Benutzt dazu die interne Routine GetResultsFromResultList().
Public MethodeGetHashCode Erzeugt einen Hashcode für diese LogicalNode.
(Überschreibt ObjectGetHashCode)
Public MethodeGetlastEventSourceIfIsTreeEventTriggered Aktualisiert bei TreeEvent-getriggerten Knoten die Werte des Knotens, bevor mit ihnen weitergearbeitet wird. Ist bei Situationen wichtig, in dem entweder der Knoten das auslösende TreeEvent verpasst hat (beim Programmstart) oder ein anderes TreeEvent schneller war und zu einer Reaktion führt, die die aktuellen Werte des Knotens benötigt (JobSnapshotTrigger).
Public MethodeGetResults Returniert das ConcurrentDictionary ResultList als einfaches Dictionary Results. Benutzt dazu die interne Routine GetResultsFromResultList().
Public MethodeGetTopRootJobList Liefert die für den Knoten gültige, oberste Root-JobList.
Public MethodeInitFromNode Setzt bestimmte Eigenschaften auf die Werte der übergebenen LogicalNode "source".
Protected MethodeInitNode Setzt den Knoten auf die Starteinstellungen zurück.
Public MethodeInvalidate Löscht interne Caches, so dass alles neu ausgewertet wird.
Protected MethodeStatic MemberLogWithDistinctTime Schreibt eine Nachricht mit kurzer Sleeptime vorher und nacher, um zeitnahe Vorgänge später im Log in zeitlicher Folge sichtbar zu machen.
Protected MethodeMarkThreadAsInvalidIfActive Trägt thread in die Liste ungültiger Threads ein, falls der Thread noch aktiv ist.
Protected MethodeOnLastNotNullLogicalChanged Löst das NodeLastNotNullLogicalChanged-Ereignis aus.
Protected MethodeOnNodeBreaked Löst das NodeBreaked-Ereignis aus.
Protected MethodeOnNodeProgressChanged Löst das NodeProgressChanged-Ereignis aus.
Public MethodeOnNodeProgressFinished Löst das NodeProgressFinished-Ereignis aus.
Protected MethodeOnNodeProgressStarted Löst das NodeStarted-Ereignis aus.
Protected MethodeOnNodeWorkersStateChanged Löst das NodeWorkersStateChanged-Ereignis aus.
Public MethodeStatic MemberPauseTree Hält die Verarbeitung im Tree an.
Public MethodeProcessTreeEvent Stößt weitere Verarbeitungen für das aktuelle TreeEvent an (Trigger, Logger).
Public MethodeStatic MemberProhibitSnapshots Verhindert Snapshots.
Protected MethodeRaiseNodeLastNotNullLogicalChangedWithTreeEvent Triggert das TreeEvent "AnyLastNotNullLogicalHasChanged" und ruft "OnNodeLastNotNullLogicalChanged".
Protected MethodeRaiseNodeLogicalChanged Kapselt den Aufruf des nicht vererbbaren Events NodeLogicalChanged für für die abgeleiteten Klassen NodeList und JobList. Diese Routine gibt das Event über NodeLogicalChanged letzten Endes an die UI weiter.
Public MethodeRefresh Sorgt für eine sofortige Neu-Auswertung aller gecashten Zustände.
Public MethodeRegisterTriggeredNodes Registriert alle getriggerten Knoten eines Teilbaums bei ihren Triggern.
Public MethodeReload Wird aufgerufen, wenn der Teilbaum neu geladen werden soll.
Protected MethodeResetAllTreeEventTriggeringNodes Setzt alle Knoten im Teilbaum zurück, von denen andere per TreeEvent abhängen.
Protected MethodeResetAllTreeNodes Setzt alle Knoten im gesamten Tree zurück.
Protected MethodeResetPartTreeNodes Setzt alle Knoten im Teilbaum ab branch zurück.
Public MethodeStatic MemberResumeTree Lässt einen angehaltenen Tree weiterlaufen.
Public MethodeRun Prüft, ob ein Knoten gestartet werden kann und startet dann den Knoten, seinen Trigger, oder beide (über StartNodeOrTrigger).
Public MethodeSetTreeCollapsed Setzt die Property StartCollapsed für einen ganzen (Teil-)Baum.
Protected MethodeSetWorkersState Setzt einen gemeinsamen (kombinierten) NodeWorkerState 'WorkersState' für alle NodeWorker. Retourniert NodeWorkersState.
Protected MethodeStatic MemberSleepIfNecessary Streut System.Sleeps zur Systementlastung ein. Ist feiner regulierbar, als fixe Sleeps in geschachtelten Inner-Loops.
Protected MethodeThreadUpdateLastLogical Setzt threadsafe LastLogical.
Protected MethodeThreadUpdateLastLogicalState Setzt threadsafe LastLogicalState.
Protected MethodeThreadUpdateLastState Setzt threadsafe LastState.
Public MethodeToString Überschriebene ToString()-Methode.
(Überschreibt ObjectToString)
Public MethodeTraverse(ActionInt32, T) Geht rekursiv durch den Baum und ruft für jeden Knoten die Action auf.
(Vererbt von GenericTreeT)
Public MethodeTraverse(FuncInt32, T, Object, Object) Geht rekursiv durch den Baum und ruft für jeden Knoten die Action auf.
(Vererbt von GenericTreeT)
Protected MethodeTraverse(Int32, ActionInt32, T) Rekursive Hilfsroutine für die öffentliche Routine 'Traverse'.
(Vererbt von GenericTreeT)
Protected MethodeTraverse(Int32, FuncInt32, T, Object, Object, Object) Rekursive Hilfsroutine für die öffentliche Routine 'Traverse'.
(Vererbt von GenericTreeT)
Protected MethodeUnMarkThreadAsInvalid Entfernt thread aus der Liste ungültiger Threads.
Public MethodeUnregisterTriggeredNode Setzt den Teilbaum auf nicht startbar.
Public MethodeUserBreak Wird aufgerufen, wenn der Teilbaum vom Anwender bewusst gestoppt wurde.
Public MethodeUserRun Startet die Verarbeitung dieses Knotens nach einem Start durch den Anwender. Gibt die Information, dass der Start durch den Anwender erfolgte, im TreeEvent an Run weiter.
Zurück nach oben
Ereignisse
 NameBeschreibung
Public EreignisStatic MemberAllNodesStateChanged Wird aufgerufen, wenn sich der Verarbeitungszustand eines Knotens geändert hat.
Public EreignisExceptionCleared Wird aufgerufen, wenn eine Exception gelöscht wird.
Public EreignisExceptionRaised Wird aufgerufen, wenn eine Exception aufgetreten ist.
Public EreignisNodeLastNotNullLogicalChanged Wird aufgerufen, wenn sich das logische Ergebnis eines Knotens geändert hat und ungleich null ist.
Public EreignisNodeLogicalChanged Wird aufgerufen, wenn sich das logische Ergebnis eines Knotens geändert hat.
Public EreignisNodeProgressChanged Wird aufgerufen, wenn sich der Verarbeitungs-Fortschritt eines Knotens geändert hat.
Public EreignisNodeProgressFinished Wird aufgerufen, wenn die Verarbeitung eines Knotens abgeschlossen wurde (unabhängig vom Ergebnis).
Public EreignisNodeProgressStarted Wird aufgerufen, wenn ein Knoten gestartet wurde.
Public EreignisNodeResultChanged Wird aufgerufen, wenn sich das Result eines Knotens geändert hat. Dient dazu, die Berechnung des logischen Zustands des übergeordneten Knotens neu zu starten.
Public EreignisNodeStateChanged Wird aufgerufen, wenn sich der Verarbeitungszustand eines Knotens geändert hat.
Public EreignisNodeWorkersStateChanged Wird aufgerufen, wenn sich der Gesamtzustand der dem Knoten zugeordneten Worker geändert hat.
Public EreignisPropertiesChanged Dieses Event aus IVishnuNode.INotifyPropertiesChanged kann von LogicalNodeViewmodel abonniert werden. Dieses erhält über die übergebenen PropertiesChangedEventArgs eine String-List mit Property-Namen und kann seinerseits über INotifyProperyChanged die UI informieren.
Zurück nach oben
Felder
 NameBeschreibung
Protected Feld_lastRun Zeitpunkt des letzten Starts des Knoten (internes Feld).
Protected Feld_nextRunInfo Info-Text über den nächsten Start des Knotens (wenn bekannt) oder null (internes Feld).
Protected Feld_parentViewLocker Dient zur Sperrung für Thread-safen Zugriff auf ParentView.
Protected FeldAppSettings Applikationseinstellungen.
Protected FeldCancellationToken Über die CancellationTokenSource kann dieses Token auf Abbruch gesetzt werden, was in diesem Knoten zum Aufruf der Routine cancelNotification führt.
Protected FeldExceptionLocker Dient zum kurzzeitigen Sperren bei Exceptions.
Protected FeldIsRunRequired True: der Knoten soll gestartet werden.
Public FeldStatic MemberIsSnapshotProhibited Liefert true, wenn gerade keine Snapshots erlaubt sind.
Protected FeldIsTaskActiveOrScheduled True: der Knoten ist gerade aktiv oder durch einen Timer kontrolliert.
Public FeldStatic MemberIsTreeFlushing Liefert true, wenn die Verarbeitung im Tree gerade angehalten werden soll aber schon erzeugte logische Änderungen noch zuende verteilt werden.
Public FeldStatic MemberIsTreePaused Liefert true, wenn die Verarbeitung im Tree gerade angehalten wurde.
Public FeldLastExceptions Beim letzten Lauf aufgetretene Exception oder null;
Protected FeldLastLogicalLocker Dient zum kurzzeitigen Sperren von LastLogical.
Protected FeldLastLogicalStateLocker Dient zum kurzzeitigen Sperren von LastLogicalState.
Protected FeldLastStateLocker Dient zum kurzzeitigen Sperren von LastState.
Public FeldMother Der Besitzer des Knoten.
(Vererbt von GenericTreeT)
Protected FeldResultLocker Dient zum kurzzeitigen Sperren von Result.
Public FeldRootJobList Nächsthöhere JobList für diesen Knoten oder der Knoten selbst, wenn er eine JobList ist.
Protected FeldSubLastNotNullLogicalLocker Dient zum kurzzeitigen Sperren von LastLogical.
Public FeldTreeRootJobList Oberste JobList.
Zurück nach oben
Anmerkungen
File: LogicalNode.cs Autor: Erik Nagel 01.12.2012 Erik Nagel: erstellt 06.08.2016 Erik Nagel: IVishnuNode implementiert.
Siehe auch