2 * @file sample_ranged_probe_fn.hpp
3 * Contains a ranged probe policy.
5 * Copyright Ami Tavory, IBM-HRL, 2004.
7 * Permission to use, copy, modify, sell, and distribute this software
8 * is hereby granted without fee, provided that the above copyright notice
9 * appears in all copies, and that both that copyright notice and this
10 * permission notice appear in supporting documentation.
12 * None of the above authors, nor IBM Haifa Research Laboratories, make any
13 * representation about the suitability of this software for any
14 * purpose. It is provided "as is" without express or implied warranty.
18 #ifndef SAMPLE_RANGED_PROBE_FN_HPP
19 #define SAMPLE_RANGED_PROBE_FN_HPP
24 * description = "A sample ranged-probe functor."
25 * comment = "This class serves to show the interface a ranged-probe
26 * functor needs to support.">
28 class sample_ranged_probe_fn
31 *******************************************************************************
32 *******************************************************************************
33 * <public_methods_group>
37 ***************************************************************************
38 ***************************************************************************
39 ** <group description = "Constructors, destructor, and related.">
43 * <fn description = "Default constructor."
44 * comment = "Must be default constructible.">
46 sample_ranged_probe_fn
51 * <fn description = "Copy constructor."
52 * comment = "Must be copy constructible.">
54 sample_ranged_probe_fn
55 (const sample_ranged_probe_fn
&r_other
);
59 * <fn description = "Swaps content."
60 * comment = "Must be swappable (if there is such a word).">
64 (sample_ranged_probe_fn
&r_other
);
68 ***************************************************************************
69 ***************************************************************************
74 *******************************************************************************
75 *******************************************************************************
76 * </public_methods_group>
81 *******************************************************************************
82 *******************************************************************************
83 * <protected_methods_group>
88 ***************************************************************************
89 ***************************************************************************
91 * description = "Notification methods.">
96 * description = "Notifies the policy object that the container's
97 * __size has changed to size."
98 * comment = "@@sample_ranged_probe_fn_size_type_comment">
106 ***************************************************************************
107 ***************************************************************************
113 ***************************************************************************
114 ***************************************************************************
116 * description = "Operators.">
120 * <fn description = "Transforms the const key reference
121 * r_key into the i-th position
122 * within the table. This method is called for
123 * each collision within the probe sequence.">
124 * comment = "@@sample_ranged_probe_fn_size_type_comment">
128 (const_key_reference r_key
,
133 ***************************************************************************
134 ***************************************************************************
143 #endif // #ifndef SAMPLE_RANGED_PROBE_FN_HPP