ACE_Task 클래스는 내부에 쓰레드를 제어하는 ACE_Thread_Manager 클래스, 객체에 메세지를 전달할 때 사용하는 ACE_Message_Queue 클래스로 구성이 됩니다.
객체간의 메시지는 ACE_Message_Block으로 전달합니다.
ACE_Task 클래스는 ACE_Task_Base 클래스로부터 상속받습니다. ACE_Task_Base 클래스는 ACE_Thread_Manager 클래스를 운영하는 전반적인 기능과 open, close, svc, put 함수와 같은 훅 메서드를 정의하고 있습니다.
open 함수는 해당 객체가 Active Object 객체로 사용할지, Passive Object로 사용할지 파생 클래스가 결정하도록 합니다.
close 함수는 쓰레드가 종료될때 호출되는 함수입니다. 해당 함수가 호출되기전에 쓰레드 갯수에서 1를 뺀 상태입니다.
put 함수는 객체에 메세지를 전달할 때 사용되는 함수로, 파생 클래스에서 해당 함수에 대한 구현 정책을 결정해야 합니다. 일반적으로 메세지 큐에 데이터를 삽입하거나, 자체적으로 파싱하든지, 또는 일부는 파싱하고, 일부는 큐에 넣을지를 결정할 수 있습니다.
svc는 실제 내부 쓰레드가 호출하는 함수로 일반적으로 메세지 큐에서 데이터를 추출한 후 처리하는 일련의 과정을 구현합니다.