File: ACE_Strategy_Acceptor.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 (321 lines) | stat: -rw-r--r-- 15,572 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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
.TH ACE_Strategy_Acceptor 3 "1 Dec 2001" "ACE" \" -*- nroff -*-
.ad l
.nh
.SH NAME
ACE_Strategy_Acceptor \- Abstract factory for creating a service handler (SVC_HANDLER), accepting into the SVC_HANDLER, and activating the SVC_HANDLER. 
.SH SYNOPSIS
.br
.PP
\fC#include <Acceptor.h>\fR
.PP
Inherits \fBACE_Acceptor< SVC_HANDLER,ACE_PEER_ACCEPTOR_2 >\fR.
.PP
.SS Public Methods

.in +1c
.ti -1c
.RI "\fBACE_Strategy_Acceptor\fR (const \fBACE_TCHAR\fR service_name[] = 0, const \fBACE_TCHAR\fR service_description[] = 0, int use_select = 1)"
.br
.RI "\fIDefault constructor.\fR"
.ti -1c
.RI "\fBACE_Strategy_Acceptor\fR (const ACE_PEER_ACCEPTOR_ADDR &local_addr, \fBACE_Reactor\fR * = ACE_Reactor::instance (), \fBACE_Creation_Strategy\fR<SVC_HANDLER> * = 0, \fBACE_Accept_Strategy\fR<SVC_HANDLER, ACE_PEER_ACCEPTOR_2> * = 0, \fBACE_Concurrency_Strategy\fR<SVC_HANDLER> * = 0, \fBACE_Scheduling_Strategy\fR<SVC_HANDLER> * = 0, const \fBACE_TCHAR\fR service_name[] = 0, const \fBACE_TCHAR\fR service_description[] = 0, int use_select = 1)"
.br
.ti -1c
.RI "int \fBopen\fR (const ACE_PEER_ACCEPTOR_ADDR &, \fBACE_Reactor\fR * = ACE_Reactor::instance (), \fBACE_Creation_Strategy\fR<SVC_HANDLER> * = 0, \fBACE_Accept_Strategy\fR<SVC_HANDLER, ACE_PEER_ACCEPTOR_2> * = 0, \fBACE_Concurrency_Strategy\fR<SVC_HANDLER> * = 0, \fBACE_Scheduling_Strategy\fR<SVC_HANDLER> * = 0, const \fBACE_TCHAR\fR *service_name = 0, const \fBACE_TCHAR\fR *service_description = 0, int use_select = 1)"
.br
.ti -1c
.RI "virtual \fB~ACE_Strategy_Acceptor\fR (void)"
.br
.RI "\fIClose down the Strategy_Acceptor's resources.\fR"
.ti -1c
.RI "virtual \fBoperator ACE_PEER_ACCEPTOR &\fR () const"
.br
.RI "\fIReturn the underlying PEER_ACCEPTOR object.\fR"
.ti -1c
.RI "virtual ACE_PEER_ACCEPTOR& \fBacceptor\fR (void) const"
.br
.RI "\fIReturn the underlying PEER_ACCEPTOR object.\fR"
.ti -1c
.RI "virtual ACE_HANDLE \fBget_handle\fR (void) const"
.br
.RI "\fIReturns the listening acceptor's .\fR"
.ti -1c
.RI "void \fBdump\fR (void) const"
.br
.RI "\fIDump the state of an object.\fR"
.in -1c
.SS Public Attributes

.in +1c
.ti -1c
.RI "\fBACE_ALLOC_HOOK_DECLARE\fR"
.br
.RI "\fIDeclare the dynamic allocation hooks.\fR"
.in -1c
.SS Protected Types

.in +1c
.ti -1c
.RI "typedef \fBACE_Creation_Strategy\fR<SVC_HANDLER> \fBCREATION_STRATEGY\fR"
.br
.ti -1c
.RI "typedef \fBACE_Accept_Strategy\fR<SVC_HANDLER, ACE_PEER_ACCEPTOR_2> \fBACCEPT_STRATEGY\fR"
.br
.ti -1c
.RI "typedef \fBACE_Concurrency_Strategy\fR<SVC_HANDLER> \fBCONCURRENCY_STRATEGY\fR"
.br
.ti -1c
.RI "typedef \fBACE_Scheduling_Strategy\fR<SVC_HANDLER> \fBSCHEDULING_STRATEGY\fR"
.br
.in -1c
.SS Protected Methods

.in +1c
.ti -1c
.RI "virtual int \fBsuspend\fR (void)"
.br
.RI "\fIThis method delegates to the <Scheduling_Strategy>'s <suspend> method.\fR"
.ti -1c
.RI "virtual int \fBresume\fR (void)"
.br
.RI "\fIThis method delegates to the <Scheduling_Strategy>'s <resume> method.\fR"
.ti -1c
.RI "virtual int \fBfini\fR (void)"
.br
.RI "\fICalls <handle_close> when dynamically unlinked.\fR"
.ti -1c
.RI "virtual int \fBinfo\fR (\fBACE_TCHAR\fR **buf, size_t) const"
.br
.RI "\fIDefault version returns address info in <buf>.\fR"
.ti -1c
.RI "virtual int \fBmake_svc_handler\fR (SVC_HANDLER *&)"
.br
.ti -1c
.RI "virtual int \fBaccept_svc_handler\fR (SVC_HANDLER *svc_handler)"
.br
.ti -1c
.RI "virtual int \fBactivate_svc_handler\fR (SVC_HANDLER *svc_handler)"
.br
.ti -1c
.RI "virtual int \fBhandle_close\fR (ACE_HANDLE = ACE_INVALID_HANDLE, \fBACE_Reactor_Mask\fR = ACE_Event_Handler::ALL_EVENTS_MASK)"
.br
.RI "\fIPerform termination activities when <this> is removed from the <Reactor>.\fR"
.ti -1c
.RI "virtual int \fBhandle_signal\fR (int signum, \fBsiginfo_t\fR *, \fBucontext_t\fR *)"
.br
.RI "\fIHandle SIGINT.\fR"
.in -1c
.SS Protected Attributes

.in +1c
.ti -1c
.RI "\fBCREATION_STRATEGY\fR* \fBcreation_strategy_\fR"
.br
.RI "\fICreation strategy for an Acceptor.\fR"
.ti -1c
.RI "int \fBdelete_creation_strategy_\fR"
.br
.RI "\fI1 if  created the creation strategy and thus should delete it, else 0.\fR"
.ti -1c
.RI "\fBACCEPT_STRATEGY\fR* \fBaccept_strategy_\fR"
.br
.RI "\fIAccept strategy for an .\fR"
.ti -1c
.RI "int \fBdelete_accept_strategy_\fR"
.br
.RI "\fI1 if  created the accept strategy and thus should delete it, else 0.\fR"
.ti -1c
.RI "\fBCONCURRENCY_STRATEGY\fR* \fBconcurrency_strategy_\fR"
.br
.RI "\fIConcurrency strategy for an .\fR"
.ti -1c
.RI "int \fBdelete_concurrency_strategy_\fR"
.br
.RI "\fI1 if  created the concurrency strategy and thus should delete it, else 0.\fR"
.ti -1c
.RI "\fBSCHEDULING_STRATEGY\fR* \fBscheduling_strategy_\fR"
.br
.RI "\fIScheduling strategy for an .\fR"
.ti -1c
.RI "int \fBdelete_scheduling_strategy_\fR"
.br
.RI "\fI1 if  created the scheduling strategy and thus should delete it, else 0.\fR"
.ti -1c
.RI "\fBACE_TCHAR\fR* \fBservice_name_\fR"
.br
.RI "\fIName of the service.\fR"
.ti -1c
.RI "\fBACE_TCHAR\fR* \fBservice_description_\fR"
.br
.RI "\fIDescription of the service.\fR"
.ti -1c
.RI "u_short \fBservice_port_\fR"
.br
.RI "\fIPort number for the server.\fR"
.ti -1c
.RI "ACE_PEER_ACCEPTOR_ADDR \fBservice_addr_\fR"
.br
.RI "\fIAddress that the <Strategy_Acceptor> uses to listen for connections.\fR"
.in -1c
.SH DETAILED DESCRIPTION
.PP 

.SS template<class SVC_HANDLER, ACE_PEER_ACCEPTOR_1>  template class ACE_Strategy_Acceptor
Abstract factory for creating a service handler (SVC_HANDLER), accepting into the SVC_HANDLER, and activating the SVC_HANDLER.
.PP
.PP
 Implements a flexible and extensible set of strategies for passively establishing connections with clients. There are three main strategies: (1) creating a SVC_HANDLER, (2) passively accepting a new connection from a client into the SVC_HANDLER, and (3) activating the SVC_HANDLER with a particular concurrency mechanism. 
.PP
.SH MEMBER TYPEDEF DOCUMENTATION
.PP 
.SS template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1> typedef \fBACE_Accept_Strategy\fR<SVC_HANDLER, ACE_PEER_ACCEPTOR_2> ACE_Strategy_Acceptor<SVC_HANDLER, >::ACCEPT_STRATEGY\fC [protected]\fR
.PP
.SS template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1> typedef \fBACE_Concurrency_Strategy\fR<SVC_HANDLER> ACE_Strategy_Acceptor<SVC_HANDLER, >::CONCURRENCY_STRATEGY\fC [protected]\fR
.PP
.SS template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1> typedef \fBACE_Creation_Strategy\fR<SVC_HANDLER> ACE_Strategy_Acceptor<SVC_HANDLER, >::CREATION_STRATEGY\fC [protected]\fR
.PP
.SS template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1> typedef \fBACE_Scheduling_Strategy\fR<SVC_HANDLER> ACE_Strategy_Acceptor<SVC_HANDLER, >::SCHEDULING_STRATEGY\fC [protected]\fR
.PP
.SH CONSTRUCTOR & DESTRUCTOR DOCUMENTATION
.PP 
.SS template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1> ACE_Strategy_Acceptor<SVC_HANDLER, >::ACE_Strategy_Acceptor<SVC_HANDLER, > (const \fBACE_TCHAR\fR service_name[] = 0, const \fBACE_TCHAR\fR service_description[] = 0, int use_select = 1)
.PP
Default constructor.
.PP
.SS template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1> ACE_Strategy_Acceptor<SVC_HANDLER, >::ACE_Strategy_Acceptor<SVC_HANDLER, > (const ACE_PEER_ACCEPTOR_ADDR & local_addr, \fBACE_Reactor\fR * = ACE_Reactor::instance (), \fBACE_Creation_Strategy\fR< SVC_HANDLER >* = 0, \fBACE_Accept_Strategy\fR< SVC_HANDLER,ACE_PEER_ACCEPTOR_2 >* = 0, \fBACE_Concurrency_Strategy\fR< SVC_HANDLER >* = 0, \fBACE_Scheduling_Strategy\fR< SVC_HANDLER >* = 0, const \fBACE_TCHAR\fR service_name[] = 0, const \fBACE_TCHAR\fR service_description[] = 0, int use_select = 1)
.PP
Initialize the appropriate strategies for creation, passive connection acceptance, and concurrency, and then register <this> with the Reactor and listen for connection requests at the designated <local_addr>. 
.SS template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1> ACE_Strategy_Acceptor<SVC_HANDLER, >::~ACE_Strategy_Acceptor<SVC_HANDLER, > (void)\fC [virtual]\fR
.PP
Close down the Strategy_Acceptor's resources.
.PP
.SH MEMBER FUNCTION DOCUMENTATION
.PP 
.SS template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1> int ACE_Strategy_Acceptor<SVC_HANDLER, >::accept_svc_handler (SVC_HANDLER * svc_handler)\fC [protected, virtual]\fR
.PP
Bridge method for accepting the new connection into the <SVC_HANDLER>. The default behavior delegates to the <PEER_ACCEPTOR::accept> in the . 
.PP
Reimplemented from \fBACE_Acceptor\fR.
.SS template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1> ACE_PEER_ACCEPTOR & ACE_Strategy_Acceptor<SVC_HANDLER, >::acceptor (void) const\fC [virtual]\fR
.PP
Return the underlying PEER_ACCEPTOR object.
.PP
Reimplemented from \fBACE_Acceptor\fR.
.SS template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1> int ACE_Strategy_Acceptor<SVC_HANDLER, >::activate_svc_handler (SVC_HANDLER * svc_handler)\fC [protected, virtual]\fR
.PP
Bridge method for activating a <SVC_HANDLER> with the appropriate concurrency strategy. The default behavior of this method is to activate the <SVC_HANDLER> by calling its <open> method (which allows the <SVC_HANDLER> to define its own concurrency strategy). However, subclasses can override this strategy to do more sophisticated concurrency activations (such as creating the <SVC_HANDLER> as an "active object" via multi-threading or multi-processing). 
.PP
Reimplemented from \fBACE_Acceptor\fR.
.SS template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1> void ACE_Strategy_Acceptor<SVC_HANDLER, >::dump (void) const
.PP
Dump the state of an object.
.PP
Reimplemented from \fBACE_Acceptor\fR.
.SS template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1> int ACE_Strategy_Acceptor<SVC_HANDLER, >::fini (void)\fC [protected, virtual]\fR
.PP
Calls <handle_close> when dynamically unlinked.
.PP
Reimplemented from \fBACE_Acceptor\fR.
.SS template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1> ACE_HANDLE ACE_Strategy_Acceptor<SVC_HANDLER, >::get_handle (void) const\fC [virtual]\fR
.PP
Returns the listening acceptor's .
.PP
Reimplemented from \fBACE_Acceptor\fR.
.SS template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1> int ACE_Strategy_Acceptor<SVC_HANDLER, >::handle_close (ACE_HANDLE handle = ACE_INVALID_HANDLE, \fBACE_Reactor_Mask\fR close_mask = ACE_Event_Handler::ALL_EVENTS_MASK)\fC [protected, virtual]\fR
.PP
Perform termination activities when <this> is removed from the <Reactor>.
.PP
Reimplemented from \fBACE_Acceptor\fR.
.SS template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1> int ACE_Strategy_Acceptor<SVC_HANDLER, >::handle_signal (int signum, \fBsiginfo_t\fR *, \fBucontext_t\fR *)\fC [protected, virtual]\fR
.PP
Handle SIGINT.
.PP
Reimplemented from \fBACE_Event_Handler\fR.
.SS template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1> int ACE_Strategy_Acceptor<SVC_HANDLER, >::info (\fBACE_TCHAR\fR ** buf, size_t length) const\fC [protected, virtual]\fR
.PP
Default version returns address info in <buf>.
.PP
Reimplemented from \fBACE_Acceptor\fR.
.SS template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1> int ACE_Strategy_Acceptor<SVC_HANDLER, >::make_svc_handler (SVC_HANDLER *& sh)\fC [protected, virtual]\fR
.PP
Bridge method for creating a <SVC_HANDLER>. The strategy for creating a <SVC_HANDLER> are configured into the Acceptor via it's <creation_strategy_>. The default is to create a new <SVC_HANDLER> if <sh> == 0, else <sh> is unchanged. However, subclasses can override this policy to perform <SVC_HANDLER> creation in any way that they like (such as creating subclass instances of <SVC_HANDLER>, using a singleton, dynamically linking the handler, etc.). Returns -1 on failure, else 0. 
.PP
Reimplemented from \fBACE_Acceptor\fR.
.SS template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1> int ACE_Strategy_Acceptor<SVC_HANDLER, >::open (const ACE_PEER_ACCEPTOR_ADDR &, \fBACE_Reactor\fR * = ACE_Reactor::instance (), \fBACE_Creation_Strategy\fR< SVC_HANDLER >* = 0, \fBACE_Accept_Strategy\fR< SVC_HANDLER,ACE_PEER_ACCEPTOR_2 >* = 0, \fBACE_Concurrency_Strategy\fR< SVC_HANDLER >* = 0, \fBACE_Scheduling_Strategy\fR< SVC_HANDLER >* = 0, const \fBACE_TCHAR\fR * service_name = 0, const \fBACE_TCHAR\fR * service_description = 0, int use_select = 1)
.PP
Initialize the appropriate strategies for creation, passive connection acceptance, and concurrency, and then register <this> with the Reactor and listen for connection requests at the designated <local_addr>. 
.SS template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1> ACE_Strategy_Acceptor<SVC_HANDLER, >::operator ACE_PEER_ACCEPTOR & () const\fC [virtual]\fR
.PP
Return the underlying PEER_ACCEPTOR object.
.PP
Reimplemented from \fBACE_Acceptor\fR.
.SS template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1> int ACE_Strategy_Acceptor<SVC_HANDLER, >::resume (void)\fC [protected, virtual]\fR
.PP
This method delegates to the <Scheduling_Strategy>'s <resume> method.
.PP
Reimplemented from \fBACE_Acceptor\fR.
.SS template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1> int ACE_Strategy_Acceptor<SVC_HANDLER, >::suspend (void)\fC [protected, virtual]\fR
.PP
This method delegates to the <Scheduling_Strategy>'s <suspend> method.
.PP
Reimplemented from \fBACE_Acceptor\fR.
.SH MEMBER DATA DOCUMENTATION
.PP 
.SS template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1> ACE_Strategy_Acceptor<SVC_HANDLER, >::ACE_ALLOC_HOOK_DECLARE
.PP
Declare the dynamic allocation hooks.
.PP
Reimplemented from \fBACE_Acceptor\fR.
.SS template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1> \fBACCEPT_STRATEGY\fR * ACE_Strategy_Acceptor<SVC_HANDLER, >::accept_strategy_\fC [protected]\fR
.PP
Accept strategy for an .
.PP
.SS template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1> \fBCONCURRENCY_STRATEGY\fR * ACE_Strategy_Acceptor<SVC_HANDLER, >::concurrency_strategy_\fC [protected]\fR
.PP
Concurrency strategy for an .
.PP
.SS template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1> \fBCREATION_STRATEGY\fR * ACE_Strategy_Acceptor<SVC_HANDLER, >::creation_strategy_\fC [protected]\fR
.PP
Creation strategy for an Acceptor.
.PP
.SS template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1> int ACE_Strategy_Acceptor<SVC_HANDLER, >::delete_accept_strategy_\fC [protected]\fR
.PP
1 if  created the accept strategy and thus should delete it, else 0.
.PP
.SS template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1> int ACE_Strategy_Acceptor<SVC_HANDLER, >::delete_concurrency_strategy_\fC [protected]\fR
.PP
1 if  created the concurrency strategy and thus should delete it, else 0.
.PP
.SS template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1> int ACE_Strategy_Acceptor<SVC_HANDLER, >::delete_creation_strategy_\fC [protected]\fR
.PP
1 if  created the creation strategy and thus should delete it, else 0.
.PP
.SS template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1> int ACE_Strategy_Acceptor<SVC_HANDLER, >::delete_scheduling_strategy_\fC [protected]\fR
.PP
1 if  created the scheduling strategy and thus should delete it, else 0.
.PP
.SS template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1> \fBSCHEDULING_STRATEGY\fR * ACE_Strategy_Acceptor<SVC_HANDLER, >::scheduling_strategy_\fC [protected]\fR
.PP
Scheduling strategy for an .
.PP
.SS template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1> ACE_PEER_ACCEPTOR_ADDR ACE_Strategy_Acceptor<SVC_HANDLER, >::service_addr_\fC [protected]\fR
.PP
Address that the <Strategy_Acceptor> uses to listen for connections.
.PP
.SS template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1> \fBACE_TCHAR\fR * ACE_Strategy_Acceptor<SVC_HANDLER, >::service_description_\fC [protected]\fR
.PP
Description of the service.
.PP
.SS template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1> \fBACE_TCHAR\fR * ACE_Strategy_Acceptor<SVC_HANDLER, >::service_name_\fC [protected]\fR
.PP
Name of the service.
.PP
.SS template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1> u_short ACE_Strategy_Acceptor<SVC_HANDLER, >::service_port_\fC [protected]\fR
.PP
Port number for the server.
.PP


.SH AUTHOR
.PP 
Generated automatically by Doxygen for ACE from the source code.