3 //=============================================================================
5 * @file Connection_Recycling_Strategy.h
7 * $Id: Connection_Recycling_Strategy.h 80826 2008-03-04 14:51:23Z wotte $
11 //=============================================================================
12 #ifndef ACE_CONNECTION_RECYCLING_STRATEGY_H
13 #define ACE_CONNECTION_RECYCLING_STRATEGY_H
14 #include /**/ "ace/pre.h"
16 #include "ace/Recyclable.h"
18 #if !defined (ACE_LACKS_PRAGMA_ONCE)
20 #endif /* ACE_LACKS_PRAGMA_ONCE */
22 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
25 * @class ACE_Connection_Recycling_Strategy
27 * @brief Defines the interface for a connection recycler.
29 class ACE_Export ACE_Connection_Recycling_Strategy
32 /// Virtual Destructor
33 virtual ~ACE_Connection_Recycling_Strategy (void);
35 /// Remove from cache.
36 virtual int purge (const void *recycling_act
) = 0;
39 virtual int cache (const void *recycling_act
) = 0;
41 virtual int recycle_state (const void *recycling_act
,
42 ACE_Recyclable_State new_state
) = 0;
44 /// Get/Set recycle_state.
45 virtual ACE_Recyclable_State
recycle_state (const void *recycling_act
) const = 0;
48 virtual int mark_as_closed (const void *recycling_act
) = 0;
50 /// Mark as closed.(non-locking version)
51 virtual int mark_as_closed_i (const void *recycling_act
) = 0;
53 /// Cleanup hint and reset @a act_holder to zero if @a act_holder != 0.
54 virtual int cleanup_hint (const void *recycling_act
,
55 void **act_holder
= 0) = 0;
59 ACE_END_VERSIONED_NAMESPACE_DECL
61 #include /**/ "ace/post.h"
63 #endif /*ACE_CONNECTION_RECYCLING_STRATEGY*/