Public Types |
typedef ACE_Hash_Map_Manager<
TAO_Cache_ExtId, TAO_Cache_IntId,
ACE_Null_Mutex > | HASH_MAP |
typedef ACE_Hash_Map_Iterator<
TAO_Cache_ExtId, TAO_Cache_IntId,
ACE_Null_Mutex > | HASH_MAP_ITER |
typedef ACE_Hash_Map_Entry<
TAO_Cache_ExtId, TAO_Cache_IntId > | HASH_MAP_ENTRY |
Public Methods |
| TAO_Transport_Cache_Manager (TAO_ORB_Core &orb_core) |
| Constructor. More...
|
virtual | ~TAO_Transport_Cache_Manager (void) |
| Destructor. More...
|
int | cache_transport (TAO_Transport_Descriptor_Interface *prop, TAO_Transport *transport) |
| Add the transport to the cache. The transport has the property definition based on which caching can be done. More...
|
int | find_transport (TAO_Transport_Descriptor_Interface *prop, TAO_Transport *&transport) |
| Check the Transport Cache to check whether the connection exists in the Cache and return the connection. More...
|
int | purge (void) |
| Remove entries from the cache depending upon the strategy. More...
|
int | purge_entry (HASH_MAP_ENTRY *&) |
| Purge the entry from the Cache Map. More...
|
void | mark_invalid (HASH_MAP_ENTRY *&) |
| Mark the entry as invalid for use but keep it in cache. More...
|
int | make_idle (HASH_MAP_ENTRY *&entry) |
| Make the entry idle and ready for use. More...
|
int | close (ACE_Handle_Set &reactor_registered, TAO_EventHandlerSet &unregistered) |
| Close the underlying hash map manager and return the handle set that have been registered with the reactor. More...
|
size_t | current_size (void) const |
| Return the current size of the cache. More...
|
size_t | total_size (void) const |
| Return the total size of the cache. More...
|
Private Types |
typedef HASH_MAP_ENTRY ** | DESCRIPTOR_SET |
Private Methods |
int | bind (TAO_Cache_ExtId &ext_id, TAO_Cache_IntId &int_id) |
| Associate <ext_id> with <int_id>. Grabs the lock and calls the implementation function bind_i. More...
|
int | find (const TAO_Cache_ExtId &key, TAO_Cache_IntId &value) |
| Lookup entry<key,value> in the cache. Grabs the lock and calls the implementation function find_i. More...
|
int | rebind (const TAO_Cache_ExtId &key, const TAO_Cache_IntId &value) |
| Reassociate the <key> with <value>. Grabs the lock and calls the implementation function find_i. More...
|
int | unbind (const TAO_Cache_ExtId &key) |
| Remove <key> from the cache. More...
|
int | unbind (const TAO_Cache_ExtId &key, TAO_Cache_IntId &value) |
| Remove <key> from the cache, and return the <value> associated with <key>. More...
|
int | bind_i (TAO_Cache_ExtId &ext_id, TAO_Cache_IntId &int_id) |
int | find_i (const TAO_Cache_ExtId &key, TAO_Cache_IntId &value) |
int | rebind_i (const TAO_Cache_ExtId &key, const TAO_Cache_IntId &value) |
| Non-locking version and actual implementation of rebind () call. More...
|
int | unbind_i (const TAO_Cache_ExtId &key) |
| Non-locking version and actual implementation of unbind () call. More...
|
int | unbind_i (const TAO_Cache_ExtId &key, TAO_Cache_IntId &value) |
| Non-locking version and actual implementation of unbind () call. More...
|
int | make_idle_i (HASH_MAP_ENTRY *&entry) |
| Non-locking version and actual implementation of make_idle (). More...
|
int | close_i (ACE_Handle_Set &reactor_registered, TAO_EventHandlerSet &unregistered) |
| Non-locking version and actual implementation of close (). More...
|
int | purge_entry_i (HASH_MAP_ENTRY *&entry) |
| Purge the entry from the Cache Map. More...
|
void | mark_invalid_i (HASH_MAP_ENTRY *&) |
| Mark the entry as invalid for use but keep it in cache. More...
|
int | get_last_index_bind (TAO_Cache_ExtId &key, TAO_Cache_IntId &val, HASH_MAP_ENTRY *&entry) |
int | is_entry_idle (HASH_MAP_ENTRY *&entry) |
void | sort_set (DESCRIPTOR_SET &entries, int size) |
| Sort the list of entries. More...
|
int | fill_set_i (DESCRIPTOR_SET &sorted_set) |
| Fill sorted_set in with the TAO_Transport_Descriptor_Interface's in a sorted order. More...
|
void | close_entries (DESCRIPTOR_SET &sorted_set, int size) |
| Look through the sorted set and close the connection on the required number of items in the set. More...
|
Static Private Methods |
int | cpscmp (const void *a, const void *b) |
| Used by qsort. More...
|
Private Attributes |
int | percent_ |
| The percentage of the cache to purge at one time. More...
|
TAO_Connection_Purging_Strategy * | purging_strategy_ |
| The underlying connection purging strategy. More...
|
HASH_MAP | cache_map_ |
| The hash map that has the connections. More...
|
ACE_Lock * | cache_lock_ |
| Lock for the map. More...
|