Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages

# ACE_Bounded_Cached_Connect_Strategy Class Template Reference

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...

`#include <Cached_Connect_Strategy_T.h>`

Inheritance diagram for ACE_Bounded_Cached_Connect_Strategy

[legend]
Collaboration diagram for ACE_Bounded_Cached_Connect_Strategy:

[legend]
List of all members.

## Public Methods
| 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.
virtual | ~ACE_Bounded_Cached_Connect_Strategy (void)
| Destructor.
## Public Attributes
| ACE_ALLOC_HOOK_DECLARE
| Declare the dynamic allocation hooks.
## Protected Methods
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, int reuse_addr, int flags, int perms, ACE_Hash_Map_Entry<ACE_Refcounted_Hash_Recyclable<ACE_PEER_CONNECTOR_ADDR>, ACE_Pair<SVC_HANDLER *, ATTRIBUTES> > *&entry, int &found)
## Protected Attributes
size_t | max_size_
| max items in the cache, used as a bound for the creation of svc_handlers.
## Private Types
typedef ACE_Cached_Connect_Strategy_Ex< SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX> | CCSEBASE
typedef ACE_Refcounted_Hash_Recyclable< ACE_PEER_CONNECTOR_ADDR> | REFCOUNTED_HASH_RECYCLABLE_ADDRESS

## Detailed Description

### template<class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX> template class ACE_Bounded_Cached_Connect_Strategy

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 . 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@bandwiz.com> for contributing this class and Susan Liebeskind <shl@janis.gtri.gatech.edu> for brainstorming about it.

## Member Typedef Documentation

template<classSVC_HANDLER, ACE_PEER_CONNECTOR_1, classCACHING_STRATEGY, classATTRIBUTES, classMUTEX>
typedef ACE_Cached_Connect_Strategy_Ex<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX> ACE_Bounded_Cached_Connect_Strategy<SVC_HANDLER, , CACHING_STRATEGY, ATTRIBUTES, MUTEX>::CCSEBASE`[private]`

template<classSVC_HANDLER, ACE_PEER_CONNECTOR_1, classCACHING_STRATEGY, classATTRIBUTES, classMUTEX>
typedef ACE_Refcounted_Hash_Recyclable<ACE_PEER_CONNECTOR_ADDR> ACE_Bounded_Cached_Connect_Strategy<SVC_HANDLER, , CACHING_STRATEGY, ATTRIBUTES, MUTEX>::REFCOUNTED_HASH_RECYCLABLE_ADDRESS`[private]`

| Reimplemented from ACE_Cached_Connect_Strategy_Ex.

## Constructor & Destructor Documentation

template<classSVC_HANDLER, ACE_PEER_CONNECTOR_1, classCACHING_STRATEGY, classATTRIBUTES, classMUTEX>
ACE_Bounded_Cached_Connect_Strategy<SVC_HANDLER, , CACHING_STRATEGY, ATTRIBUTES, MUTEX>::ACE_Bounded_Cached_Connect_Strategy<SVC_HANDLER, , CACHING_STRATEGY, ATTRIBUTES, MUTEX> ( | 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.

template<ACE_T1>
ACE_Bounded_Cached_Connect_Strategy<>::~ACE_Bounded_Cached_Connect_Strategy<> ( | void )`[virtual]`

| Destructor.

## Member Function Documentation

template<classSVC_HANDLER, ACE_PEER_CONNECTOR_1, classCACHING_STRATEGY, classATTRIBUTES, classMUTEX>
virtual int ACE_Bounded_Cached_Connect_Strategy<SVC_HANDLER, , CACHING_STRATEGY, ATTRIBUTES, MUTEX>::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,
| ACE_Hash_Map_Entry< ACE_Refcounted_Hash_Recyclable< ACE_PEER_CONNECTOR_ADDR >,ACE_Pair< SVC_HANDLER *,ATTRIBUTES > >*& entry,
| int & found )`[protected, virtual]`

| Reimplemented from ACE_Cached_Connect_Strategy_Ex.

## Member Data Documentation

template<classSVC_HANDLER, ACE_PEER_CONNECTOR_1, classCACHING_STRATEGY, classATTRIBUTES, classMUTEX>
ACE_Bounded_Cached_Connect_Strategy<SVC_HANDLER, , CACHING_STRATEGY, ATTRIBUTES, MUTEX>::ACE_ALLOC_HOOK_DECLARE

| Declare the dynamic allocation hooks. Reimplemented from ACE_Connect_Strategy.

template<classSVC_HANDLER, ACE_PEER_CONNECTOR_1, classCACHING_STRATEGY, classATTRIBUTES, classMUTEX>
size_t ACE_Bounded_Cached_Connect_Strategy<SVC_HANDLER, , CACHING_STRATEGY, ATTRIBUTES, MUTEX>::max_size_`[protected]`

| max items in the cache, used as a bound for the creation of svc_handlers.

The documentation for this class was generated from the following files:

- Cached_Connect_Strategy_T.h
- Cached_Connect_Strategy_T.cpp