이벤트 생성자 및 소멸자

생성자 및 소멸자는 패키지 스펙 파일에서 이벤트에 대해 정의됩니다. 예를 들면, 다음과 같습니다.

/* Constructors and destructors: */
ev1 * RiC_Create_ev1();
void ev1_Init(ev1* const me);
void ev1_Cleanup(ev1* const me);
void RiC_Destroy_ev1(ev1* const me);

이벤트 작성 및 영구 삭제 오퍼레이션의 이름은 이벤트 초기화 및 정리 오퍼레이션의 이름과 약간 다른 패턴을 가지고 있습니다.

패키지에 대한 구현 파일에서 이벤트 생성자 및 소멸자의 구현이 생성됩니다. 예를 들면, 다음과 같습니다.

ev1 * RiC_Create_ev1() {
   ev1* me = (ev1*) malloc(sizeof(ev1));
   ev1_Init(me);
   return me;
}

동적으로 할당되는 이벤트를 사용하여, 작성자 함수는 이벤트에 대한 메모리를 할당하고 이벤트 초기자(initializer)를 통해 이벤트를 초기화합니다.

void ev1_Init(ev1* const me) {
   RiCEvent_init(&me->ric_event, ev1_Default_id, NULL);
   me->ric_event.lId = ev1_Default_id;
}
void ev1_Cleanup(ev1* const me) {
   RiCEvent_cleanup(&me->ric_event);
}
void RiCDestroy_ev1(ev1* const me) {
   ev1_Cleanup(me);
   free(me);
}
참고: 런타임 시 동적 메모리 할당을 사용하는 것이 아니라, 런타임 시작 시 이벤트에 대한 메모리의 블록을 정적으로 할당할 수 있습니다. 자세한 정보는 이벤트의 정적 할당의 내용을 참조하십시오.

이벤트 생성 및 전송에 대한 정보는 이벤트 보내기의 내용을 참조하십시오.


피드백