28.01.2015 Views

Hermes: A Tutorial and Reference Manual - Researcher - IBM

Hermes: A Tutorial and Reference Manual - Researcher - IBM

Hermes: A Tutorial and Reference Manual - Researcher - IBM

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

162B.6.OperationDescriptions call(...) TypeRules:SeeSpecialRules Preconditions: SpecialRules:Therstoper<strong>and</strong>mustbeinclassoutport,<strong>and</strong>itsassociatedinporttypemusthaveamessagetypeinclasscallmessage.The<br />

SeealsoSpecialRules callpreconditions() Exceptions:Depletion,Disconnected<br />

remainingoper<strong>and</strong>sarethecallarguments.Thenumberofarguments mustequalthenumberofcomponentsinthedenitionofthemessage type,<strong>and</strong>eachargumenttypemustbethesameasthecorresponding Postconditions:SeeSpecialRules<br />

intheinterface.Theexittypestatefornormalorexceptionalreturn rameterswillbecoerceddowniftheirtypestateishigherthanspecied includesinitoftherstoper<strong>and</strong>,plustypestatesforargumentsas inporttypedenition;argumentscorrespondingtonon-constantpa-<br />

typestatespeciedforthecorrespondingparameterintheassociated (e.g.arecordmaynotappearinthesameargumentlistasoneofits components).Therstoper<strong>and</strong>musthavetheinitattributeonentry.Eachargumentmusthaveatypestateatleastashighastheentry<br />

messagecomponenttype.Theargumentsmustnotoverlapinstorage<br />

Description:Therstoper<strong>and</strong>mustbeanoutputport.Formacallmessagebymovingallbuttherstoper<strong>and</strong>intosuccessivecallmessagtained,eveniftheydonotappearintheappropriateexittypestate.<br />

involvingonlyargumentscorrespondingtoconstantparametersarere-<br />

speciedinthecallmessagetypedenition.Additionally,attributes<br />

Qualier:absent ponentsbackintotheoper<strong>and</strong>variablesfromwhichtheyweretaken. returnofthecallmessage(includingexceptionreturns),moveitscom-<br />

case(result,variant) components,<strong>and</strong>thensendthecallmessageontheoutputport.On<br />

TypeRules: Preconditions: variant2variant<br />

casetypeof(variant) Exceptions:Depletion Seex11.8,p.121<br />

var(result) init(variant) Postconditions: makeinit(result)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!