Proud::CNTService 클래스 참조
Proud::CNTService에 대한 상속 다이어그램 :

Public 멤버 함수

void GetArgv_Internal (CFastArray< String > &output)
 
void GetEnvp_Internal (CFastArray< String > &output)
 
void GetArgvFromSCM_Internal (CFastArray< String > &output)
 
const PNTCHAR * GetName ()
 
bool IsStartedBySCM () const
 
bool FindArg (const PNTCHAR *name)
 
String CreateArg ()
 
BOOL IsInstalled ()
 
void FrequentWarning (const PNTCHAR *text)
 
void FrequentWarningWithCallStack (const PNTCHAR *text)
 

정적 Public 멤버 함수

static void WinMain (int argc, char *argv[], char *envp[], CNTServiceStartParameter &param)
 
static void WinMain (int argc, wchar_t *argv[], wchar_t *envp[], CNTServiceStartParameter &param)
 
static void GetArgv (CFastArray< String > &output)
 
static void GetEnvp (CFastArray< String > &output)
 
static void GetArgvFromSCM (CFastArray< String > &output)
 
- Proud::CSingleton< CNTService >(으)로부터 상속된 정적 Public 멤버 함수
static _Noinline PtrType GetSharedPtr ()
 
static CNTServiceGetUnsafeRef ()
 

추가로 상속된 멤버들

- Proud::CSingleton< CNTService >(으)로부터 상속된 Public 타입
typedef RefCount< CNTServicePtrType
 

상세한 설명

Windows 서비스 (daemon) 모듈 클래스

  • CNTService 는 singleton 이다. 그냥 Instance()로 접근하면 된다.

일반적 용법

  • ::WinMain 이나 ::main()에서 WinMain()을 호출한다. 파라메터는 ::WinMain 이나 ::main()에서 받은 것을 넘기면 된다. 이때 미리 준비한 INTServiceEvent 객체를 attach해야 한다.
  • IsInstalled(), IsStartedBySCM() 등을 통해 서비스 실행에 관련된 여러가지 설정 상태를 얻을 수 있다.

프로그램 실행 파라메터

  • -AR : SCM에 등록 시 이 옵션을 추가하면 서비스가 크래쉬 시 몇분 후에 자동 시작하게 한다. 편리한 기능이지만 디버깅중이라면 오히려 짜증을 유발함에 주의.
  • -install : SCM에 등록한다.
  • -uninstall : SCM에서 등록 해제한다.
  • -console : 이 옵션은 서비스를 일반 EXE 형태로 실행하게 한다. 디버깅을 해야 하는 상황 등 SCM에서의 실행을 원하지 않는 경우 이 옵션을 써야 한다.

멤버 함수 문서화

const PNTCHAR* Proud::CNTService::GetName ( )

INTServiceEvent 에서 얻은 이름을 리턴한다.

bool Proud::CNTService::IsStartedBySCM ( ) const

SCM에 의해 실행된 상태인가?

static void Proud::CNTService::WinMain ( int  argc,
char *  argv[],
char *  envp[],
CNTServiceStartParameter param 
)
static

서비스 모듈 메인 함수. main()이나 ::WinMain()에서 이 메서드를 호출해야 한다. 다음 기능을 담당한다.

  • 실행 파라메터 처리: 서비스 등록/해제, 콘솔 모드 실행 등
  • 이벤트 싱크 객체 가져오기
  • 서비스 메인 함수(INTServiceEvent.Run()) 실행
    매개변수
    argcmain()에서 받은 값
    argvmain()에서 받은 값
    envpmain()에서 받은 값
    paramCNTService의 설정 값
static void Proud::CNTService::WinMain ( int  argc,
wchar_t *  argv[],
wchar_t *  envp[],
CNTServiceStartParameter param 
)
static

서비스 모듈 메인 함수. main()이나 ::WinMain()에서 이 메서드를 호출해야 한다. 다음 기능을 담당한다.

  • 실행 파라메터 처리: 서비스 등록/해제, 콘솔 모드 실행 등
  • 이벤트 싱크 객체 가져오기
  • 서비스 메인 함수(INTServiceEvent.Run()) 실행
    매개변수
    argcmain()에서 받은 값
    argvmain()에서 받은 값
    envpmain()에서 받은 값
    paramCNTService의 설정 값