OSDN Git Service

2006-02-22 Paolo Carlini <pcarlini@suse.de>
[pf3gnuchains/gcc-fork.git] / libstdc++-v3 / docs / html / ext / pb_assoc / hash_standard_resize_policy.html
1
2 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
3
4
5 <html>
6 <head>
7 <title>hash_standard_resize_policy Interface
8 </title>
9
10 </head>
11
12 <body>
13 <h1>
14 <tt>hash_standard_resize_policy
15 </tt>
16
17  Interface
18
19
20 </h1>
21
22 <p>A resize policy which delegates operations to size and trigger policies.
23 </p>
24
25 <ol>
26 <li>
27 <a href = "../../../../include/ext/pb_assoc/hash_policy.hpp"><tt>hash_policy.hpp</tt>
28 </a>
29
30 </li>
31
32 <li>
33 <a href = "#link1">Template parameters.
34 </a>
35
36 </li>
37
38 <li>
39 <a href = "#link2">Base classes.
40 </a>
41
42 </li>
43
44 <li>
45 Public Types and Constants:
46
47
48 <ol>
49 <li>
50 <a href = "#link3">General definitions.
51 </a>
52
53 </li>
54
55 <li>
56 <a href = "#link4">Policy definitions.
57 </a>
58
59 </li>
60
61 </ol>
62
63 </li>
64
65 <li>
66 Public Methods:
67
68
69 <ol>
70 <li>
71 <a href = "#link5">Constructors, destructor, and related.
72 </a>
73
74 </li>
75
76 <li>
77 <a href = "#link6">Policy access methods.
78 </a>
79
80 </li>
81
82 <li>
83 <a href = "#link7">Size access methods.
84 </a>
85
86 </li>
87
88 </ol>
89
90 </li>
91
92 <li>
93 Protected Methods:
94
95
96 <ol>
97 <li>
98 <a href = "#link8">Insert search notifications.
99 </a>
100
101 </li>
102
103 <li>
104 <a href = "#link9">Find search notifications.
105 </a>
106
107 </li>
108
109 <li>
110 <a href = "#link10">Erase search notifications.
111 </a>
112
113 </li>
114
115 <li>
116 <a href = "#link11">Content change notifications.
117 </a>
118
119 </li>
120
121 <li>
122 <a href = "#link12">Size change notifications.
123 </a>
124
125 </li>
126
127 <li>
128 <a href = "#link13">Queries.
129 </a>
130
131 </li>
132
133 </ol>
134
135 </li>
136
137 </ol>
138
139
140 <h2>
141 <a name = "link1">Template parameters.
142 </a>
143
144 </h2>
145
146 <table WIDTH = "100%" BORDER = "1">
147 <TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
148
149
150 <tr>
151 <td>
152 <pre><a name = "Size_Policy3735929689">Size_Policy</a></pre>
153
154
155 </td>
156
157 <td>
158 <p>Size policy type.</p>
159
160
161 </td>
162
163 <td>
164 <a href = "hash_exponential_size_policy.html"><tt>hash_exponential_size_policy&lt;&gt;</tt></a>
165
166
167 </td>
168
169 </tr>
170
171 <tr>
172 <td>
173 <pre><a name = "Trigger_Policy3735930002">Trigger_Policy</a></pre>
174
175
176 </td>
177
178 <td>
179 <p>Trigger policy type.</p>
180
181
182 </td>
183
184 <td>
185 <a href = "hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger&lt;&gt;</tt></a>
186
187
188 </td>
189
190 </tr>
191
192 <tr>
193 <td>
194 <pre><a name = "External_Size_Access3735929535">External_Size_Access</a></pre>
195
196
197 </td>
198
199 <td>
200 <p>Indicates whether physical sizes can be accessed externally.</p>
201
202
203 </td>
204
205 <td>
206 <tt><b>false</b></tt>
207
208
209 </td>
210
211 </tr>
212
213 <tr>
214 <td>
215 <pre><a name = "Size_Type3735929483">Size_Type</a></pre>
216
217
218 </td>
219
220 <td>
221 <p>Size type.</p>
222
223
224 </td>
225
226 <td>
227 size_t
228
229
230 </td>
231
232 </tr>
233
234 </table>
235
236 <h2>
237 <a name = "link2">Base classes.
238 </a>
239
240 </h2>
241
242 <table WIDTH = "100%" BORDER = "1">
243 <TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
244
245
246 <tr>
247 <td>
248 <pre><a href = "#Size_Policy3735929689">Size_Policy</a></pre>
249
250
251 </td>
252
253 <td>
254 <p>public</p>
255
256
257 </td>
258
259 </tr>
260
261 <tr>
262 <td>
263 <pre><a href = "#Trigger_Policy3735930002">Trigger_Policy</a></pre>
264
265
266 </td>
267
268 <td>
269 <p>public</p>
270
271
272 </td>
273
274 </tr>
275
276 </table>
277
278 <h2>
279 <a name = "link3">General definitions.
280 </a>
281
282 </h2>
283
284 <table WIDTH = "100%" BORDER = "1">
285 <TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
286
287
288 <tr>
289 <td>
290 <pre><a name = "size_type3735929547">size_type</a></pre>
291
292
293 </td>
294
295 <td>
296 <pre><a href = "#Size_Type3735929483">Size_Type</a></pre>
297
298
299 </td>
300
301 <td>
302 <p>Size type.</p>
303
304
305 </td>
306
307 </tr>
308
309 </table>
310
311 <h2>
312 <a name = "link4">Policy definitions.
313 </a>
314
315 </h2>
316
317 <table WIDTH = "100%" BORDER = "1">
318 <TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
319
320
321 <tr>
322 <td>
323 <pre><a name = "trigger_policy3735930066">trigger_policy</a></pre>
324
325
326 </td>
327
328 <td>
329 <pre><a href = "#Trigger_Policy3735930002">Trigger_Policy</a></pre>
330
331
332 </td>
333
334 <td>
335 <p>Trigger policy type.</p>
336
337
338 </td>
339
340 </tr>
341
342 <tr>
343 <td>
344 <pre><a name = "size_policy3735929753">size_policy</a></pre>
345
346
347 </td>
348
349 <td>
350 <pre><a href = "#Size_Policy3735929689">Size_Policy</a></pre>
351
352
353 </td>
354
355 <td>
356 <p>Size policy type.</p>
357
358
359 </td>
360
361 </tr>
362
363 <tr>
364 <td>
365 <pre><a name = "external_size_access3735929599">external_size_access</a></pre>
366
367
368 </td>
369
370 <td>
371 <pre><a href = "#External_Size_Access3735929535">External_Size_Access</a></pre>
372
373
374 </td>
375
376 <td>
377 <p>Indicates whether sizes can be accessed externally.</p>
378
379
380 </td>
381
382 </tr>
383
384 </table>
385
386 <h2>
387 <a name = "link5">Constructors, destructor, and related.
388 </a>
389
390 </h2>
391
392 <table WIDTH = "100%" BORDER = "1">
393 <TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
394
395
396 <tr>
397 <td>
398 <pre>  hash_standard_resize_policy
399   (<a href = "#size_type3735929547">size_type</a> suggested_size = 8)</pre>
400
401
402 </td>
403
404 <td>
405 <p>Default constructor, or constructor taking <font color = "#666666"><tt>suggested_size</tt></font>, a suggested size (the actual size will be determined by the <a href = "#Size_Policy3735929689"><tt>Size_Policy</tt></a> object).</p>
406
407
408 </td>
409
410 </tr>
411
412 <tr>
413 <td>
414 <pre>  hash_standard_resize_policy
415   (<b>const</b> <a href = "#Size_Policy3735929689">Size_Policy</a> &amp;r_size_policy,
416     <a href = "#size_type3735929547">size_type</a> suggested_size = 8)</pre>
417
418
419 </td>
420
421 <td>
422 <p>constructor taking some policies and <font color = "#666666"><tt>suggested_size</tt></font>, a suggested size (the actual size will be determined by the <a href = "#Size_Policy3735929689"><tt>Size_Policy</tt></a> object). <font color = "#666666"><tt>r_size_policy</tt></font> will be copied by the <a href = "#Size_Policy3735929689"><tt>Size_Policy</tt></a> object of this object.</p>
423
424
425 </td>
426
427 </tr>
428
429 <tr>
430 <td>
431 <pre>  hash_standard_resize_policy
432   (<b>const</b> <a href = "#Size_Policy3735929689">Size_Policy</a> &amp;r_size_policy,
433     <b>const</b> <a href = "#Trigger_Policy3735930002">Trigger_Policy</a> &amp;r_trigger_policy,
434     <a href = "#size_type3735929547">size_type</a> suggested_size = 8)</pre>
435
436
437 </td>
438
439 <td>
440 <p>constructor taking some policies and <font color = "#666666"><tt>suggested_size</tt></font>, a suggested size (the actual size will be determined by the <a href = "#Size_Policy3735929689"><tt>Size_Policy</tt></a> object). <font color = "#666666"><tt>r_size_policy</tt></font> will be copied by the <a href = "#Size_Policy3735929689"><tt>Size_Policy</tt></a> object of this object. <font color = "#666666"><tt>r_trigger_policy</tt></font> will be copied by the <a href = "#Trigger_Policy3735930002"><tt>Trigger_Policy</tt></a> object of this object.</p>
441
442
443 </td>
444
445 </tr>
446
447 <tr>
448 <td>
449 <pre><b>virtual</b>
450   ~hash_standard_resize_policy
451   ()</pre>
452
453
454 </td>
455
456 <td>
457 <p>Destructor.</p>
458
459
460 </td>
461
462 </tr>
463
464 <tr>
465 <td>
466 <pre><b>inline</b> <b>void</b>
467   swap
468   (<font color = "olive">hash_standard_resize_policy</font> &amp;r_other)</pre>
469
470
471 </td>
472
473 <td>
474 <p>Swaps content.</p>
475
476
477 </td>
478
479 </tr>
480
481 </table>
482
483 <h2>
484 <a name = "link6">Policy access methods.
485 </a>
486
487 </h2>
488
489 <table WIDTH = "100%" BORDER = "1">
490 <TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
491
492
493 <tr>
494 <td>
495 <pre><a href = "#Size_Policy3735929689">Size_Policy</a> &amp;
496   get_size_policy
497   ()</pre>
498
499
500 </td>
501
502 <td>
503 <p>Access to the <a href = "#Size_Policy3735929689"><tt>Size_Policy</tt></a> object used.</p>
504
505
506 </td>
507
508 </tr>
509
510 <tr>
511 <td>
512 <pre><b>const</b> <a href = "#Size_Policy3735929689">Size_Policy</a> &amp;
513   get_size_policy
514   () <b>const</b></pre>
515
516
517 </td>
518
519 <td>
520 <p>Const access to the <a href = "#Size_Policy3735929689"><tt>Size_Policy</tt></a> object used.</p>
521
522
523 </td>
524
525 </tr>
526
527 <tr>
528 <td>
529 <pre><a href = "#Trigger_Policy3735930002">Trigger_Policy</a> &amp;
530   get_trigger_policy
531   ()</pre>
532
533
534 </td>
535
536 <td>
537 <p>Access to the <a href = "#Trigger_Policy3735930002"><tt>Trigger_Policy</tt></a> object used.</p>
538
539
540 </td>
541
542 </tr>
543
544 <tr>
545 <td>
546 <pre><b>const</b> <a href = "#Trigger_Policy3735930002">Trigger_Policy</a> &amp;
547   get_trigger_policy
548   () <b>const</b></pre>
549
550
551 </td>
552
553 <td>
554 <p>Access to the <a href = "#Trigger_Policy3735930002"><tt>Trigger_Policy</tt></a> object used.</p>
555
556
557 </td>
558
559 </tr>
560
561 </table>
562
563 <h2>
564 <a name = "link7">Size access methods.
565 </a>
566
567 </h2>
568
569 <p>These methods are available only if the external size parameter indicates that external size access is allowed.</p>
570
571
572 <table WIDTH = "100%" BORDER = "1">
573 <TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
574
575
576 <tr>
577 <td>
578 <pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
579   get_actual_size
580   () <b>const</b></pre>
581
582
583 </td>
584
585 <td>
586 <p>Returns the actual size of the container.</p>
587
588
589 <p>This method returns the number of entries (used and unused) in the container. It is different from the container's size method, which returns the number of used entries. Calling this method will not compile when <a href = "#External_Size_Access3735929535"><tt>External_Size_Access</tt></a> == <tt><b>false</b></tt>.</p>
590
591
592 </td>
593
594 </tr>
595
596 <tr>
597 <td>
598 <pre><b>void</b>
599   resize
600   (<a href = "#size_type3735929547">size_type</a> suggested_new_size)</pre>
601
602
603 </td>
604
605 <td>
606 <p>Resizes the container to <font color = "#666666"><tt>suggested_new_size</tt></font>, a suggested size (the actual size will be determined by the <a href = "#Size_Policy3735929689"><tt>Size_Policy</tt></a> object).</p>
607
608
609 <p>Calling this method will not compile when <a href = "#External_Size_Access3735929535"><tt>External_Size_Access</tt></a> == <tt><b>false</b></tt>.</p>
610
611
612 </td>
613
614 </tr>
615
616 </table>
617
618 <h2>
619 <a name = "link8">Insert search notifications.
620 </a>
621
622 </h2>
623
624 <p>Notifications called during an insert operation.</p>
625
626
627 <table WIDTH = "100%" BORDER = "1">
628 <TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
629
630
631 <tr>
632 <td>
633 <pre><b>inline</b> <b>void</b>
634   notify_insert_search_start
635   ()</pre>
636
637
638 </td>
639
640 <td>
641 <p>Notifies a search started.</p>
642
643
644 </td>
645
646 </tr>
647
648 <tr>
649 <td>
650 <pre><b>inline</b> <b>void</b>
651   notify_insert_search_collision
652   ()</pre>
653
654
655 </td>
656
657 <td>
658 <p>Notifies a search encountered a collision.</p>
659
660
661 </td>
662
663 </tr>
664
665 <tr>
666 <td>
667 <pre><b>inline</b> <b>void</b>
668   notify_insert_search_end
669   ()</pre>
670
671
672 </td>
673
674 <td>
675 <p>Notifies a search ended.</p>
676
677
678 </td>
679
680 </tr>
681
682 </table>
683
684 <h2>
685 <a name = "link9">Find search notifications.
686 </a>
687
688 </h2>
689
690 <p>Notifications called during a find operation.</p>
691
692
693 <table WIDTH = "100%" BORDER = "1">
694 <TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
695
696
697 <tr>
698 <td>
699 <pre><b>inline</b> <b>void</b>
700   notify_find_search_start
701   ()</pre>
702
703
704 </td>
705
706 <td>
707 <p>Notifies a search started.</p>
708
709
710 </td>
711
712 </tr>
713
714 <tr>
715 <td>
716 <pre><b>inline</b> <b>void</b>
717   notify_find_search_collision
718   ()</pre>
719
720
721 </td>
722
723 <td>
724 <p>Notifies a search encountered a collision.</p>
725
726
727 </td>
728
729 </tr>
730
731 <tr>
732 <td>
733 <pre><b>inline</b> <b>void</b>
734   notify_find_search_end
735   ()</pre>
736
737
738 </td>
739
740 <td>
741 <p>Notifies a search ended.</p>
742
743
744 </td>
745
746 </tr>
747
748 </table>
749
750 <h2>
751 <a name = "link10">Erase search notifications.
752 </a>
753
754 </h2>
755
756 <p>Notifications called during an insert operation.</p>
757
758
759 <table WIDTH = "100%" BORDER = "1">
760 <TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
761
762
763 <tr>
764 <td>
765 <pre><b>inline</b> <b>void</b>
766   notify_erase_search_start
767   ()</pre>
768
769
770 </td>
771
772 <td>
773 <p>Notifies a search started.</p>
774
775
776 </td>
777
778 </tr>
779
780 <tr>
781 <td>
782 <pre><b>inline</b> <b>void</b>
783   notify_erase_search_collision
784   ()</pre>
785
786
787 </td>
788
789 <td>
790 <p>Notifies a search encountered a collision.</p>
791
792
793 </td>
794
795 </tr>
796
797 <tr>
798 <td>
799 <pre><b>inline</b> <b>void</b>
800   notify_erase_search_end
801   ()</pre>
802
803
804 </td>
805
806 <td>
807 <p>Notifies a search ended.</p>
808
809
810 </td>
811
812 </tr>
813
814 </table>
815
816 <h2>
817 <a name = "link11">Content change notifications.
818 </a>
819
820 </h2>
821
822 <p>Notifications called when the content of the table changes in a way that can affect the resize policy.</p>
823
824
825 <table WIDTH = "100%" BORDER = "1">
826 <TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
827
828
829 <tr>
830 <td>
831 <pre><b>inline</b> <b>void</b>
832   notify_inserted
833   (<a href = "#size_type3735929547">size_type</a> num_e)</pre>
834
835
836 </td>
837
838 <td>
839 <p>Notifies an element was inserted.</p>
840
841
842 </td>
843
844 </tr>
845
846 <tr>
847 <td>
848 <pre><b>inline</b> <b>void</b>
849   notify_erased
850   (<a href = "#size_type3735929547">size_type</a> num_e)</pre>
851
852
853 </td>
854
855 <td>
856 <p>Notifies an element was erased.</p>
857
858
859 </td>
860
861 </tr>
862
863 <tr>
864 <td>
865 <pre><b>void</b>
866   notify_cleared
867   ()</pre>
868
869
870 </td>
871
872 <td>
873 <p>Notifies the table was cleared.</p>
874
875
876 </td>
877
878 </tr>
879
880 </table>
881
882 <h2>
883 <a name = "link12">Size change notifications.
884 </a>
885
886 </h2>
887
888 <p>Notifications called when the table changes size.</p>
889
890
891 <table WIDTH = "100%" BORDER = "1">
892 <TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
893
894
895 <tr>
896 <td>
897 <pre><b>void</b>
898   notify_resized
899   (<a href = "#size_type3735929547">size_type</a> new_size)</pre>
900
901
902 </td>
903
904 <td>
905 <p>Notifies the table was resized to <font color = "#666666"><tt>new_size</tt></font>.</p>
906
907
908 </td>
909
910 </tr>
911
912 </table>
913
914 <h2>
915 <a name = "link13">Queries.
916 </a>
917
918 </h2>
919
920 <p>Called to query whether/how to resize.</p>
921
922
923 <table WIDTH = "100%" BORDER = "1">
924 <TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
925
926
927 <tr>
928 <td>
929 <pre><a href = "#size_type3735929547">size_type</a>
930   get_init_size
931   () <b>const</b></pre>
932
933
934 </td>
935
936 <td>
937 <p>Queries initial size.</p>
938
939
940 </td>
941
942 </tr>
943
944 <tr>
945 <td>
946 <pre><b>inline</b> <b>bool</b>
947   is_resize_needed
948   () <b>const</b></pre>
949
950
951 </td>
952
953 <td>
954 <p>Queries whether a resize is needed.</p>
955
956
957 </td>
958
959 </tr>
960
961 <tr>
962 <td>
963 <pre><a href = "#size_type3735929547">size_type</a>
964   get_new_size
965   (<a href = "#size_type3735929547">size_type</a> size, <a href = "#size_type3735929547">size_type</a> num_used_e) <b>const</b></pre>
966
967
968 </td>
969
970 <td>
971 <p>Queries what the new <font color = "#666666"><tt>size</tt></font> should be.</p>
972
973
974 </td>
975
976 </tr>
977
978 </table>
979
980
981
982 </body>
983
984 </html>
985
986