From 9cd3ccffd5372dfde3af478e3f832f18db4be3f1 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sat, 6 Apr 2013 13:14:41 +0200 Subject: tagging tags --- yhttpd-0.7.0/src/maps/smap.tmpl | 211 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 211 insertions(+) create mode 100644 yhttpd-0.7.0/src/maps/smap.tmpl (limited to 'yhttpd-0.7.0/src/maps/smap.tmpl') diff --git a/yhttpd-0.7.0/src/maps/smap.tmpl b/yhttpd-0.7.0/src/maps/smap.tmpl new file mode 100644 index 0000000..3167504 --- /dev/null +++ b/yhttpd-0.7.0/src/maps/smap.tmpl @@ -0,0 +1,211 @@ +#ifndef SMAP_CPP +#define SMAP_CPP + +#include "smap.h" + +template +smap::smap( double moc ) : hmap::hmap(moc) +{ + pthread_mutex_init( &mut_smap , NULL); +} + +template +smap::~smap() +{ + pthread_mutex_destroy( &mut_smap ); +} + + +template void +smap::lock_mutex() { + pthread_mutex_lock( &mut_smap ); +} + +template void +smap::unlock_mutex() { + pthread_mutex_unlock( &mut_smap ); +} + +template int +smap::get_size() +{ + int i_size; + pthread_mutex_lock ( &mut_smap ); + i_size = hmap::get_size(); + pthread_mutex_unlock( &mut_smap ); + return i_size; +} + +template void +smap::make_empty() +{ + pthread_mutex_lock ( &mut_smap ); + hmap::make_empty(); + pthread_mutex_unlock( &mut_smap ); +} + +template +void smap::make_empty( void (*func)(key_type) ) +{ + pthread_mutex_lock ( &mut_smap ); + hmap::make_empty( func ); + pthread_mutex_unlock( &mut_smap ); +} + + +template +void smap::add_elem( const obj_type &x, const key_type &k ) +{ + pthread_mutex_lock ( &mut_smap ); + hmap::add_elem( x, k ); + pthread_mutex_unlock( &mut_smap ); +} + +template +obj_type smap::set_elem( const obj_type &x, const key_type &k ) +{ + pthread_mutex_lock ( &mut_smap ); + hmap::set_elem( x, k ); + pthread_mutex_unlock( &mut_smap ); +} + +template void +smap::del_elem( const key_type & k ) +{ + pthread_mutex_lock ( &mut_smap ); + hmap::del_elem( k ); + pthread_mutex_unlock( &mut_smap ); +} + + +template +obj_type smap::get_elem( const key_type &k ) +{ + pthread_mutex_lock ( &mut_smap ); + obj_type ret_val = hmap::get_elem( k ); + pthread_mutex_unlock( &mut_smap ); + return ret_val; +} +template +obj_type smap::pop_elem( const key_type &k ) +{ + pthread_mutex_lock ( &mut_smap ); + obj_type ret_val = hmap::pop_elem( k ); + pthread_mutex_unlock( &mut_smap ); + return ret_val; +} + +template +bool smap::is_avail( const key_type &k ) +{ + pthread_mutex_lock ( &mut_smap ); + bool ret_val = hmap::is_avail( k ); + pthread_mutex_unlock( &mut_smap ); + return ret_val; +} + +template void +smap::run_func( void (*func)(obj_type) ) +{ + pthread_mutex_lock ( &mut_smap ); + hmap::run_func( func ); + pthread_mutex_unlock( &mut_smap ); +} + +template void +smap::run_func( void (*func)(obj_type, void*), void* v_arg ) +{ + pthread_mutex_lock ( &mut_smap ); + hmap::run_func( func, v_arg ); + pthread_mutex_unlock( &mut_smap ); +} + +template void +smap::run_func_on( void (*func)(obj_type), const key_type & k ) +{ + pthread_mutex_lock ( &mut_smap ); + hmap::run_func_on( func, k ); + pthread_mutex_unlock( &mut_smap ); +} + +template vector* +smap::get_key_vector() +{ + pthread_mutex_lock ( &mut_smap ); + vector* p_ret_vector = hmap::get_key_vector(); + pthread_mutex_unlock( &mut_smap ); + return p_ret_vector; +} + +// INSECURE METHODS + +template int +smap::get_size_insecure() +{ + return hmap::get_size(); +} + +template void +smap::make_empty_insecure() +{ + hmap::make_empty(); +} + +template +void smap::make_empty_insecure( void (*func)(key_type) ) +{ + hmap::make_empty( func ); +} + + +template +void smap::add_elem_insecure( const obj_type &x, const key_type &k ) +{ + hmap::add_elem( x, k ); +} + +template void +smap::del_elem_insecure( const key_type & k ) +{ + hmap::del_elem( k ); +} + +template +obj_type smap::get_elem_insecure( const key_type &k ) +{ + return hmap::get_elem( k ); +} + +template +obj_type smap::pop_elem_insecure( const key_type &k ) +{ + return hmap::pop_elem( k ); +} + +template +bool smap::is_avail_insecure( const key_type &k ) +{ + return hmap::is_avail( k ); +} + +template void +smap::run_func_insecure( void (*func)(obj_type) ) +{ + hmap::run_func( func ); +} + +template void +smap::run_func_insecure( void (*func)(obj_type, void*), void* v_arg ) +{ + hmap::run_func( func, v_arg ); +} + +template vector* +smap::get_key_vector_insecure() +{ + return hmap::get_key_vector(); +} + + +#endif + -- cgit v1.2.3