00001 // -*- C++ -*- 00002 00003 // ================================================================ 00004 /** 00005 * @file LRU_Connection_Purging_Strategy.h 00006 * 00007 * $Id: LRU_Connection_Purging_Strategy.h 69150 2005-11-02 07:13:04Z ossama $ 00008 * 00009 * @author Chad Elliott (elliott_c@ociweb.com) 00010 */ 00011 // ================================================================ 00012 00013 #ifndef TAO_LRU_PURGING_STRATEGY_H 00014 #define TAO_LRU_PURGING_STRATEGY_H 00015 00016 #include /**/ "ace/pre.h" 00017 00018 #include "tao/Connection_Purging_Strategy.h" 00019 00020 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00021 # pragma once 00022 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00023 00024 // **************************************************************** 00025 00026 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00027 00028 /** 00029 * @class TAO_LRU_Connection_Purging_Strategy 00030 * 00031 * @brief The Least Recently Used connection purging strategy 00032 * 00033 * This class maintains it's own count which is applied to the 00034 * item passed in. This way, the least recently used transport 00035 * has the smallest ordering number and will therefore be purged 00036 * first. 00037 */ 00038 00039 class TAO_Export TAO_LRU_Connection_Purging_Strategy 00040 : public TAO_Connection_Purging_Strategy 00041 { 00042 public: 00043 /// The constructor 00044 TAO_LRU_Connection_Purging_Strategy (int cache_maximum); 00045 00046 /// The destructor 00047 virtual ~TAO_LRU_Connection_Purging_Strategy (void); 00048 00049 /// Called when accessing an item from the cache 00050 virtual void update_item (TAO_Transport* transport); 00051 00052 private: 00053 /// The ordering information for each transport in the cache 00054 unsigned long order_; 00055 }; 00056 00057 TAO_END_VERSIONED_NAMESPACE_DECL 00058 00059 #include /**/ "ace/post.h" 00060 00061 #endif /* TAO_LRU_PURGING_STRATEGY_H */