diff options
Diffstat (limited to 'src/maps')
| -rw-r--r-- | src/maps/hmap.h | 6 | ||||
| -rw-r--r-- | src/maps/hmap.tmpl | 15 | ||||
| -rw-r--r-- | src/maps/mtools.h | 4 | ||||
| -rw-r--r-- | src/maps/nmap.h | 3 | ||||
| -rw-r--r-- | src/maps/smap.h | 3 | ||||
| -rw-r--r-- | src/maps/smap.tmpl | 12 |
6 files changed, 22 insertions, 21 deletions
diff --git a/src/maps/hmap.h b/src/maps/hmap.h index 38ea2e4..a0824ec 100644 --- a/src/maps/hmap.h +++ b/src/maps/hmap.h @@ -9,6 +9,11 @@ using namespace std; +// void add_elem( obj_type x, key_type k ) --> Insert x +// void del_elem( key_type k ) --> Remove x +// obj_type get_elem( key_type k ) --> Return item that matches x +// void make_empty( ) --> Remove all items + template <class obj_type, class key_type> class hmap { @@ -72,7 +77,6 @@ public: virtual void make_empty( ); virtual void make_empty( void (*func)(key_type) ); virtual void del_elem ( const key_type &k ); - virtual void rename_key ( const key_type &k1, const key_type &k2 ); virtual obj_type set_elem ( const obj_type &x, const key_type &k ); virtual void run_func( void (*func)(obj_type) ); diff --git a/src/maps/hmap.tmpl b/src/maps/hmap.tmpl index cc2ec24..10facac 100644 --- a/src/maps/hmap.tmpl +++ b/src/maps/hmap.tmpl @@ -104,17 +104,6 @@ void hmap<obj_type, key_type>::del_elem( const key_type & k ) array[ i_current_pos ].info = DELETED; } -// Remove item x from the hash table. -template <class obj_type, class key_type> -void hmap<obj_type, key_type>::rename_key( const key_type & k1, const key_type & k2 ) -{ - int i_current_pos = find_pos( k1 ); - if( is_active( i_current_pos ) ) { - array[ i_current_pos ].info = DELETED; - add_elem( array[ i_current_pos ].element, k2 ); - } -} - // Finds item x and resets its value. template <class obj_type, class key_type> obj_type hmap<obj_type, key_type>::set_elem( const obj_type & x, const key_type & k ) @@ -286,4 +275,8 @@ hmap<obj_type, key_type>::get_size() return size; } + + + #endif + diff --git a/src/maps/mtools.h b/src/maps/mtools.h index 6062191..f32a49e 100644 --- a/src/maps/mtools.h +++ b/src/maps/mtools.h @@ -1,6 +1,7 @@ #ifndef MTOOLS_H #define MTOOLS_H + template <class type_> struct mtools { @@ -8,4 +9,7 @@ struct mtools }; #include "mtools.tmpl" + #endif + + diff --git a/src/maps/nmap.h b/src/maps/nmap.h index e29da3b..56d30f5 100644 --- a/src/maps/nmap.h +++ b/src/maps/nmap.h @@ -19,4 +19,7 @@ class nmap : public smap<obj_type, key_type> }; #include "nmap.tmpl" + #endif + + diff --git a/src/maps/smap.h b/src/maps/smap.h index a3ee89d..e056519 100644 --- a/src/maps/smap.h +++ b/src/maps/smap.h @@ -13,6 +13,7 @@ template <class obj_type, class key_type> class smap : public hmap<obj_type, key_type> { + private: pthread_mutex_t mut_smap; @@ -29,7 +30,6 @@ class smap : public hmap<obj_type, key_type> void add_elem ( const obj_type &x, const key_type &k ); obj_type set_elem ( const obj_type &x, const key_type &k ); void del_elem ( const key_type &k ); - void rename_key ( const key_type &k1, const key_type &k2 ); bool is_avail ( const key_type &k ); obj_type get_elem ( const key_type &k ); obj_type pop_elem ( const key_type &k ); @@ -52,4 +52,5 @@ class smap : public hmap<obj_type, key_type> }; #include "smap.tmpl" + #endif diff --git a/src/maps/smap.tmpl b/src/maps/smap.tmpl index 670b84d..3167504 100644 --- a/src/maps/smap.tmpl +++ b/src/maps/smap.tmpl @@ -15,6 +15,7 @@ smap<obj_type, key_type>::~smap() pthread_mutex_destroy( &mut_smap ); } + template <class obj_type, class key_type> void smap<obj_type, key_type>::lock_mutex() { pthread_mutex_lock( &mut_smap ); @@ -76,14 +77,6 @@ smap<obj_type, key_type>::del_elem( const key_type & k ) pthread_mutex_unlock( &mut_smap ); } -template <class obj_type, class key_type> void -smap<obj_type, key_type>::rename_key( const key_type & k1, const key_type & k2 ) -{ - pthread_mutex_lock ( &mut_smap ); - hmap<obj_type,key_type>::rename_key( k1, k2 ); - pthread_mutex_unlock( &mut_smap ); -} - template <class obj_type, class key_type> obj_type smap<obj_type, key_type>::get_elem( const key_type &k ) @@ -164,6 +157,7 @@ void smap<obj_type, key_type>::make_empty_insecure( void (*func)(key_type) ) hmap<obj_type,key_type>::make_empty( func ); } + template <class obj_type, class key_type> void smap<obj_type, key_type>::add_elem_insecure( const obj_type &x, const key_type &k ) { @@ -212,4 +206,6 @@ smap<obj_type, key_type>::get_key_vector_insecure() return hmap<obj_type,key_type>::get_key_vector(); } + #endif + |
