sample_resize_trigger Interface (original) (raw)

A sample resize trigger policy.

This class serves to show the interface a trigger policy needs to support.

Defined in: sample_resize_trigger.hpp

Public Types and Constants

General definitions.

Type Definition Description
size_type size_t, e.g. Size type.

Public Methods

Method Description
sample_resize_trigger () Default constructor. Must be default constructable.
sample_range_hashing (const sample_resize_trigger &other) Copy constructor. Must be copy constructable.
inline void swap (sample_resize_trigger &other) Swaps content. Must be swappable (if there is such a word).

Protected Methods

Insert search notifications.

Notifications called during an insert operation.

Method Description
inline void notify_insert_search_start () Notifies a search started.
inline void notify_insert_search_collision () Notifies a search encountered a collision.
inline void notify_insert_search_end () Notifies a search ended.

Find search notifications.

Notifications called during a find operation.

Method Description
inline void notify_find_search_start () Notifies a search started.
inline void notify_find_search_collision () Notifies a search encountered a collision.
inline void notify_find_search_end () Notifies a search ended.

Erase search notifications.

Notifications called during an insert operation.

Method Description
inline void notify_erase_search_start () Notifies a search started.
inline void notify_erase_search_collision () Notifies a search encountered a collision.
inline void notify_erase_search_end () Notifies a search ended.

Content change notifications.

Notifications called when the content of the table changes in a way that can affect the resize policy.

Method Description
inline void notify_inserted (size_type num_entries) Notifies an element was inserted. the total number of entries in the table is num_entries.
inline void notify_erased (size_type num_entries) Notifies an element was erased.
void notify_cleared () Notifies the table was cleared.

Size change notifications.

Notifications called when the table changes size.

Method Description
void notify_resized (size_type new_size) Notifies the table was resized as a result of this object's signifying that a resize is needed.
void notify_externally_resized (size_type new_size) Notifies the table was resized externally.

Queries.

Called to query whether/how to resize.

Method Description
inline bool is_resize_needed () const Queries whether a resize is needed.
inline bool is_grow_needed (size_type size, size_type num_entries) const Queries whether a grow is needed. This method is called only if this object indicated resize is needed. The actual size of the table is size, and the number of entries in it is num_entries.

Private Methods

Overrides.

Method Description
virtual void do_resize (size_type new_size) Resizes to new_size.