1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
|
.TH NT_Service_h 3 "1 Dec 2001" "ACE" \" -*- nroff -*-
.ad l
.nh
.SH NAME
NT_Service_h \-
.SH SYNOPSIS
.br
.PP
\fC#include "ace/pre.h"\fR
.br
\fC#include "ace/config-all.h"\fR
.br
\fC#include "ace/Service_Object.h"\fR
.br
\fC#include "ace/Synch.h"\fR
.br
\fC#include "ace/Task.h"\fR
.br
\fC#include "ace/post.h"\fR
.br
.SS Compounds
.in +1c
.ti -1c
.RI "class \fBACE_NT_Service\fR"
.br
.in -1c
.SS Defines
.in +1c
.ti -1c
.RI "#define \fBACE_NT_SERVICE_START_TIMEOUT\fR 5000"
.br
.ti -1c
.RI "#define \fBACE_NT_SERVICE_DEFINE\fR(SVCNAME, SVCCLASS, SVCDESC) "
.br
.ti -1c
.RI "#define \fBACE_NT_SERVICE_REFERENCE\fR(SVCNAME) "
.br
.ti -1c
.RI "#define \fBACE_NT_SERVICE_ENTRY\fR(SVCDESC, SVCNAME) "
.br
.ti -1c
.RI "#define \fBACE_NT_SERVICE_RUN\fR(SVCNAME, SVCINSTANCE, RET) "
.br
.in -1c
.SH DETAILED DESCRIPTION
.PP
.PP
\fBNT_Service.h\fR,v 4.19 2001/07/10 17:17:13 schmidt Exp
.PP
\fBAuthor(s): \fR
.in +1c
Steve Huston <shuston@riverace.com>
.PP
.SH DEFINE DOCUMENTATION
.PP
.SS #define ACE_NT_SERVICE_DEFINE(SVCNAME, SVCCLASS, SVCDESC)
.PP
\fBInitializer:\fR
.PP
.nf
\
ACE_NT_Service * _ace_nt_svc_obj_##SVCNAME = 0; \
VOID WINAPI ace_nt_svc_handler_##SVCNAME (DWORD fdwControl) { \
_ace_nt_svc_obj_##SVCNAME->handle_control(fdwControl); \
} \
VOID WINAPI ace_nt_svc_main_##SVCNAME (DWORD dwArgc, \
ACE_TCHAR **lpszArgv) { \
int delete_svc_obj = 0; \
if (_ace_nt_svc_obj_##SVCNAME == 0) { \
ACE_NEW (_ace_nt_svc_obj_##SVCNAME, SVCCLASS); \
if (_ace_nt_svc_obj_##SVCNAME == 0) \
return; \
delete_svc_obj = 1; \
} \
_ace_nt_svc_obj_##SVCNAME->init(dwArgc, lpszArgv); \
_ace_nt_svc_obj_##SVCNAME->svc_handle( \
ACE_TEXT_RegisterServiceCtrlHandler(SVCDESC, \
&ace_nt_svc_handler_##SVCNAME)); \
_ace_nt_svc_obj_##SVCNAME->open(); \
_ace_nt_svc_obj_##SVCNAME->wait(); \
_ace_nt_svc_obj_##SVCNAME->fini(); \
if (delete_svc_obj) { \
delete _ace_nt_svc_obj_##SVCNAME; \
_ace_nt_svc_obj_##SVCNAME = 0; \
} \
return; \
}
.fi
.SS #define ACE_NT_SERVICE_ENTRY(SVCDESC, SVCNAME)
.PP
\fBInitializer:\fR
.PP
.nf
\
{ SVCDESC, &ace_nt_svc_main_##SVCNAME }
.fi
.SS #define ACE_NT_SERVICE_REFERENCE(SVCNAME)
.PP
\fBInitializer:\fR
.PP
.nf
\
extern ACE_NT_Service * _ace_nt_svc_obj_##SVCNAME; \
extern VOID WINAPI ace_nt_svc_main_##SVCNAME (DWORD dwArgc, \
ACE_TCHAR **lpszArgv);
.fi
.SS #define ACE_NT_SERVICE_RUN(SVCNAME, SVCINSTANCE, RET)
.PP
\fBInitializer:\fR
.PP
.nf
\
ACE_TEXT_SERVICE_TABLE_ENTRY _ace_nt_svc_table[2] = \
{ \
ACE_NT_SERVICE_ENTRY(ACE_TEXT (#SVCNAME), SVCNAME), \
{ 0, 0 } \
}; \
_ace_nt_svc_obj_##SVCNAME = SVCINSTANCE; \
ACE_OS::last_error (0); \
int RET = ACE_TEXT_StartServiceCtrlDispatcher(_ace_nt_svc_table);
.fi
.SS #define ACE_NT_SERVICE_START_TIMEOUT 5000
.PP
.SH AUTHOR
.PP
Generated automatically by Doxygen for ACE from the source code.
|