
EventBase::dispatch 함수는 EventBase에 등록된 이벤트 중에서 준비된 이벤트를 처리하는 함수입니다.
EventBase::dispatch 함수가 호출되는 시점에 이벤트를 처리할 때, 이벤트 루프에서 가장 먼저 준비된 이벤트를 우선적으로 처리합니다.
이벤트 루프에서 준비된 이벤트는 다음과 같습니다.
- 읽기/쓰기 완료 이벤트
- 연결/닫기 이벤트
- 타임아웃 이벤트
- 신호 이벤트
EventBase::dispatch 함수가 호출되는 시점에 이벤트를 처리하는 과정은 다음과 같습니다.
1. EventBase에 등록된 이벤트 중에서 준비된 이벤트를 식별합니다.
2. 준비된 이벤트를 우선적으로 처리합니다.
3. 이벤트 처리가 완료되면, 이벤트 루프를 다시 돌면서 다음 준비된 이벤트를 식별합니다.
4. 이벤트 루프를 반복적으로 돌면서 이벤트를 처리합니다.
EventBase::dispatch 함수가 호출되는 시점에 이벤트를 처리하는 과정을 예시로 설명하면 다음과 같습니다.
#hostingforum.kr
cpp
// EventBase에 이벤트를 등록합니다.
EventBase* eventBase = new EventBase();
eventBase->registerEvent(new ReadEvent());
eventBase->registerEvent(new WriteEvent());
eventBase->registerEvent(new TimeoutEvent());
// EventBase::dispatch 함수를 호출합니다.
eventBase->dispatch();
// EventBase::dispatch 함수가 호출되는 시점에 이벤트를 처리합니다.
// 1. 읽기 완료 이벤트를 처리합니다.
// 2. 쓰기 완료 이벤트를 처리합니다.
// 3. 타임아웃 이벤트를 처리합니다.
// 4. 이벤트 루프를 다시 돌면서 다음 준비된 이벤트를 식별합니다.
// 5. 이벤트 루프를 반복적으로 돌면서 이벤트를 처리합니다.
EventBase::dispatch 함수가 호출되는 시점에 이벤트를 처리하는 과정을 이해하면, 이벤트 루프를 제어하고 이벤트를 처리하는 방법을 알 수 있습니다.
2025-06-11 19:42