gen 메소드는
송신자 오브젝트에서 수신자 오브젝트로 오브젝트를 전송하는 데 사용한
오버로드된 공용 메소드입니다. gen은 먼저 수신자
오브젝트가 소멸 중인지 여부를 확인합니다.
인스트루먼테이션되지
않은 코드에서는 gen(OMEvent) 호출이면 항상 충분합니다. 또한 이 호출은 notifyContextSwitch 메소드를 포함하는
경우에는 인스트루먼테이션된 코드에서도 충분합니다.
여러 스레드가 인스트루먼테이션된 애플리케이션에서는
gen(OMEvent* event, void* sender) 호출을 사용해야 합니다.
송신자가 GUI 요소이면 gen(theEvent,
OMGUI) 구문을 사용합니다. OMGui는 aoxf.h 파일에 정의되어 있습니다.
시그니처virtual OMBoolean gen (OMEvent *event,
OMBoolean genFromISR = FALSE);
virtual OMBoolean gen (OMEvent *event, void * sender);
void gen (AOMEvent *theEvent, void * sender)
시그니처 1의
매개변수event
반응 오브젝트로 전송되는 이벤트에 대한
포인터를 지정합니다.
genFromISR
이벤트를 운영 체제
ISR(인터럽트 서비스 요청)에서 가져온 것인지 여부를 나타냅니다. 그런 경우
특수 처리가 필요합니다.
시그니처 2의
매개변수event
전송할 이벤트를 지정합니다.
sender
이벤트를 전송하는 오브젝트를 지정합니다.
시그니처 3의 매개변수theEvent
전송할 이벤트를 지정합니다.
sender
이벤트를 전송하는 오브젝트를 지정합니다.
리턴값이 메소드는
다음 부울 값 중 하나를 리턴합니다.
- TRUE - 이벤트가 큐에 대기되었습니다.
- FALSE - 이벤트가 큐에 대기되지 않았습니다.
참고- 일반적으로 gen 메소드는 사용자가
작성한 조치 및 메소드 내에서 사용됩니다.
- 다른 메소드 호출 간의 다음 차이점에 주의하십시오.
- 첫 번째 메소드 구문은 송신자를 지정하지 않습니다. gen은 먼저 수신자
오브젝트가 소멸 중인지 여부를 확인합니다.
- 이 메소드 버전은 다음 매크로에 따라 확장됩니다.
- 두 번째 버전의 메소드는 외부 요소(예: GUI)에서 이벤트를
전송하는 데 사용됩니다. 이러한 메소드는
호출 스택의 "최상위"를 송신자로 등록합니다.
- 이 메소드 버전은
OMGuard 클래스 매크로에 따라 확장됩니다.
이러한 매크로도 이벤트를 작성합니다. - genFromISR 플래그는
ISR 중 자원 사용에 대한 제한사항(예: 메모리 할당 없음 또는 세마포어에서 대기)이
있는 RTOS(예: VxWorks)를 지원합니다.
- 프레임워크 사용자 정의를 확장하기 위해 버전 3.0에서는
gen 메소드가 가상으로 설정되었습니다.