A connection strategy which caches connections to peers (represented by SVC_HANDLER instances), thereby allowing subsequent re-use of unused, but available, connections. This strategy should be used when the cache is bounded by maximum size.
More...
|
| ACE_Bounded_Cached_Connect_Strategy (size_t max_size, CACHING_STRATEGY &caching_s, 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 *lock=0, int delete_lock=0) |
| Constructor. More...
|
|
virtual | ~ACE_Bounded_Cached_Connect_Strategy (void) |
| Destructor. More...
|
|
| ACE_Cached_Connect_Strategy_Ex (CACHING_STRATEGY &caching_s, 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 *lock=0, int delete_lock=0) |
| Constructor. More...
|
|
virtual | ~ACE_Cached_Connect_Strategy_Ex (void) |
| Destructor. More...
|
|
virtual int | purge_connections (void) |
| Explicit purging of connection entries from the connection cache. More...
|
|
virtual int | mark_as_closed_i (const void *recycling_act) |
|
void | cleanup (void) |
|
CACHING_STRATEGY & | caching_strategy (void) |
|
| 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, bool delete_lock=false) |
| Constructor. More...
|
|
virtual | ~ACE_Cached_Connect_Strategy (void) |
| Destructor. More...
|
|
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> More...
|
|
virtual int | activate_svc_handler (SVC_HANDLER *svc_handler) |
| Template method for activating a new svc_handler. More...
|
|
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. More...
|
|
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, bool 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, bool reuse_addr, int flags, int perms) |
|
virtual int | purge (const void *recycling_act) |
| Remove from cache. More...
|
|
virtual int | cache (const void *recycling_act) |
| Add to cache. More...
|
|
virtual int | recycle_state (const void *recycling_act, ACE_Recyclable_State new_state) |
| Get/Set <recycle_state>. More...
|
|
virtual ACE_Recyclable_State | recycle_state (const void *recycling_act) const |
| Get/Set recycle_state. More...
|
|
virtual int | mark_as_closed (const void *recycling_act) |
| Mark as closed. More...
|
|
virtual int | cleanup_hint (const void *recycling_act, void **act_holder=0) |
| Cleanup hint and reset <*act_holder> to zero if <act_holder != 0>. More...
|
|
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 |
|
| ACE_Connection_Recycling_Strategy (void) |
|
virtual | ~ACE_Connection_Recycling_Strategy (void) |
| Virtual Destructor. More...
|
|
| ACE_Connect_Strategy (void) |
| Default constructor. More...
|
|
virtual ACE_PEER_CONNECTOR & | connector (void) const |
| Return a reference to the <peer_connector_>. More...
|
|
virtual | ~ACE_Connect_Strategy (void) |
|
void | dump (void) const |
| Dump the state of an object. More...
|
|
|
virtual 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, bool reuse_addr, int flags, int perms, ACE_Hash_Map_Entry< ACE_Refcounted_Hash_Recyclable< ACE_PEER_CONNECTOR_ADDR >, std::pair< SVC_HANDLER *, ATTRIBUTES > > *&entry, int &found) |
|
int | find (ACE_Refcounted_Hash_Recyclable< ACE_PEER_CONNECTOR_ADDR > &search_addr, ACE_Hash_Map_Entry< ACE_Refcounted_Hash_Recyclable< ACE_PEER_CONNECTOR_ADDR >, std::pair< SVC_HANDLER *, ATTRIBUTES > > *&entry) |
| Find an idle handle. More...
|
|
virtual int | purge_i (const void *recycling_act) |
| Remove from cache (non-locking version). More...
|
|
virtual int | cache_i (const void *recycling_act) |
| Add to cache (non-locking version). More...
|
|
virtual int | recycle_state_i (const void *recycling_act, ACE_Recyclable_State new_state) |
| Get/Set recycle_state (non-locking version). More...
|
|
virtual ACE_Recyclable_State | recycle_state_i (const void *recycling_act) const |
| Get <recycle_state> (non-locking version). More...
|
|
virtual int | cleanup_hint_i (const void *recycling_act, void **act_holder) |
| Cleanup hint and reset *act_holder to zero if act_holder != 0. More...
|
|
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, bool reuse_addr, int flags, int perms, ACE_Hash_Map_Entry< ACE_Refcounted_Hash_Recyclable< ACE_PEER_CONNECTOR_ADDR >, std::pair< SVC_HANDLER *, ATTRIBUTES > > *&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, bool reuse_addr, int flags, int perms, int &found) |
|
virtual int | cached_connect (SVC_HANDLER *&sh, const ACE_PEER_CONNECTOR_ADDR &remote_addr, ACE_Time_Value *timeout, const ACE_PEER_CONNECTOR_ADDR &local_addr, bool reuse_addr, int flags, int perms) |
|
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, bool reuse_addr, int flags, int perms) |
| Creates a new connection. More...
|
|
int | find (REFCOUNTED_HASH_RECYCLABLE_ADDRESS &search_addr, CONNECTION_MAP_ENTRY *&entry) |
| Find an idle handle. More...
|
|
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, bool 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, bool reuse_addr, int flags, int perms, CONNECTION_MAP_ENTRY *&entry, int &found) |
|
|
typedef ACE_Refcounted_Hash_Recyclable< ACE_PEER_CONNECTOR_ADDR > | REFCOUNTED_HASH_RECYCLABLE_ADDRESS |
|
typedef ACE_Hash_Cache_Map_Manager< REFCOUNTED_HASH_RECYCLABLE_ADDRESS, SVC_HANDLER *, ACE_Hash< REFCOUNTED_HASH_RECYCLABLE_ADDRESS >, ACE_Equal_To< REFCOUNTED_HASH_RECYCLABLE_ADDRESS >, CACHING_STRATEGY, ATTRIBUTES > | CONNECTION_CACHE |
|
typedef CONNECTION_CACHE::CACHE_ENTRY | CONNECTION_CACHE_ENTRY |
|
typedef CONNECTION_CACHE::key_type | KEY |
|
typedef CONNECTION_CACHE::mapped_type | VALUE |
|
typedef ACE_Recyclable_Handler_Cleanup_Strategy< REFCOUNTED_HASH_RECYCLABLE_ADDRESS, std::pair< SVC_HANDLER *, ATTRIBUTES >, ACE_Hash_Map_Manager_Ex< REFCOUNTED_HASH_RECYCLABLE_ADDRESS, std::pair< SVC_HANDLER *, ATTRIBUTES >, ACE_Hash< REFCOUNTED_HASH_RECYCLABLE_ADDRESS >, ACE_Equal_To< REFCOUNTED_HASH_RECYCLABLE_ADDRESS >, MUTEX > > | CLEANUP_STRATEGY |
|
typedef ACE_Cached_Connect_Strategy< SVC_HANDLER, ACE_PEER_CONNECTOR_2, MUTEX > | CCSBASE |
|
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 CONNECTION_MAP::ITERATOR | CONNECTION_MAP_ITERATOR |
|
typedef CONNECTION_MAP::ENTRY | CONNECTION_MAP_ENTRY |
|
typedef ACE_Reverse_Lock< MUTEX > | REVERSE_MUTEX |
|
typedef ACE_PEER_CONNECTOR_ADDR | addr_type |
|
typedef ACE_PEER_CONNECTOR | connector_type |
|
typedef SVC_HANDLER | handler_type |
|
typedef SVC_HANDLER::stream_type | stream_type |
|
template<class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX>
class ACE_Bounded_Cached_Connect_Strategy< SVC_HANDLER, ACE_PEER_CONNECTOR_1, CACHING_STRATEGY, ATTRIBUTES, MUTEX >
A connection strategy which caches connections to peers (represented by SVC_HANDLER instances), thereby allowing subsequent re-use of unused, but available, connections. This strategy should be used when the cache is bounded by maximum size.
Bounded_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 and tweaking the role of the cache as per the caching strategy. Thanks to Edan Ayal edana.nosp@m.@ban.nosp@m.dwiz..nosp@m.com for contributing this class and Susan Liebeskind shl@j.nosp@m.anis.nosp@m..gtri.nosp@m..gat.nosp@m.ech.e.nosp@m.du for brainstorming about it.