|
|
|
|
||
|
DEFINITION MODULE SubmodelSet; (******************************************************************* Module SubmodelSet (Version 1.0) Copyright (c) 1997-2006 by Andreas Fischlin and ETH Zurich. Purpose General mechanism to notify model components of a structured model system about activation respectively deactivation of one another. Remarks A model interested in learning about a recent change in the status of a model can announce its interest by installing a Notifier with a call to AddNotifierIfActivated or AddNotifierIfDeactivated. E.g. as soon as an activation/deactivaton sequence for a structured model system has been executed (cf. module StructModAux) the messages are generated and dispatched to all currently known clients, which have announced their interest. Programming o Design Andreas Fischlin 11/05/1997 o Implementation Andreas Fischlin 11/05/1997 ETH Zurich Systems Ecology CHN E 35.1 Universitaetstrasse 16 8092 Zurich SWITZERLAND URLs: <mailto:RAMSES@env.ethz.ch> <http://www.sysecol.ethz.ch> <http://www.sysecol.ethz.ch/SimSoftware/RAMSES> Last revision of definition: 11/05/1997 AF *******************************************************************) TYPE StructModelSet = BITSET; Notifier = PROC; PROCEDURE AddNotifierIfActivated(modIdent: ARRAY OF CHAR; n: Notifier); PROCEDURE RemoveNotifierIfActivated(modIdent: ARRAY OF CHAR; n: Notifier); (* Adds respectively removes a notifier procedure which is called whenever the model with the identifier modIdent has been activated by a call to ActivateXYZMod. The message is sent after a completed system configuration (cf. procedure ChooseModel from module StructModAux). *) PROCEDURE AddNotifierIfDeactivated(modIdent: ARRAY OF CHAR; n: Notifier); PROCEDURE RemoveNotifierIfDeactivated(modIdent: ARRAY OF CHAR; n: Notifier); (* Adds respectively removes a notifier procedure which is called whenever the model with the identifier modIdent has been deactivated by a call to DeactivateXYZMod. The message is sent after a completed system configuration (cf. procedure ChooseModel from module StructModAux). *) PROCEDURE SetSubmodelName(which: INTEGER; modIdent: ARRAY OF CHAR); (* Associates the index number which returned by AssignSubModel from StructModAux for a particular sub model with its model identifier modIdent. *) PROCEDURE GetSubmodelName(which: INTEGER; VAR modIdent: ARRAY OF CHAR); (* Returns for a given index number which the associated model identifier modIdent. *) PROCEDURE SubmodelIndex(modIdent: ARRAY OF CHAR): INTEGER; (* Returns for the model identifier modIdent the associated index number ('which') as used by StructModAux to denote a particular submodel. *) PROCEDURE LearnAboutOldSysConfiguration(sms: StructModelSet); PROCEDURE InformAboutNewSysConfiguration(sms: StructModelSet); (* Dispatches all currently known notifiers *) END SubmodelSet.
|
||
|
|
|