diff options
| author | Paul Buetow <paul@buetow.org> | 2013-04-06 13:14:41 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2013-04-06 13:14:41 +0200 |
| commit | 9cd3ccffd5372dfde3af478e3f832f18db4be3f1 (patch) | |
| tree | 631c295a4a4a16b57502b847626763a279bf6df7 /ychat-0.7.6/src/maps/shashmap.tmpl | |
| parent | 13aaf70af703748fe096e0664c305cd202637ad2 (diff) | |
tagging tags
Diffstat (limited to 'ychat-0.7.6/src/maps/shashmap.tmpl')
| -rw-r--r-- | ychat-0.7.6/src/maps/shashmap.tmpl | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/ychat-0.7.6/src/maps/shashmap.tmpl b/ychat-0.7.6/src/maps/shashmap.tmpl new file mode 100644 index 0000000..6a70f61 --- /dev/null +++ b/ychat-0.7.6/src/maps/shashmap.tmpl @@ -0,0 +1,129 @@ +template<class obj_type> +shashmap<obj_type>::shashmap() +{ + pthread_mutex_init( &mut_shashmap, NULL ); +} + +template<class obj_type> +shashmap<obj_type>::~shashmap() +{ + pthread_mutex_destroy( &mut_shashmap ); +} + +template<class obj_type> +void +shashmap<obj_type>::add_elem(obj_type t_obj, string s_key) +{ + pthread_mutex_lock( &mut_shashmap ); + (*this)[s_key] = t_obj; + pthread_mutex_unlock( &mut_shashmap ); +} + +template<class obj_type> +void +shashmap<obj_type>::add_elem_insecure(obj_type t_obj, string s_key) +{ + (*this)[s_key] = t_obj; +} + +template<class obj_type> +obj_type +shashmap<obj_type>::get_set_elem(obj_type t_obj, string s_key) +{ + pthread_mutex_lock( &mut_shashmap ); + obj_type t_ret = hashmap<obj_type>::get_set_elem(t_obj, s_key); + pthread_mutex_unlock( &mut_shashmap ); + return t_ret; +} + +template<class obj_type> +void +shashmap<obj_type>::set_elem(obj_type t_obj, string s_key) +{ + pthread_mutex_lock( &mut_shashmap ); + (*this)[s_key] = t_obj; + pthread_mutex_unlock( &mut_shashmap ); +} + +template<class obj_type> +obj_type +shashmap<obj_type>::get_elem(string s_key) +{ + pthread_mutex_lock( &mut_shashmap ); + obj_type t_ret = hashmap<obj_type>::get_elem(s_key); + pthread_mutex_unlock( &mut_shashmap ); + return t_ret; +} + +template<class obj_type> +void +shashmap<obj_type>::del_elem(string s_key) +{ + pthread_mutex_lock( &mut_shashmap ); + hashmap<obj_type>::erase(s_key); + pthread_mutex_unlock( &mut_shashmap ); +} + +template<class obj_type> +void +shashmap<obj_type>::del_elem_insecure(string s_key) +{ + hashmap<obj_type>::erase(s_key); +} + +template<class obj_type> +vector<string>* +shashmap<obj_type>::get_key_vector() +{ + pthread_mutex_lock( &mut_shashmap ); + vector<string>* p_vec = hashmap<obj_type>::get_key_vector(); + pthread_mutex_unlock( &mut_shashmap ); + return p_vec; +} + +template<class obj_type> +void +shashmap<obj_type>::clear() +{ + pthread_mutex_lock( &mut_shashmap ); + hashmap<obj_type>::clear(); + pthread_mutex_unlock( &mut_shashmap ); +} + +template<class obj_type> +int +shashmap<obj_type>::size() +{ + pthread_mutex_lock( &mut_shashmap ); + int i_size = hashmap<obj_type>::size(); + pthread_mutex_unlock( &mut_shashmap ); + return i_size; +} + +template<class obj_type> +bool +shashmap<obj_type>::exists(string s_key) +{ + pthread_mutex_lock( &mut_shashmap ); + bool b_ret = hashmap<obj_type>::exists(s_key); + pthread_mutex_unlock( &mut_shashmap ); + return b_ret; +} + +template<class obj_type> +void +shashmap<obj_type>::run_func( void (*func)(obj_type) ) +{ + pthread_mutex_lock( &mut_shashmap ); + hashmap<obj_type>::run_func(func); + pthread_mutex_unlock( &mut_shashmap ); +} + +template<class obj_type> +void +shashmap<obj_type>::run_func( void (*func)(obj_type, void*), void* v_arg ) +{ + pthread_mutex_lock( &mut_shashmap ); + hashmap<obj_type>::run_func(func, v_arg); + pthread_mutex_unlock( &mut_shashmap ); +} |
