INTERFACE--------------------------------------------------------------------------StdDepGraphNode ; CONST Brand = "StdDepGraphNode 0.1";
TYPE T = OBJECT mName : TEXT; mCmd : TEXT; mHit : BOOLEAN; mUpd : BOOLEAN; mPhony : BOOLEAN; METHODS init(n : TEXT; c : TEXT := NIL; pseudo := FALSE) : T := Init; reset() := Reset; name() : TEXT := Name; seen() := Seen; touch() := Touch; visited() : BOOLEAN := Visited; updated() : BOOLEAN := Updated; phony() : BOOLEAN := Phony; action() : TEXT := Action; END;--------------------------------------------------------------------------
PROCEDURE New(n : TEXT; c : TEXT := NIL; pseudo := FALSE) : T;--------------------------------------------------------------------------
PROCEDURE Init(self : T; n : TEXT; c : TEXT := NIL; pseudo := FALSE) : T;--------------------------------------------------------------------------
PROCEDURE Reset(self : T); (* Post: NOT self.visited() AND NOT self.updated() *)--------------------------------------------------------------------------
PROCEDURE Touch(self : T); (* Post: self.updated() *)--------------------------------------------------------------------------
PROCEDURE Seen(self : T); (* Post: self.visited() *)--------------------------------------------------------------------------
PROCEDURE Name(self : T) : TEXT; (* Return the associated file name. *)--------------------------------------------------------------------------
PROCEDURE Action(self : T) : TEXT; (* Return the associated action. *)--------------------------------------------------------------------------
PROCEDURE Visited(self : T) : BOOLEAN; (* Self has been visited. *)--------------------------------------------------------------------------
PROCEDURE Updated(self : T) : BOOLEAN; (* Self has been updated. *)--------------------------------------------------------------------------
PROCEDURE Phony(self : T) : BOOLEAN; (* Self is phony. *)-------------------------------------------------------------------------- Hash, Equal and Compare are demanded by the generic DiGraph object type.
--------------------------------------------------------------------------
PROCEDURE Hash (fa : T) : CARDINAL;--------------------------------------------------------------------------
PROCEDURE Equal (fa1, fa2 : T) : BOOLEAN;--------------------------------------------------------------------------
PROCEDURE Compare (fa1, fa2 : T) : [-1..1]; END StdDepGraphNode.