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