File: ACE_Strategy_Connector.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 (202 lines) | stat: -rw-r--r-- 11,791 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
.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.