unschedTm 메소드는
제한시간 요청을 취소합니다.
이 메소드는 다음과 같은 경우 사용됩니다.
- 상태 종료 - 제한시간과 더 이상 관련이 없습니다.
- 오브젝트가 영구 삭제됨 -
이 경우 해당 오브젝트와 연관된 모든 타이머가 영구 삭제됩니다.
unschedTm 메소드는
다음과 같은 방식으로 작동합니다.
- OMReactive 인스턴스가
없는 경우
unschedTm이 리턴하지만 그렇지 않은 경우 뮤텍스를
호출하여 다음 오퍼레이션을 보호합니다.
- id
== Constants이면 unschedTm은
대상이 OMReactive의 특정 인스턴스인 모든 이벤트를 취소합니다.
- unschedTm은 isCurrentEvent 메소드를 호출하여
현재 이벤트가 이 OMReactive에 위임되었는지 여부를 판별합니다.
위임된 경우 unschedTm은 findInList 메소드(개인용)를
호출하여 만기 목록에서 제한시간을 찾은 다음 만기 목록에서 해당 제한시간을 제거합니다.
- 그런 다음 unschedTm은
다음 항목에 대해
복제본 3개를 작성합니다.
- unschedTm 메소드는
힙에서
힙을 통과하면서 반복되고 Delete 메소드를 호출하여
대상이 특정 OMReactive인 제한시간을 삭제합니다.
- 마지막으로 이 메소드는 만기 목록에서 일치하는 제한시간을
검색합니다. 이 메소드는 findInList 메소드를 호출하여
만기 목록에서 반복해서 일치하는 제한시간을 찾습니다. 일치하는
제한시간을 찾으면 setlId 메소드를 호출하여
제한시간의 ID를 Constants로 설정한 다음 만기 목록에서 해당 제한시간을 제거합니다.
- id == Constants인 경우 unschedTm은
해당 이벤트만 취소합니다.
시그니처RP_FRAMEWORK_DLL void unschedTm (short id,
OMReactive *c);
매개변수id
제한시간 요청의 ID 태그를
지정합니다.
Constants가
지정되면 unschedTm은 대상이
OMReactive의 특정 인스턴스인 모든 이벤트를 취소합니다. Constants가
지정되면 unschedTm은
해당 제한시간만 취소합니다.
c
OMReactive 인스턴스 요청자에
포인터를 지정합니다. 제한시간이 취소되면 이 매개변수는 알림을 받은 인스턴스를
가리킵니다.
참고- 제한시간을 취소하면 다음 두 가지 조치 중 하나를 실행해야 합니다.
- 힙에서 제한시간 삭제
- 제한시간이 이미 디스패치된 경우 이벤트 큐 내에서
제한시간 취소. 이는 이벤트 큐를 반복하여 수행됩니다.
- 상태 차트 구현이 대체되면 unschedTm을 사용할 수 있습니다.
- unschedTm은
omthread.h에 정의된 unschedTm이
호출합니다.