NAME

ACE_Strategy_Connector - Abstract factory for creating a service handler (SVC_HANDLER), connecting the SVC_HANDLER, and activating the SVC_HANDLER.

SYNOPSIS

#include <ace/Connector.h>

template<class SVC_HANDLER, ACE_PEER_CONNECTOR_1> class ACE_Strategy_Connector : public ACE_Connector <SVC_HANDLER, ACE_PEER_CONNECTOR_2> { public: ACE_Strategy_Connector ( ACE_Reactor *r = ACE_Reactor::instance (), ACE_Creation_Strategy<SVC_HANDLER> * = 0, ACE_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2> * = 0, ACE_Concurrency_Strategy<SVC_HANDLER> * = 0, int flags = 0 ); virtual int open (ACE_Reactor *r, int flags); virtual int open ( ACE_Reactor *r = ACE_Reactor::instance (), ACE_Creation_Strategy<SVC_HANDLER> * = 0, ACE_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2> * = 0, ACE_Concurrency_Strategy<SVC_HANDLER> * = 0, int flags = 0 ); virtual ~ACE_Strategy_Connector (void); virtual int close (void); protected: virtual int make_svc_handler (SVC_HANDLER *&sh); virtual int 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 ); virtual int activate_svc_handler (SVC_HANDLER *svc_handler); typedef ACE_Creation_Strategy<SVC_HANDLER> CREATION_STRATEGY; typedef ACE_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2> CONNECT_STRATEGY; typedef ACE_Concurrency_Strategy<SVC_HANDLER> CONCURRENCY_STRATEGY; typedef ACE_Connector <SVC_HANDLER, ACE_PEER_CONNECTOR_2> SUPER; CREATION_STRATEGY *creation_strategy_; int delete_creation_strategy_; CONNECT_STRATEGY *connect_strategy_; int delete_connect_strategy_; CONCURRENCY_STRATEGY *concurrency_strategy_; int delete_concurrency_strategy_; };

DESCRIPTION

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 connecting a new connection from a client into the SVC_HANDLER, and (3) activating the SVC_HANDLER with a particular concurrency mechanism.

Define some useful typedefs traits.

typedef ACE_Creation_Strategy<SVC_HANDLER>  CREATION_STRATEGY;

    typedef ACE_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2>  CONNECT_STRATEGY;
    

typedef ACE_Concurrency_Strategy<SVC_HANDLER>  CONCURRENCY_STRATEGY;

typedef ACE_Connector <SVC_HANDLER, ACE_PEER_CONNECTOR_2>  SUPER;

Strategy objects.

CREATION_STRATEGY *creation_strategy_;

int delete_creation_strategy_;

CONNECT_STRATEGY *connect_strategy_;

int delete_connect_strategy_;

CONCURRENCY_STRATEGY *concurrency_strategy_;

int delete_concurrency_strategy_;

AUTHOR

Doug Schmidt

LIBRARY

ace