summaryrefslogtreecommitdiff
path: root/apps/JAWS3/jaws3-todo/Map_Manager_T.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'apps/JAWS3/jaws3-todo/Map_Manager_T.cpp')
-rw-r--r--apps/JAWS3/jaws3-todo/Map_Manager_T.cpp390
1 files changed, 0 insertions, 390 deletions
diff --git a/apps/JAWS3/jaws3-todo/Map_Manager_T.cpp b/apps/JAWS3/jaws3-todo/Map_Manager_T.cpp
deleted file mode 100644
index 1988e7a1597..00000000000
--- a/apps/JAWS3/jaws3-todo/Map_Manager_T.cpp
+++ /dev/null
@@ -1,390 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_CACHE_MAP_MANAGER_T_CPP
-#define JAWS_CACHE_MAP_MANAGER_T_CPP
-
-#include "jaws3/Map_Manager_T.h"
-
-template <class EXT_ID>
-JAWS_Cache_Map_Entry<EXT_ID>
-::JAWS_Cache_Map_Entry ( const EXT_ID &ext_id
- , ACE_Message_Block *&int_id
- , JAWS_Cache_Map_Entry<EXT_ID, INT_ID> *next
- , JAWS_Cache_Map_Entry<EXT_ID, INT_ID> *prev
- )
- : ext_id_ (ext_id)
- , int_id_ (int_id)
- , ref_count_ (1)
- , next_ (next)
- , prev_ (prev)
- , replacement_index_ (-1)
-{
-}
-
-template <class EXT_ID>
-JAWS_Cache_Map_Entry<EXT_ID>
-::JAWS_Cache_Map_Entry ( JAWS_Cache_Map_Entry<EXT_ID, INT_ID> *next
- , JAWS_Cache_Map_Entry<EXT_ID, INT_ID> *prev
- )
- : next_ (next)
- , prev_ (prev)
-{
-}
-
-
-template <class EXT_ID, class EQ_FUNC, class ACE_LOCK>
-class JAWS_Map_Manager
-{
-public:
-
- JAWS_Map_Manager (ACE_Allocator *alloc = 0);
- JAWS_Map_Manager (size_t size, ACE_Allocator *alloc = 0);
-
- int open ( size_t size = ACE_DEFAULT_MAP_SIZE
- , ACE_Allocator *alloc = 0);
-
- int close (void);
-
- ~JAWS_Map_Manager (void);
-
- int bind ( const EXT_ID &key
- , const void * const &data
- , size_t size
- , JAWS_Cache_Map_Entry<EXT_ID> *&entry
- );
-
- int rebind ( const EXT_ID &key
- , const void * const &data
- , size_t size
- , JAWS_Cache_Map_Entry<EXT_ID> *&entry
- );
-
- int find (const EXT_ID &key, JAWS_Cache_Map_Entry<EXT_ID> *&entry);
-
- int unbind (JAWS_Cache_Map_Entry<EXT_ID> *entry);
-
- ACE_Message_Block * make_message_block ( const void * const &data
- , size_t size);
-
- ACE_LOCK lock_;
-
- JAWS_Cache_Map_Entry<EXT_ID> *head_;
- JAWS_Cache_Map_Entry<EXT_ID> *tail_;
-
- ACE_Allocator *allocator_;
-
-};
-
-#define JAWS_CACHE_REPLACEMENT_TEMPLATE \
- template <class EXT_ID, class ACE_LOCK> \
- JAWS_Cache_Replacement<EXT_ID, ACE_LOCK>
-
-#define JAWS_LRU_CACHE_REPLACEMENT_TEMPLATE \
- template <class EXT_ID, class ACE_LOCK> \
- JAWS_Cache_Replacement<EXT_ID, ACE_LOCK>
-
-#define JAWS_LFU_CACHE_REPLACEMENT_TEMPLATE \
- template <class EXT_ID, class ACE_LOCK> \
- JAWS_Cache_Replacement<EXT_ID, ACE_LOCK>
-
-#define JAWS_FIFO_CACHE_REPLACEMENT_TEMPLATE \
- template <class EXT_ID, class ACE_LOCK> \
- JAWS_Cache_Replacement<EXT_ID, ACE_LOCK>
-
-JAWS_CACHE_REPLACEMENT_TEMPLATE::JAWS_Cache_Replacement (ACE_Allocator *alloc)
-{
- this->open (ACE_DEFAULT_MAP_SIZE, alloc);
-}
-
-JAWS_Cache_Replacement::
-JAWS_Cache_Replacement (size_t max_entries, ACE_Allocator *alloc)
-{
- this->open (max_entries, alloc);
-}
-
-int
-JAWS_CACHE_REPLACEMENT_TEMPLATE::open ( size_t max_entries
- , ACE_Allocator *alloc
- )
-{
- this->max_entries_ = max_entries;
- this->allocator_ = alloc;
-
- size_t bytes = max_entries * sizeof (JAWS_Cache_Map_Entry<EXT_ID> *);
- void *ptr;
-
- ACE_ALLOCATOR_RETURN (ptr, this->allocator_->malloc (bytes), -1);
-}
-
-int
-JAWS_CACHE_REPLACEMENT_TEMPLATE::close (void)
-{
-}
-
- virtual ~JAWS_Cache_Replacement (void);
-
- virtual int insert (JAWS_Cache_Map_Entry<EXT_ID> *entry) = 0;
- virtual int update (JAWS_Cache_Map_Entry<EXT_ID> *entry) = 0;
- virtual int remove (JAWS_Cache_Map_Entry<EXT_ID> *entry) = 0;
- virtual JAWS_Cache_Map_Entry<EXT_ID> * expire (void) = 0;
-
- JAWS_Cache_Map_Entry<EXT_ID> **table_;
- size_t max_entries_;
-
- ACE_Allocator *allocator_;
- ACE_LOCK lock_;
-
-};
-
-template <class EXT_ID, class ACE_LOCK>
-class JAWS_LRU_Cache_Replacement
- : public JAWS_Cache_Replacement<EXT_ID, ACE_LOCK>
-{
-public:
-
- JAWS_LRU_Cache_Replacement (ACE_Allocator *alloc = 0);
- JAWS_LRU_Cache_Replacement (size_t max_entries, ACE_Allocator *alloc = 0);
-
- int open ( size_t max_entries = ACE_DEFAULT_MAP_SIZE
- , ACE_Allocator *alloc = 0);
-
- int close (void);
-
- ~JAWS_LRU_Cache_Replacement (void);
-
- int insert (JAWS_Cache_Map_Entry<EXT_ID> *entry);
- int update (JAWS_Cache_Map_Entry<EXT_ID> *entry);
- int remove (JAWS_Cache_Map_Entry<EXT_ID> *entry);
- JAWS_Cache_Map_Entry<EXT_ID> * expire (void);
-
-protected:
-
- void insert_i (JAWS_Cache_Map_Entry<EXT_ID> *entry)
- {
- if (this->tail_ == -1)
- this->tail_ = 0;
-
- this->table_[this->tail_] = entry;
- this->next_[this->tail_] = this->tail_+1;
- this->prev_[this->tail_+1] = this->tail_;
- this->next_[this->tail_+1] = -1;
-
- if (this->head_ == -1)
- this->head_ = 0;
-
- this->count_++;
- }
-
- void update_i (int i)
- {
- if (i == this->tail_)
- return;
-
- JAWS_Cache_Map_Entry<EXT_ID> *entry = this->table_[i];
- this->remove_i (i);
- this->insert_i (entry);
- }
-
- void remove_i (int i)
- {
- if (this->count_ == 0 || i >= this->count_)
- return;
-
- --this->count_;
- if (i == this->tail_)
- this->tail_ = this->prev_[i];
- if (i == this->head_)
- this->head_ = this->next_[i];
-
- if (i < this->count_)
- {
- this->swap_i (i, this->count_);
- i = this->count_;
- }
-
- int p_i = this->prev_[i];
- int n_i = this->next_[i];
- this->next_[p_i] = n_i;
- this->prev_[n_i] = p_i;
-
- if (this->count_ == 0)
- this->head_ = -1;
- }
-
- void swap_i (int i, int j)
- {
- int p_i, p_j, n_i, n_j;
-
- p_i = this->prev_[i];
- n_i = this->next_[i];
- p_j = this->prev_[j];
- n_j = this->next_[j];
-
- this->next_[p_i] = j;
- this->prev_[n_i] = j;
- this->next_[p_j] = i;
- this->prev_[n_j] = i;
-
- JAWS_Cache_Map_Entry<EXT_ID> *entry = this->table_[i];
- this->table_[i] = this->table_[j];
- this->table_[j] = entry;
-
- this->table_[i]->replacement_index_ = i;
- this->table_[j]->replacement_index_ = j;
-
- if (this->head_ == i || this->head_ == j)
- this->head_ = (this->head_ == i) ? j : i;
-
- if (this->tail_ == i || this->tail_ == j)
- this->tail_ = (this->tail_ == i) ? j : i;
- }
-
-private:
-
- int count_;
-
- int head_;
- int tail_;
-
- int *next_;
- int *prev_;
-
-};
-
-template <class EXT_ID, class ACE_LOCK>
-class JAWS_LFU_Cache_Replacement
- : public JAWS_Cache_Replacement<EXT_ID, ACE_LOCK>
-{
-public:
-
- JAWS_LFU_Cache_Replacement (ACE_Allocator *alloc = 0);
- JAWS_LFU_Cache_Replacement (size_t max_entries, ACE_Allocator *alloc = 0);
-
- int open ( size_t max_entries = ACE_DEFAULT_MAP_SIZE
- , ACE_Allocator *alloc = 0);
-
- int close (void);
-
- ~JAWS_LFU_Cache_Replacement (void);
-
- int insert (JAWS_Cache_Map_Entry<EXT_ID> *entry);
- int update (JAWS_Cache_Map_Entry<EXT_ID> *entry);
- int remove (JAWS_Cache_Map_Entry<EXT_ID> *entry);
- JAWS_Cache_Map_Entry<EXT_ID> * expire (void);
-
-protected:
-
- int sift_up (int i)
- {
- JAWS_Cache_Map_Entry<EXT_ID> *entry = this->table_[i];
-
- while (i > 0)
- {
- int p = this->parent (i);
-
- if (entry->ref_count_ >= this->table_[p]->ref_count_)
- break;
-
- this->table_[i] = this->table_[p];
- this->table_[i]->replacement_index_ = i;
-
- i = p;
- }
-
- this->table_[i] = entry;
- this->table_[i]->replacement_index_ = i;
-
- return i;
- }
-
- int sift_down (int i)
- {
- JAWS_Cache_Map_Entry<EXT_ID> *entry = this->table_[i];
-
- while (this->left (i) < this->count_)
- {
- int l, r;
-
- l = this->left (i);
- r = this->right (i);
-
- if (r >= this->count_
- || this->table_[l]->ref_count_ <= this->table_[r]->ref_count_)
- r = l;
-
- if (entry->ref_count_ <= this->table_[r]->ref_count_)
- break;
-
- this->table_[i] = this->table_[r];
- this->table_[i]->replacement_index_ = i;
-
- i = r;
- }
-
- this->table_[i] = entry;
- this->table_[i]->replacement_index_ = i;
-
- return i;
- }
-
- int sift (int i)
- {
- int i_sifted;
-
- i_sifted = this->sift_up (i);
- if (i_sifted == i)
- i_sifted = this->sift_down (i);
-
- return i_sifted;
- }
-
- int parent (int i) { return --i/2; }
- int left (int i) { return 2*i+1; }
- int right (int i) { return 2*i+2; }
-
-private:
-
- int count_;
-
-};
-
-template <class EXT_ID, class ACE_LOCK>
-class JAWS_FIFO_Cache_Replacement
- : public JAWS_Cache_Replacement<EXT_ID, ACE_LOCK>
-{
-public:
-
- JAWS_FIFO_Cache_Replacement (ACE_Allocator *alloc = 0);
- JAWS_FIFO_Cache_Replacement (size_t max_entries, ACE_Allocator *alloc = 0);
-
- int open ( size_t max_entries = ACE_DEFAULT_MAP_SIZE
- , ACE_Allocator *alloc = 0);
-
- int close (void);
-
- ~JAWS_FIFO_Cache_Replacement (void);
-
- int insert (JAWS_Cache_Map_Entry<EXT_ID> *entry);
- int update (JAWS_Cache_Map_Entry<EXT_ID> *entry);
- int remove (JAWS_Cache_Map_Entry<EXT_ID> *entry);
- JAWS_Cache_Map_Entry<EXT_ID> * expire (void);
-
- int head_;
- int tail_;
-
- JAWS_FIFO_Cache_Replacement_Info *info_;
-
-};
-
-
-template <class EXT_ID, class INT_ID, class HASH_FUNC, class EQ_FUNC, class ACE_LOCK>
-class JAWS_Cache_Map_Manager
-{
-public:
-
-
- JAWS_Map_Manager<EXT_ID, INT_ID, EQ_FUNC, ACE_
-};
-
-#endif /* JAWS_CACHE_MAP_MANAGER_T_CPP */