OMTimeout 클래스

제한시간은 지정한 시간 간격이 만기되었음을 알리는 데 사용됩니다. 즉, 제한시간은 UML 시간 이벤트를 구현합니다.

제한시간은 제한시간 상태 전이와 함께 상태로 전환된 인스턴스 또는 사용자 코드의 지연 요청에 따라 작성됩니다. 후자의 경우 이 이벤트의 timeoutDelayId는 다음과 같습니다.
const short timeoutDelayId = -1;

OMTimeout 클래스는 헤더 파일인 event.h에 선언되어 있습니다.

OMTimeout은 다음 비교 함수를 사용하여 힙 구조를 조작합니다.
int operator==(OMTimeout& tn)
{OMBoolean matchDest = getDestination() ==
tn.getDestination();
OMBoolean matchId = ((getTimeoutId() ==
tn.getTimeoutId()) || (getTimeoutId() ==
OMEventAnyEventId) ||
(OMEventAnyEventId == tn.getTimeoutId()));
return (matchDest && matchId);
}
int operator>(OMTimeout& tn) {return dueTime >
tn.dueTime;}
int operator<(OMTimeout& tn) {return dueTime <
tn.dueTime;}

속성 요약
timeoutDelayId - 사용자 코드에서 지연 요청을 식별합니다.
매크로 요약
DECLARE_MEMORY_ALLOCATOR - 제한시간에 대한 메모리 풀을 선언하는 메소드 세트를 지정합니다.
생성 요약
OMTimeout
OMTimeout 오브젝트를 생성합니다.
~OMTimeout
OMTimeout 오브젝트를 영구 삭제합니다.
메소드 요약
operator ==
destinationTimeout의 현재 값이 지정한 제한시간의 현재 값과 동일한지 여부를 판별합니다.
operator >
Timeout의 현재 값이 지정한 제한시간의 기한보다 큰지 여부를 판별합니다.
~OMCollection
Timeout의 현재 값이 지정한 제한시간의 기한보다 작은지 여부를 판별합니다.
Delete
힙에서 제한시간을 삭제합니다.
getDelay
delayTime의 현재 값을 리턴합니다.
getDueTime
힙에 저장된 제한시간 요청의 기한을 리턴합니다.
getTimeoutId
timeoutId의 현재 값을 리턴합니다.
isNotDelay
제한시간 이벤트가 제한시간 연기인지 여부를 판별합니다.
new
추가 메모리를 할당합니다.
setDelay
Timeout의 값을 설정합니다.
setDueTime
Timeout 속성 값을 지정합니다.
setRelativeDueTime
현재 시스템 시간 및 요청한 지연 시간을 기준으로 제한시간에 대한 기한을 계산 및 설정합니다.
setState
프레임워크에서 현재 상태를 설정하는 데 사용합니다.
setTimeoutId
timeoutId 값을 지정합니다.
속성

timeoutDelayId

이러한 글로벌 속성은 사용자 코드에서 지연 요청을 식별합니다. 이는 다음과 같이 정의합니다.

const short timeoutDelayId = -1;
매크로

DECLARE_MEMORY_ALLOCATOR

이러한 공용 매크로는 제한시간에 대한 메모리 풀을 선언하는 메소드 세트를 지정합니다. 제한시간의 기본값은 100입니다.

DECLARE_MEMORY_ALLOCATOR 매크로는 다음과 같이 MemAlloc.h에 정의되어 있습니다.

#define DECLARE_MEMORY_ALLOCATOR (CLASSNAME)
   
   public:
   
   CLASSNAME * OMMemoryPoolNextChunk;
   DECLARE_ALLOCATION_OPERATORS
      static void OMMemoryPoolIsEmpty();
      static void OMMemoryPoolSetIncrement(int value);
      static void OMCallMemoryPoolIsEmpty(
         OMBoolean flagValue);
      static void OMSetMemoryAllocator(
         CLASSNAME*(*newAllocator)(int));

피드백