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.
|