Proud::INTServiceEvent 클래스 참조abstract

Public 멤버 함수

virtual void Log (int type, const PNTCHAR *text)=0
 
virtual void Run ()=0
 
virtual void Stop ()=0
 
virtual void Pause ()=0
 
virtual void Continue ()=0
 

상세한 설명

CNTService 가 필요로 하는 event sink 객체

이 객체는 CNTService 가 요구하는 다음 기능을 제공하는 역할을 한다. 유저는 이 클래스를 구현해야 한다.

  • 서버 메인 루틴
  • 로그 남기기 함수 등 추가 기능

멤버 함수 문서화

virtual void Proud::INTServiceEvent::Log ( int  type,
const PNTCHAR *  text 
)
pure virtual

이벤트 로그를 남긴다.

매개변수
typeEVENTLOG_ERROR_TYPE,EVENTLOG_WARNING_TYPE,EVENTLOG_INFORMATION_TYPE 중 하나
text남길 문자열
virtual void Proud::INTServiceEvent::Run ( )
pure virtual

서비스 모듈 메인 함수 이 함수는 서비스 모듈에 의해 호출되는 메인 함수이다. 이 함수에 서버 프로그램 메인 루틴이 호출되어야 한다. 이 함수가 리턴할 때 서비스가 종료한다.

요구 사항

  • 이 함수 내부에서 키 입력에 의한 종료 또는 Win32 메시지 프로세스 루틴이 반드시 들어가야 한다. 왜냐하면 SCM에 의해 서비스 종료 명령이 주어질 경우 WM_QUIT을 수신하기 때문이다. 아래의 예제 코드를 참고하라.

참고

  • argc,argv는 CNTService::Instance() 로부터 얻을 수 있다. 그밖에 CNTService::Instance() 로부터 여러가지 옵션을 얻을 수 있다.

예제 소스

while(1)
{
Sleep(100);
if(_kbhit())
{
switch(getch())
{
case VK_ESCAPE:
break;
}
}
MSG msg;
// 최대 일정 짧은 시간동안, 콘솔 입력, 윈도 메시지 수신, 메인 스레드 종료 중 하나를 기다린다.
MsgWaitForMultipleObjects(0,0,TRUE,100,QS_ALLEVENTS);
if(PeekMessage(&msg,NULL,0,0,PM_NOREMOVE))
{
if(!GetMessage(&msg,NULL,NULL,NULL))
break;
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}