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
|
.TH ACE_Strategy_Connector 3 "1 Dec 2001" "ACE" \" -*- nroff -*-
.ad l
.nh
.SH NAME
ACE_Strategy_Connector \- Abstract factory for creating a service handler (SVC_HANDLER), connecting the SVC_HANDLER, and activating the SVC_HANDLER.
.SH SYNOPSIS
.br
.PP
\fC#include <Connector.h>\fR
.PP
Inherits \fBACE_Connector< SVC_HANDLER,ACE_PEER_CONNECTOR_2 >\fR.
.PP
.SS Public Types
.in +1c
.ti -1c
.RI "typedef \fBACE_Creation_Strategy\fR<SVC_HANDLER> \fBCREATION_STRATEGY\fR"
.br
.ti -1c
.RI "typedef \fBACE_Connect_Strategy\fR<SVC_HANDLER, ACE_PEER_CONNECTOR_2> \fBCONNECT_STRATEGY\fR"
.br
.ti -1c
.RI "typedef \fBACE_Concurrency_Strategy\fR<SVC_HANDLER> \fBCONCURRENCY_STRATEGY\fR"
.br
.ti -1c
.RI "typedef \fBACE_Connector\fR<SVC_HANDLER, ACE_PEER_CONNECTOR_2> \fBSUPER\fR"
.br
.in -1c
.SS Public Methods
.in +1c
.ti -1c
.RI "\fBACE_Strategy_Connector\fR (\fBACE_Reactor\fR *r = ACE_Reactor::instance (), \fBACE_Creation_Strategy\fR<SVC_HANDLER> * = 0, \fBACE_Connect_Strategy\fR<SVC_HANDLER, ACE_PEER_CONNECTOR_2> * = 0, \fBACE_Concurrency_Strategy\fR<SVC_HANDLER> * = 0, int flags = 0)"
.br
.ti -1c
.RI "virtual int \fBopen\fR (\fBACE_Reactor\fR *r, int flags)"
.br
.ti -1c
.RI "virtual int \fBopen\fR (\fBACE_Reactor\fR *r = ACE_Reactor::instance (), \fBACE_Creation_Strategy\fR<SVC_HANDLER> * = 0, \fBACE_Connect_Strategy\fR<SVC_HANDLER, ACE_PEER_CONNECTOR_2> * = 0, \fBACE_Concurrency_Strategy\fR<SVC_HANDLER> * = 0, int flags = 0)"
.br
.ti -1c
.RI "virtual \fB~ACE_Strategy_Connector\fR (void)"
.br
.RI "\fIShutdown a connector and release resources.\fR"
.ti -1c
.RI "virtual int \fBclose\fR (void)"
.br
.RI "\fIClose down the Connector.\fR"
.ti -1c
.RI "virtual \fBACE_Creation_Strategy\fR<SVC_HANDLER>* \fBcreation_strategy\fR (void) const"
.br
.ti -1c
.RI "virtual \fBACE_Connect_Strategy\fR<SVC_HANDLER, ACE_PEER_CONNECTOR_2>* \fBconnect_strategy\fR (void) const"
.br
.ti -1c
.RI "virtual \fBACE_Concurrency_Strategy\fR<SVC_HANDLER>* \fBconcurrency_strategy\fR (void) const"
.br
.in -1c
.SS Protected Methods
.in +1c
.ti -1c
.RI "virtual int \fBmake_svc_handler\fR (SVC_HANDLER *&sh)"
.br
.ti -1c
.RI "virtual int \fBconnect_svc_handler\fR (SVC_HANDLER *&sh, const ACE_PEER_CONNECTOR_ADDR &remote_addr, \fBACE_Time_Value\fR *timeout, const ACE_PEER_CONNECTOR_ADDR &local_addr, int reuse_addr, int flags, int perms)"
.br
.ti -1c
.RI "virtual int \fBconnect_svc_handler\fR (SVC_HANDLER *&sh, SVC_HANDLER *&sh_copy, const ACE_PEER_CONNECTOR_ADDR &remote_addr, \fBACE_Time_Value\fR *timeout, const ACE_PEER_CONNECTOR_ADDR &local_addr, int reuse_addr, int flags, int perms)"
.br
.ti -1c
.RI "virtual int \fBactivate_svc_handler\fR (SVC_HANDLER *svc_handler)"
.br
.in -1c
.SS Protected Attributes
.in +1c
.ti -1c
.RI "\fBCREATION_STRATEGY\fR* \fBcreation_strategy_\fR"
.br
.RI "\fICreation strategy for an <Connector>.\fR"
.ti -1c
.RI "int \fBdelete_creation_strategy_\fR"
.br
.RI "\fI1 if <Connector> created the creation strategy and thus should delete it, else 0.\fR"
.ti -1c
.RI "\fBCONNECT_STRATEGY\fR* \fBconnect_strategy_\fR"
.br
.RI "\fIConnect strategy for a <Connector>.\fR"
.ti -1c
.RI "int \fBdelete_connect_strategy_\fR"
.br
.RI "\fI1 if <Connector> created the connect strategy and thus should delete it, else 0.\fR"
.ti -1c
.RI "\fBCONCURRENCY_STRATEGY\fR* \fBconcurrency_strategy_\fR"
.br
.RI "\fIConcurrency strategy for an <Connector>.\fR"
.ti -1c
.RI "int \fBdelete_concurrency_strategy_\fR"
.br
.RI "\fI1 if <Connector> created the concurrency strategy and thus should delete it, else 0.\fR"
.in -1c
.SH DETAILED DESCRIPTION
.PP
.SS template<class SVC_HANDLER, ACE_PEER_CONNECTOR_1> template class ACE_Strategy_Connector
Abstract factory for creating a service handler (SVC_HANDLER), connecting the SVC_HANDLER, and activating the SVC_HANDLER.
.PP
.PP
Implements a flexible and extensible set of strategies for actively establishing connections with clients. There are three main strategies: (1) creating a SVC_HANDLER, (2) actively initiating a new connection from the client, and (3) activating the SVC_HANDLER with a particular concurrency mechanism after the connection is established.
.PP
.SH MEMBER TYPEDEF DOCUMENTATION
.PP
.SS template<classSVC_HANDLER, ACE_PEER_CONNECTOR_1> typedef \fBACE_Concurrency_Strategy\fR<SVC_HANDLER> ACE_Strategy_Connector<SVC_HANDLER, >::CONCURRENCY_STRATEGY
.PP
.SS template<classSVC_HANDLER, ACE_PEER_CONNECTOR_1> typedef \fBACE_Connect_Strategy\fR<SVC_HANDLER, ACE_PEER_CONNECTOR_2> ACE_Strategy_Connector<SVC_HANDLER, >::CONNECT_STRATEGY
.PP
.SS template<classSVC_HANDLER, ACE_PEER_CONNECTOR_1> typedef \fBACE_Creation_Strategy\fR<SVC_HANDLER> ACE_Strategy_Connector<SVC_HANDLER, >::CREATION_STRATEGY
.PP
.SS template<classSVC_HANDLER, ACE_PEER_CONNECTOR_1> typedef \fBACE_Connector\fR<SVC_HANDLER, ACE_PEER_CONNECTOR_2> ACE_Strategy_Connector<SVC_HANDLER, >::SUPER
.PP
.SH CONSTRUCTOR & DESTRUCTOR DOCUMENTATION
.PP
.SS template<classSVC_HANDLER, ACE_PEER_CONNECTOR_1> ACE_Strategy_Connector<SVC_HANDLER, >::ACE_Strategy_Connector<SVC_HANDLER, > (\fBACE_Reactor\fR * r = ACE_Reactor::instance (), \fBACE_Creation_Strategy\fR< SVC_HANDLER >* = 0, \fBACE_Connect_Strategy\fR< SVC_HANDLER,ACE_PEER_CONNECTOR_2 >* = 0, \fBACE_Concurrency_Strategy\fR< SVC_HANDLER >* = 0, int flags = 0)
.PP
Initialize a connector. <flags> indicates how <SVC_HANDLER>'s should be initialized prior to being activated. Right now, the only flag that is processed is , which enabled non-blocking I/O on the <SVC_HANDLER> when it is opened.
.SS template<classSVC_HANDLER, ACE_PEER_CONNECTOR_1> ACE_Strategy_Connector<SVC_HANDLER, >::~ACE_Strategy_Connector<SVC_HANDLER, > (void)\fC [virtual]\fR
.PP
Shutdown a connector and release resources.
.PP
.SH MEMBER FUNCTION DOCUMENTATION
.PP
.SS template<classSVC_HANDLER, ACE_PEER_CONNECTOR_1> int ACE_Strategy_Connector<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_Connector\fR.
.SS template<classSVC_HANDLER, ACE_PEER_CONNECTOR_1> int ACE_Strategy_Connector<SVC_HANDLER, >::close (void)\fC [virtual]\fR
.PP
Close down the Connector.
.PP
Reimplemented from \fBACE_Connector\fR.
.SS template<classSVC_HANDLER, ACE_PEER_CONNECTOR_1> virtual \fBACE_Concurrency_Strategy\fR<SVC_HANDLER>* ACE_Strategy_Connector<SVC_HANDLER, >::concurrency_strategy (void) const\fC [virtual]\fR
.PP
.SS template<classSVC_HANDLER, ACE_PEER_CONNECTOR_1> virtual \fBACE_Connect_Strategy\fR<SVC_HANDLER, ACE_PEER_CONNECTOR_2>* ACE_Strategy_Connector<SVC_HANDLER, >::connect_strategy (void) const\fC [virtual]\fR
.PP
.SS template<classSVC_HANDLER, ACE_PEER_CONNECTOR_1> int ACE_Strategy_Connector<SVC_HANDLER, >::connect_svc_handler (SVC_HANDLER *& sh, SVC_HANDLER *& sh_copy, const ACE_PEER_CONNECTOR_ADDR & remote_addr, \fBACE_Time_Value\fR * timeout, const ACE_PEER_CONNECTOR_ADDR & local_addr, int reuse_addr, int flags, int perms)\fC [protected, virtual]\fR
.PP
Bridge method for connecting the new connection into the <SVC_HANDLER>. The default behavior delegates to the <PEER_CONNECTOR::connect> in the <Connect_Strategy>. <sh_copy> is used to obtain a copy of the <sh> pointer, but that can be kept in the stack; the motivation is a bit too long to include here, but basically we want to modify <sh> safely, using the internal locks in the Connect_Strategy, while saving a TSS copy in <sh_copy>, usually located in the stack.
.PP
Reimplemented from \fBACE_Connector\fR.
.SS template<classSVC_HANDLER, ACE_PEER_CONNECTOR_1> int ACE_Strategy_Connector<SVC_HANDLER, >::connect_svc_handler (SVC_HANDLER *& sh, const ACE_PEER_CONNECTOR_ADDR & remote_addr, \fBACE_Time_Value\fR * timeout, const ACE_PEER_CONNECTOR_ADDR & local_addr, int reuse_addr, int flags, int perms)\fC [protected, virtual]\fR
.PP
Bridge method for connecting the new connection into the <SVC_HANDLER>. The default behavior delegates to the <PEER_CONNECTOR::connect> in the <Connect_Strategy>.
.PP
Reimplemented from \fBACE_Connector\fR.
.SS template<classSVC_HANDLER, ACE_PEER_CONNECTOR_1> virtual \fBACE_Creation_Strategy\fR<SVC_HANDLER>* ACE_Strategy_Connector<SVC_HANDLER, >::creation_strategy (void) const\fC [virtual]\fR
.PP
.SS template<classSVC_HANDLER, ACE_PEER_CONNECTOR_1> int ACE_Strategy_Connector<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 Connector via it's <creation_strategy_>. The default is to create a new <SVC_HANDLER> only 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 if failure, else 0.
.PP
Reimplemented from \fBACE_Connector\fR.
.SS template<classSVC_HANDLER, ACE_PEER_CONNECTOR_1> int ACE_Strategy_Connector<SVC_HANDLER, >::open (\fBACE_Reactor\fR * r = ACE_Reactor::instance (), \fBACE_Creation_Strategy\fR< SVC_HANDLER >* = 0, \fBACE_Connect_Strategy\fR< SVC_HANDLER,ACE_PEER_CONNECTOR_2 >* = 0, \fBACE_Concurrency_Strategy\fR< SVC_HANDLER >* = 0, int flags = 0)\fC [virtual]\fR
.PP
Initialize a connector. <flags> indicates how <SVC_HANDLER>'s should be initialized prior to being activated. Right now, the only flag that is processed is , which enabled non-blocking I/O on the <SVC_HANDLER> when it is opened.
.SS template<classSVC_HANDLER, ACE_PEER_CONNECTOR_1> int ACE_Strategy_Connector<SVC_HANDLER, >::open (\fBACE_Reactor\fR * r, int flags)\fC [virtual]\fR
.PP
Initialize a connector. <flags> indicates how <SVC_HANDLER>'s should be initialized prior to being activated. Right now, the only flag that is processed is , which enabled non-blocking I/O on the <SVC_HANDLER> when it is opened. Default strategies would be created and used.
.PP
Reimplemented from \fBACE_Connector\fR.
.SH MEMBER DATA DOCUMENTATION
.PP
.SS template<classSVC_HANDLER, ACE_PEER_CONNECTOR_1> \fBCONCURRENCY_STRATEGY\fR * ACE_Strategy_Connector<SVC_HANDLER, >::concurrency_strategy_\fC [protected]\fR
.PP
Concurrency strategy for an <Connector>.
.PP
.SS template<classSVC_HANDLER, ACE_PEER_CONNECTOR_1> \fBCONNECT_STRATEGY\fR * ACE_Strategy_Connector<SVC_HANDLER, >::connect_strategy_\fC [protected]\fR
.PP
Connect strategy for a <Connector>.
.PP
.SS template<classSVC_HANDLER, ACE_PEER_CONNECTOR_1> \fBCREATION_STRATEGY\fR * ACE_Strategy_Connector<SVC_HANDLER, >::creation_strategy_\fC [protected]\fR
.PP
Creation strategy for an <Connector>.
.PP
.SS template<classSVC_HANDLER, ACE_PEER_CONNECTOR_1> int ACE_Strategy_Connector<SVC_HANDLER, >::delete_concurrency_strategy_\fC [protected]\fR
.PP
1 if <Connector> created the concurrency strategy and thus should delete it, else 0.
.PP
.SS template<classSVC_HANDLER, ACE_PEER_CONNECTOR_1> int ACE_Strategy_Connector<SVC_HANDLER, >::delete_connect_strategy_\fC [protected]\fR
.PP
1 if <Connector> created the connect strategy and thus should delete it, else 0.
.PP
.SS template<classSVC_HANDLER, ACE_PEER_CONNECTOR_1> int ACE_Strategy_Connector<SVC_HANDLER, >::delete_creation_strategy_\fC [protected]\fR
.PP
1 if <Connector> created the creation strategy and thus should delete it, else 0.
.PP
.SH AUTHOR
.PP
Generated automatically by Doxygen for ACE from the source code.
|