|
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 |
이벤트 로그를 남긴다.
- 매개변수
-
type | EVENTLOG_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);
}
}