ACE_Strategy_Connector< SVC_HANDLER, > Class Template ReferenceAbstract factory for creating a service handler (SVC_HANDLER), connecting the SVC_HANDLER, and activating the SVC_HANDLER. More...
Inheritance diagram for ACE_Strategy_Connector< SVC_HANDLER, >:
![]()
Collaboration diagram for ACE_Strategy_Connector< SVC_HANDLER, >:
![]()
Detailed Descriptiontemplate<class SVC_HANDLER, ACE_PEER_CONNECTOR_1>
Abstract factory for creating a service handler (SVC_HANDLER), connecting the SVC_HANDLER, and activating the SVC_HANDLER.
|
typedef ACE_Creation_Strategy<SVC_HANDLER> ACE_Strategy_Connector< SVC_HANDLER, >::creation_strategy_type |
typedef ACE_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2> ACE_Strategy_Connector< SVC_HANDLER, >::connect_strategy_type |
typedef ACE_Concurrency_Strategy<SVC_HANDLER> ACE_Strategy_Connector< SVC_HANDLER, >::concurrency_strategy_type |
typedef ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2> ACE_Strategy_Connector< SVC_HANDLER, >::base_type |
typedef ACE_Creation_Strategy<SVC_HANDLER> ACE_Strategy_Connector< SVC_HANDLER, >::CREATION_STRATEGY |
typedef ACE_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2> ACE_Strategy_Connector< SVC_HANDLER, >::CONNECT_STRATEGY |
typedef ACE_Concurrency_Strategy<SVC_HANDLER> ACE_Strategy_Connector< SVC_HANDLER, >::CONCURRENCY_STRATEGY |
typedef ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2> ACE_Strategy_Connector< SVC_HANDLER, >::SUPER |
ACE_Strategy_Connector< SVC_HANDLER, >::ACE_Strategy_Connector | ( | ACE_Reactor * | r = ACE_Reactor::instance () , |
|
ACE_Creation_Strategy< SVC_HANDLER > * | cre_s = 0 , |
|||
ACE_Connect_Strategy< SVC_HANDLER, ACE_PEER_CONNECTOR_2 > * | conn_s = 0 , |
|||
ACE_Concurrency_Strategy< SVC_HANDLER > * | con_s = 0 , |
|||
int | flags = 0 | |||
) | [inline] |
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 ACE_NONBLOCK, which enabled non-blocking I/O on the SVC_HANDLER when it is opened.
ACE_Strategy_Connector< SVC_HANDLER, >::~ACE_Strategy_Connector | ( | void | ) | [inline, virtual] |
Shutdown a connector and release resources.
int ACE_Strategy_Connector< SVC_HANDLER, >::open | ( | ACE_Reactor * | r, | |
int | flags | |||
) | [inline, virtual] |
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 ACE_NONBLOCK, which enabled non-blocking I/O on the SVC_HANDLER when it is opened. Default strategies would be created and used.
Reimplemented from ACE_Connector< SVC_HANDLER, ACE_PEER_CONNECTOR_2 >.
int ACE_Strategy_Connector< SVC_HANDLER, >::open | ( | ACE_Reactor * | r = ACE_Reactor::instance () , |
|
ACE_Creation_Strategy< SVC_HANDLER > * | cre_s = 0 , |
|||
ACE_Connect_Strategy< SVC_HANDLER, ACE_PEER_CONNECTOR_2 > * | conn_s = 0 , |
|||
ACE_Concurrency_Strategy< SVC_HANDLER > * | con_s = 0 , |
|||
int | flags = 0 | |||
) | [inline, virtual] |
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 ACE_NONBLOCK, which enabled non-blocking I/O on the SVC_HANDLER when it is opened.
int ACE_Strategy_Connector< SVC_HANDLER, >::close | ( | void | ) | [inline, virtual] |
ACE_Creation_Strategy< SVC_HANDLER > * ACE_Strategy_Connector< SVC_HANDLER, >::creation_strategy | ( | void | ) | const [inline, virtual] |
ACE_Connect_Strategy< SVC_HANDLER, ACE_PEER_CONNECTOR_2 > * ACE_Strategy_Connector< SVC_HANDLER, >::connect_strategy | ( | void | ) | const [inline, virtual] |
ACE_Concurrency_Strategy< SVC_HANDLER > * ACE_Strategy_Connector< SVC_HANDLER, >::concurrency_strategy | ( | void | ) | const [inline, virtual] |
int ACE_Strategy_Connector< SVC_HANDLER, >::make_svc_handler | ( | SVC_HANDLER *& | sh | ) | [inline, protected, virtual] |
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.
Reimplemented from ACE_Connector< SVC_HANDLER, ACE_PEER_CONNECTOR_2 >.
int ACE_Strategy_Connector< SVC_HANDLER, >::connect_svc_handler | ( | SVC_HANDLER *& | sh, | |
const ACE_PEER_CONNECTOR_ADDR & | remote_addr, | |||
ACE_Time_Value * | timeout, | |||
const ACE_PEER_CONNECTOR_ADDR & | local_addr, | |||
int | reuse_addr, | |||
int | flags, | |||
int | perms | |||
) | [inline, protected, virtual] |
Bridge method for connecting the new connection into the SVC_HANDLER. The default behavior delegates to the <PEER_CONNECTOR::connect> in the <Connect_Strategy>.
Reimplemented from ACE_Connector< SVC_HANDLER, ACE_PEER_CONNECTOR_2 >.
int ACE_Strategy_Connector< SVC_HANDLER, >::connect_svc_handler | ( | SVC_HANDLER *& | sh, | |
SVC_HANDLER *& | sh_copy, | |||
const ACE_PEER_CONNECTOR_ADDR & | remote_addr, | |||
ACE_Time_Value * | timeout, | |||
const ACE_PEER_CONNECTOR_ADDR & | local_addr, | |||
int | reuse_addr, | |||
int | flags, | |||
int | perms | |||
) | [inline, protected, virtual] |
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.
Reimplemented from ACE_Connector< SVC_HANDLER, ACE_PEER_CONNECTOR_2 >.
int ACE_Strategy_Connector< SVC_HANDLER, >::activate_svc_handler | ( | SVC_HANDLER * | svc_handler | ) | [inline, protected, virtual] |
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).
Reimplemented from ACE_Connector< SVC_HANDLER, ACE_PEER_CONNECTOR_2 >.
CREATION_STRATEGY* ACE_Strategy_Connector< SVC_HANDLER, >::creation_strategy_ [protected] |
Creation strategy for an Connector.
bool ACE_Strategy_Connector< SVC_HANDLER, >::delete_creation_strategy_ [protected] |
true if Connector created the creation strategy and thus should delete it, else false.
CONNECT_STRATEGY* ACE_Strategy_Connector< SVC_HANDLER, >::connect_strategy_ [protected] |
Connect strategy for a Connector.
bool ACE_Strategy_Connector< SVC_HANDLER, >::delete_connect_strategy_ [protected] |
true if Connector created the connect strategy and thus should delete it, else false.
CONCURRENCY_STRATEGY* ACE_Strategy_Connector< SVC_HANDLER, >::concurrency_strategy_ [protected] |
Concurrency strategy for an <Connector>.
bool ACE_Strategy_Connector< SVC_HANDLER, >::delete_concurrency_strategy_ [protected] |
true if Connector created the concurrency strategy and thus should delete it, else false.