<> <> <> <> DIRECTORY AccessControl USING[AssertAlpineWheel, OperationFailed], AlpineEnvironment USING[Conversation, TransID], AlpineTransaction USING[OperationFailed], FilePrivate USING[EstablishTransactionContext, TransactionWork]; MiscActionsImpl: PROGRAM IMPORTS AC: AccessControl, AT: AlpineTransaction, FP: FilePrivate EXPORTS AlpineTransaction = BEGIN OPEN AE: AlpineEnvironment; <> AssertAlpineWheel: PUBLIC PROCEDURE[conversation: AE.Conversation, transID: AE.TransID, enable: BOOLEAN] = BEGIN -- non system-fatal errors: OperationFailed[notAlpineWheel, regServersUnavailable], Unknown[transID]. Work: FP.TransactionWork --[trans, pUpdateCost]-- = BEGIN IF NOT AC.AssertAlpineWheel[conversation, trans, enable ! AC.OperationFailed => GOTO opFailed] THEN ERROR AT.OperationFailed[notAlpineWheel]; EXITS opFailed => ERROR AT.OperationFailed[regServersUnavailable]; END; -- Work FP.EstablishTransactionContext[conversation, transID, Work]; END; END.