#include <Strategies_T.h>
Inheritance diagram for ACE_Cached_Connect_Strategy< SVC_HANDLER,, MUTEX >:


Public Types | |
| typedef ACE_Creation_Strategy< SVC_HANDLER > | creation_strategy_type |
| typedef ACE_Connect_Strategy< SVC_HANDLER, ACE_PEER_CONNECTOR_2 > | connect_strategy_type |
| typedef ACE_Concurrency_Strategy< SVC_HANDLER > | concurrency_strategy_type |
| typedef ACE_Recycling_Strategy< SVC_HANDLER > | recycling_strategy_type |
| typedef ACE_Creation_Strategy< SVC_HANDLER > | CREATION_STRATEGY |
| typedef ACE_Concurrency_Strategy< SVC_HANDLER > | CONCURRENCY_STRATEGY |
| typedef ACE_Recycling_Strategy< SVC_HANDLER > | RECYCLING_STRATEGY |
| typedef ACE_Connect_Strategy< SVC_HANDLER, ACE_PEER_CONNECTOR_2 > | CONNECT_STRATEGY |
| typedef ACE_Cached_Connect_Strategy< SVC_HANDLER, ACE_PEER_CONNECTOR_2, MUTEX > | SELF |
| typedef ACE_Refcounted_Hash_Recyclable< ACE_PEER_CONNECTOR_ADDR > | REFCOUNTED_HASH_RECYCLABLE_ADDRESS |
| typedef ACE_Hash_Map_Manager_Ex< REFCOUNTED_HASH_RECYCLABLE_ADDRESS, SVC_HANDLER *, ACE_Hash< REFCOUNTED_HASH_RECYCLABLE_ADDRESS >, ACE_Equal_To< REFCOUNTED_HASH_RECYCLABLE_ADDRESS >, ACE_Null_Mutex > | CONNECTION_MAP |
| typedef ACE_TYPENAME CONNECTION_MAP::ITERATOR | CONNECTION_MAP_ITERATOR |
| typedef ACE_TYPENAME CONNECTION_MAP::ENTRY | CONNECTION_MAP_ENTRY |
| typedef ACE_Reverse_Lock< MUTEX > | REVERSE_MUTEX |
Public Methods | |
| ACE_Cached_Connect_Strategy (ACE_Creation_Strategy< SVC_HANDLER > *cre_s=0, ACE_Concurrency_Strategy< SVC_HANDLER > *con_s=0, ACE_Recycling_Strategy< SVC_HANDLER > *rec_s=0, MUTEX *mutex=0, int delete_mutex=0) | |
| Constructor. | |
| virtual | ~ACE_Cached_Connect_Strategy (void) |
| Destructor. | |
| virtual int | open (ACE_Creation_Strategy< SVC_HANDLER > *cre_s, ACE_Concurrency_Strategy< SVC_HANDLER > *con_s, ACE_Recycling_Strategy< SVC_HANDLER > *rec_s) |
| virtual int | make_svc_handler (SVC_HANDLER *&sh) |
| Template method for making a new <svc_handler>. | |
| virtual int | activate_svc_handler (SVC_HANDLER *svc_handler) |
| Template method for activating a new <svc_handler>. | |
| virtual int | assign_recycler (SVC_HANDLER *svc_handler, ACE_Connection_Recycling_Strategy *recycler, const void *recycling_act) |
| virtual int | prepare_for_recycling (SVC_HANDLER *svc_handler) |
| Template method for preparing the svc_handler for recycling. | |
| 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 | 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) |
| virtual int | purge (const void *recycling_act) |
| Remove from cache. | |
| virtual int | cache (const void *recycling_act) |
| Add to cache. | |
| virtual int | recycle_state (const void *recycling_act, ACE_Recyclable_State new_state) |
| Get/Set <recycle_state>. | |
| virtual ACE_Recyclable_State | recycle_state (const void *recycling_act) const |
| Get/Set <recycle_state>. | |
| virtual int | mark_as_closed (const void *recycling_act) |
| Mark as closed. | |
| virtual int | mark_as_closed_i (const void *recycling_act) |
| virtual int | cleanup_hint (const void *recycling_act, void **act_holder=0) |
| Cleanup hint and reset <*act_holder> to zero if <act_holder != 0>. | |
| virtual ACE_Creation_Strategy< SVC_HANDLER > * | creation_strategy (void) const |
| virtual ACE_Recycling_Strategy< SVC_HANDLER > * | recycling_strategy (void) const |
| virtual ACE_Concurrency_Strategy< SVC_HANDLER > * | concurrency_strategy (void) const |
Protected Methods | |
| virtual int | new_connection (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) |
| Creates a new connection. | |
| int | find (REFCOUNTED_HASH_RECYCLABLE_ADDRESS &search_addr, CONNECTION_MAP_ENTRY *&entry) |
| Find an idle handle. | |
| virtual int | purge_i (const void *recycling_act) |
| Remove from cache (non-locking version). | |
| virtual int | cache_i (const void *recycling_act) |
| Add to cache (non-locking version). | |
| virtual int | recycle_state_i (const void *recycling_act, ACE_Recyclable_State new_state) |
| Set <recycle_state> (non-locking version). | |
| virtual ACE_Recyclable_State | recycle_state_i (const void *recycling_act) const |
| Get <recycle_state> (non-locking version). | |
| virtual int | cleanup_hint_i (const void *recycling_act, void **act_holder) |
| Cleanup hint and reset <*act_holder> to zero if <act_holder != 0>. | |
| int | check_hint_i (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, CONNECTION_MAP_ENTRY *&entry, int &found) |
| int | find_or_create_svc_handler_i (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, CONNECTION_MAP_ENTRY *&entry, int &found) |
| virtual int | connect_svc_handler_i (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, int &found) |
Protected Attributes | |
| CONNECTION_MAP | connection_map_ |
| Table that maintains the cache of connected <SVC_HANDLER>s. | |
| MUTEX * | lock_ |
| Mutual exclusion for this object. | |
| int | delete_lock_ |
| Mutual exclusion for this object. | |
| REVERSE_MUTEX * | reverse_lock_ |
| Reverse lock. | |
| CREATION_STRATEGY * | creation_strategy_ |
| Creation strategy for an <Connector>. | |
| int | delete_creation_strategy_ |
| CONCURRENCY_STRATEGY * | concurrency_strategy_ |
| Concurrency strategy for an <Connector>. | |
| int | delete_concurrency_strategy_ |
| RECYCLING_STRATEGY * | recycling_strategy_ |
| Recycling strategy for an <Connector>. | |
| int | delete_recycling_strategy_ |
<ACE_Cached_Connect_Strategy> is intended to be used as a plug-in connection strategy for <ACE_Strategy_Connector>. It's added value is re-use of established connections.
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|||||
|
|
|
|||||
|
|
|
||||||||||||||||||||||||||||
|
Constructor.
|
|
||||||||||
|
Destructor.
|
|
||||||||||
|
Template method for activating a new <svc_handler>.
|
|
||||||||||||||||||||
|
Template method for setting the recycler information of the svc_handler. |
|
||||||||||
|
Add to cache.
Implements ACE_Connection_Recycling_Strategy. |
|
||||||||||
|
Add to cache (non-locking version).
Reimplemented in ACE_Cached_Connect_Strategy_Ex< SVC_HANDLER,, CACHING_STRATEGY, ATTRIBUTES, MUTEX >, and ACE_Cached_Connect_Strategy_Ex< SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX >. |
|
||||||||||||||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||
|
Cleanup hint and reset <*act_holder> to zero if <act_holder != 0>.
Implements ACE_Connection_Recycling_Strategy. |
|
||||||||||||||||
|
Cleanup hint and reset <*act_holder> to zero if <act_holder != 0>.
Reimplemented in ACE_Cached_Connect_Strategy_Ex< SVC_HANDLER,, CACHING_STRATEGY, ATTRIBUTES, MUTEX >, and ACE_Cached_Connect_Strategy_Ex< SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX >. |
|
||||||||||
|
|
|
||||||||||||||||||||||||||||||||||||||||
|
The default behavior delegates to the <connect> method of the <PEER_CONNECTOR::connect>. Please check the documentation in Connector.h for more details. Reimplemented from ACE_Connect_Strategy< SVC_HANDLER, ACE_PEER_CONNECTOR_2 >. |
|
||||||||||||||||||||||||||||||||||||
|
Checks to see if there is already a <SVC_HANDLER> in the cache connected to the <remote_addr>. If so, we return this pointer. Otherwise we establish the connection, put it into the cache, and return the <SVC_HANDLER> pointer. <[NOTE]>: the <{reuse_addr}> argument does NOT control re-use of addresses in the cache. Rather, if the underlying protocol requires a "dead time" prior to re-use of its addresses (TCP is a classic example of this), <{and}> the protocol provides a means by which to defeat the dead time, setting this argument to non-zero will defeat the dead-time requirement. <{Dev. Note: We might want to consider enhancing the interface at some point so that this also controls re-use of the cache.}> Reimplemented from ACE_Connect_Strategy< SVC_HANDLER, ACE_PEER_CONNECTOR_2 >. |
|
||||||||||||||||||||||||||||||||||||||||
|
||||||||||
|
|
|
||||||||||||||||
|
Find an idle handle.
|
|
||||||||||||||||||||||||||||||||||||||||||||
|
|
|
||||||||||
|
Template method for making a new <svc_handler>.
|
|
||||||||||
|
Mark as closed.
Implements ACE_Connection_Recycling_Strategy. |
|
||||||||||
|
Mark as closed (non-locking version). This method needs to be public as it is used in the cleanup of handlers where teh locked version causes a deadlock. Implements ACE_Connection_Recycling_Strategy. Reimplemented in ACE_Cached_Connect_Strategy_Ex< SVC_HANDLER,, CACHING_STRATEGY, ATTRIBUTES, MUTEX >, and ACE_Cached_Connect_Strategy_Ex< SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX >. |
|
||||||||||||||||||||||||||||||||||||
|
Creates a new connection.
|
|
||||||||||||||||||||
|
This methods allow you to change the strategies used by the cached connector. |
|
||||||||||
|
Template method for preparing the svc_handler for recycling.
|
|
||||||||||
|
Remove from cache.
Implements ACE_Connection_Recycling_Strategy. |
|
||||||||||
|
Remove from cache (non-locking version).
Reimplemented in ACE_Cached_Connect_Strategy_Ex< SVC_HANDLER,, CACHING_STRATEGY, ATTRIBUTES, MUTEX >, and ACE_Cached_Connect_Strategy_Ex< SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX >. |
|
||||||||||
|
Get/Set <recycle_state>.
Implements ACE_Connection_Recycling_Strategy. |
|
||||||||||||||||
|
Get/Set <recycle_state>.
Implements ACE_Connection_Recycling_Strategy. |
|
||||||||||
|
Get <recycle_state> (non-locking version).
Reimplemented in ACE_Cached_Connect_Strategy_Ex< SVC_HANDLER,, CACHING_STRATEGY, ATTRIBUTES, MUTEX >, and ACE_Cached_Connect_Strategy_Ex< SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX >. |
|
||||||||||||||||
|
Set <recycle_state> (non-locking version).
Reimplemented in ACE_Cached_Connect_Strategy_Ex< SVC_HANDLER,, CACHING_STRATEGY, ATTRIBUTES, MUTEX >, and ACE_Cached_Connect_Strategy_Ex< SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX >. |
|
||||||||||
|
|
|
|||||
|
Concurrency strategy for an <Connector>.
|
|
|||||
|
Table that maintains the cache of connected <SVC_HANDLER>s.
|
|
|||||
|
Creation strategy for an <Connector>.
|
|
|||||
|
1 if <Connector> created the concurrency strategy and thus should delete it, else 0. |
|
|||||
|
1 if <Connector> created the creation strategy and thus should delete it, else 0. |
|
|||||
|
Mutual exclusion for this object.
|
|
|||||
|
1 if <Connector> created the recycling strategy and thus should delete it, else 0. |
|
|||||
|
Mutual exclusion for this object.
|
|
|||||
|
Recycling strategy for an <Connector>.
|
|
|||||
|
Reverse lock.
|
1.2.18