]> rtime.felk.cvut.cz Git - l4.git/blob - l4/pkg/libstdc++-v3/contrib/libstdc++-v3-4.1.0/docs/html/ext/pb_assoc/sample_range_hashing.hpp
update
[l4.git] / l4 / pkg / libstdc++-v3 / contrib / libstdc++-v3-4.1.0 / docs / html / ext / pb_assoc / sample_range_hashing.hpp
1 /** \r
2 * @file sample_range_hashing.hpp\r
3 * Contains a range hashing policy.\r
4\r
5 * Copyright Ami Tavory, IBM-HRL, 2004.\r
6\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
11 *\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
15 **/\r
16 \r
17 \r
18 #ifndef SAMPLE_RANGE_HASHING_HPP\r
19 #define SAMPLE_RANGE_HASHING_HPP\r
20 \r
21 \r
22 /**\r
23 * <class \r
24 *   description = "A sample range-hashing functor."\r
25 *  comment = "This class serves to show the interface a range-hashing \r
26 *       functor needs to support.">\r
27 **/\r
28 class sample_range_hashing\r
29 {\r
30 /**\r
31 *******************************************************************************\r
32 *******************************************************************************\r
33 * <public_methods_group>\r
34 **/\r
35 public:\r
36         /**\r
37         ***************************************************************************\r
38         ***************************************************************************\r
39         ** <group description = "Constructors, destructor, and related.">\r
40         **/\r
41 \r
42         /*\r
43         * <fn description = "Default constructor."\r
44         *       comment = "Must be default constructible.">\r
45         **/\r
46                 sample_range_hashing\r
47                 ();\r
48         /** </fn> **/\r
49 \r
50         /*\r
51         * <fn description = "Copy constructor."\r
52         *       comment = "Must be copy constructible.">\r
53         **/\r
54                 sample_range_hashing\r
55                 (const sample_range_hashing &r_other);\r
56         /** </fn> **/\r
57 \r
58         /*\r
59         * <fn description = "Swaps content."\r
60         *       comment = "Must be swappable (if there is such a word).">\r
61         **/\r
62         inline void\r
63                 swap\r
64                 (sample_range_hashing &r_other);\r
65         /** </fn> **/\r
66 \r
67         /*\r
68         ***************************************************************************\r
69         ***************************************************************************\r
70         * </group>\r
71         **/\r
72 \r
73 /**\r
74 *******************************************************************************\r
75 *******************************************************************************\r
76 * </public_methods_group>\r
77 **/\r
78 \r
79         \r
80 /**\r
81 *******************************************************************************\r
82 *******************************************************************************\r
83 * <protected_methods_group>\r
84 **/\r
85 protected:\r
86 \r
87         /**\r
88         ***************************************************************************\r
89         ***************************************************************************\r
90         ** <group \r
91         *         description = "Notification methods.">\r
92         **/\r
93         \r
94         /*\r
95         * <fn \r
96         *   description = "Notifies the policy object that the container's\r
97         *         __size has changed to size."\r
98         *       comment = "@@sample_range_hashing_size_type_comment">\r
99         **/ \r
100         void \r
101                 notify_resized\r
102                 (size_type size);\r
103         /** </fn> **/\r
104 \r
105         /**\r
106         ***************************************************************************\r
107         ***************************************************************************\r
108         ** </group>\r
109         **/\r
110 \r
111 \r
112         /**\r
113         ***************************************************************************\r
114         ***************************************************************************\r
115         ** <group \r
116         *         description = "Operators.">\r
117         **/\r
118         \r
119         /*\r
120         * <fn description = "Transforms the __hash value hash into a \r
121         *       ranged-hash value.">\r
122         *       comment = "@@sample_range_hashing_size_type_comment">\r
123         **/ \r
124         inline size_type\r
125                 operator()\r
126                 (size_type hash) const;\r
127         /** </fn> **/\r
128 \r
129         /**\r
130         ***************************************************************************\r
131         ***************************************************************************\r
132         ** </group>\r
133         **/\r
134 \r
135 \r
136 /**\r
137 *******************************************************************************\r
138 *******************************************************************************\r
139 * </protected_methods_group>\r
140 **/\r
141 };\r
142 /**\r
143 * </class>\r
144 **/\r
145 \r
146 \r
147 #endif // #ifndef SAMPLE_RANGE_HASHING_HPP\r