트리거된 오퍼레이션 디스패치
디스패치 상태의 트리거된 오퍼레이션은
takeTrigger
메소드를 사용하여 이벤트를 이용합니다.
시작하기 전에
다음 시퀀스 다이어그램은 디스패치 상태의 트리거된 오퍼레이션(동기 이벤트)을 표시합니다.
이 태스크 정보
트리거된 오퍼레이션을 디스패치하려면 다음을 수행합니다.
프로시저
takeTrigger
메소드는 트리거된 오퍼레이션에 대해 호출됩니다.
takeTrigger
는
processEvent
메소드를 호출하여 이벤트를 이용합니다.
processEvent
는 다음을 수행합니다.
isBusy
를 호출하여 오브젝트가 이미 이벤트를 이용하고 있는지 여부를 판별합니다. 오브젝트가 사용 중이 아니면
processEvent
는
sm_busy
플래그를
TRUE
로 설정하고
getlId
를 호출하여 이벤트 ID를 가져옵니다.
processEvent
는
shouldCompleteRun
을 호출하여 이벤트가 이용된 후 수행할 널 상태 전이가 있는지 확인합니다. 사용할 널 상태 전이가 있으면 이 메소드는
runToCompletion
을 호출하여 해당 상태 전이를 사용합니다.
processEvent
는
undoBusy
를 호출하여
sm_busy
플래그를
FALSE
로 재설정합니다.
takeTrigger
에서는
shouldTerminate
및
setShouldDelete
메소드를 호출합니다.
(shouldTerminate() && shouldDelete())
가 1(또는
TRUE
)이면
takeTrigger
가 이벤트를 삭제합니다.
상위 주제:
Events
피드백