File: NT_Service_h.3

package info (click to toggle)
ace 5.2.1-1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 26,856 kB
  • ctags: 18,677
  • sloc: cpp: 171,831; makefile: 48,840; sh: 10,192; perl: 8,582; exp: 787; yacc: 387; lex: 140; csh: 20
file content (129 lines) | stat: -rw-r--r-- 4,429 bytes parent folder | download
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.