YggTransaction:
CEDAR DEFINITIONS =
BEGIN
TransID: TYPE = YggEnvironment.TransID;
IsTopLevel: PROC [transID: TransID] RETURNS [topLevel: BOOL];
EqualTrans: PROC [transID1: TransID, transID2: TransID] RETURNS [equal: BOOL];
CompareTrans: PROC [transID1: TransID, transID2: TransID] RETURNS [comp: PBasics.Comparison];
CreateTrans: PROC [parentTransID: TransID] RETURNS [transID: TransID];
NotePossibleDocumentUpdate: PROC [transID: TransID, vDoc: YggRep.VDoc];
GetPossibleDocumentUpdates:
PROC [transID: TransID]
RETURNS [ vDocs:
LIST
OF YggRep.VDoc];
GetDefaultContainer: PROC [transID: TransID] RETURNS [YggEnvironment.DID];
SetDefaultContainer:
PROC [transID: TransID, did: YggEnvironment
.DID];
RequestedOutcome: TYPE = YggEnvironment.CommitOrAbort;
Outcome: TYPE = YggEnvironment.Outcome;
Check: PROC [ transID: TransID] RETURNS [outcome: Outcome];
GetParent: PROC [ transID: TransID] RETURNS [transFound: BOOL, parentTransID: TransID];
IsNullTrans: PROC [ transID: TransID] RETURNS [null: BOOL];
Suspend: PROC [transID: TransID, status: INT];
Finish: PROC [transID: TransID, requestedOutcome: RequestedOutcome --{abort, commit}--] RETURNS [outcome: Outcome --{abort, commit, unknown}--];
Unknown: ERROR [what: YggEnvironment.UnknownType];
OperationFailed: ERROR [why: YggEnvironment.OperationFailure];