pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type > Class Template Reference

#include <hash_policy.hpp>

List of all members.

Public Types

typedef Size_Type size_type
typedef Trigger_Policy trigger_policy
typedef Size_Policy size_policy
 external_size_access = External_Size_Access
enum  { external_size_access = External_Size_Access }

Public Member Functions

 hash_standard_resize_policy (size_type suggested_size=8)
 hash_standard_resize_policy (const Size_Policy &, size_type suggested_size=8)
 hash_standard_resize_policy (const Size_Policy &, const Trigger_Policy &, size_type suggested_size=8)
virtual ~hash_standard_resize_policy ()
void swap (PB_ASSOC_CLASS_C_DEC &r_other)
Size_Policy & get_size_policy ()
const Size_Policy & get_size_policy () const
Trigger_Policy & get_trigger_policy ()
const Trigger_Policy & get_trigger_policy () const
size_type get_actual_size () const
void resize (size_type suggested_new_size)

Protected Member Functions

void notify_insert_search_start ()
void notify_insert_search_collision ()
void notify_insert_search_end ()
void notify_find_search_start ()
void notify_find_search_collision ()
void notify_find_search_end ()
void notify_erase_search_start ()
void notify_erase_search_collision ()
void notify_erase_search_end ()
void notify_inserted (size_type num_e)
void notify_erased (size_type num_e)
void notify_cleared ()
void notify_resized (size_type new_size)
size_type get_init_size () const
bool is_resize_needed () const
size_type get_new_size (size_type size, size_type num_used_e) const

Private Types

typedef Trigger_Policy my_trigger_policy_base
typedef Size_Policy my_size_policy_base
typedef pb_assoc::detail::int_to_type<
false > 
external_resize_false_indicator
typedef pb_assoc::detail::int_to_type<
true > 
external_resize_true_indicator

Private Member Functions

size_type get_actual_size (external_resize_true_indicator) const
void resize (size_type new_size, external_resize_true_indicator)
virtual void do_resize (size_type new_size)

Private Attributes

size_type m_size

Static Private Attributes

static pb_assoc::detail::int_to_type<
External_Size_Access > 
s_external_size_access_indicator


Detailed Description

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
class pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >

Definition at line 584 of file hash_policy.hpp.


Member Typedef Documentation

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
typedef pb_assoc::detail::int_to_type<false> pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::external_resize_false_indicator [private]

Definition at line 685 of file hash_policy.hpp.

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
typedef pb_assoc::detail::int_to_type<true> pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::external_resize_true_indicator [private]

Definition at line 689 of file hash_policy.hpp.

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
typedef Size_Policy pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::my_size_policy_base [private]

Definition at line 681 of file hash_policy.hpp.

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
typedef Trigger_Policy pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::my_trigger_policy_base [private]

Definition at line 679 of file hash_policy.hpp.

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
typedef Size_Policy pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::size_policy

Definition at line 589 of file hash_policy.hpp.

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
typedef Size_Type pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::size_type

Definition at line 587 of file hash_policy.hpp.

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
typedef Trigger_Policy pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::trigger_policy

Definition at line 588 of file hash_policy.hpp.


Member Enumeration Documentation

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
anonymous enum

Enumerator:
external_size_access 

Definition at line 591 of file hash_policy.hpp.


Constructor & Destructor Documentation

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::hash_standard_resize_policy ( size_type  suggested_size = 8  ) 

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::hash_standard_resize_policy ( const Size_Policy &  ,
size_type  suggested_size = 8 
)

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::hash_standard_resize_policy ( const Size_Policy &  ,
const Trigger_Policy &  ,
size_type  suggested_size = 8 
)

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
virtual pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::~hash_standard_resize_policy (  )  [virtual]


Member Function Documentation

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
virtual void pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::do_resize ( size_type  new_size  )  [private, virtual]

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
size_type pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::get_actual_size ( external_resize_true_indicator   )  const [inline, private]

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
size_type pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::get_actual_size (  )  const [inline]

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
size_type pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::get_init_size (  )  const [protected]

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
size_type pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::get_new_size ( size_type  size,
size_type  num_used_e 
) const [protected]

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
const Size_Policy& pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::get_size_policy (  )  const

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
Size_Policy& pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::get_size_policy (  ) 

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
const Trigger_Policy& pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::get_trigger_policy (  )  const

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
Trigger_Policy& pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::get_trigger_policy (  ) 

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
bool pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::is_resize_needed (  )  const [inline, protected]

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
void pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::notify_cleared (  )  [protected]

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
void pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::notify_erase_search_collision (  )  [inline, protected]

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
void pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::notify_erase_search_end (  )  [inline, protected]

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
void pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::notify_erase_search_start (  )  [inline, protected]

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
void pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::notify_erased ( size_type  num_e  )  [inline, protected]

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
void pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::notify_find_search_collision (  )  [inline, protected]

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
void pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::notify_find_search_end (  )  [inline, protected]

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
void pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::notify_find_search_start (  )  [inline, protected]

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
void pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::notify_insert_search_collision (  )  [inline, protected]

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
void pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::notify_insert_search_end (  )  [inline, protected]

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
void pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::notify_insert_search_start (  )  [inline, protected]

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
void pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::notify_inserted ( size_type  num_e  )  [inline, protected]

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
void pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::notify_resized ( size_type  new_size  )  [protected]

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
void pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::resize ( size_type  new_size,
external_resize_true_indicator   
) [private]

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
void pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::resize ( size_type  suggested_new_size  ) 

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
void pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::swap ( PB_ASSOC_CLASS_C_DEC &  r_other  )  [inline]


Member Data Documentation

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
size_type pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::m_size [private]

Definition at line 703 of file hash_policy.hpp.

template<class Size_Policy = pb_assoc::hash_exponential_size_policy<>, class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = size_t>
pb_assoc::detail::int_to_type<External_Size_Access> pb_assoc::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::s_external_size_access_indicator [static, private]

Definition at line 701 of file hash_policy.hpp.


The documentation for this class was generated from the following file:
Generated on Tue Feb 2 16:58:36 2010 for GNU C++ STL by  doxygen 1.4.7