STLdoc
STLdocumentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
sample_resize_trigger.hpp
Go to the documentation of this file.
1 // -*- C++ -*-
2 
3 // Copyright (C) 2005-2013 Free Software Foundation, Inc.
4 //
5 // This file is part of the GNU ISO C++ Library. This library is free
6 // software; you can redistribute it and/or modify it under the terms
7 // of the GNU General Public License as published by the Free Software
8 // Foundation; either version 3, or (at your option) any later
9 // version.
10 
11 // This library is distributed in the hope that it will be useful, but
12 // WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 // General Public License for more details.
15 
16 // Under Section 7 of GPL version 3, you are granted additional
17 // permissions described in the GCC Runtime Library Exception, version
18 // 3.1, as published by the Free Software Foundation.
19 
20 // You should have received a copy of the GNU General Public License and
21 // a copy of the GCC Runtime Library Exception along with this program;
22 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
23 // <http://www.gnu.org/licenses/>.
24 
25 // Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
26 
27 // Permission to use, copy, modify, sell, and distribute this software
28 // is hereby granted without fee, provided that the above copyright
29 // notice appears in all copies, and that both that copyright notice
30 // and this permission notice appear in supporting documentation. None
31 // of the above authors, nor IBM Haifa Research Laboratories, make any
32 // representation about the suitability of this software for any
33 // purpose. It is provided "as is" without express or implied
34 // warranty.
35 
41 #ifndef PB_DS_SAMPLE_RESIZE_TRIGGER_HPP
42 #define PB_DS_SAMPLE_RESIZE_TRIGGER_HPP
43 
44 namespace __gnu_pbds
45 {
48  {
49  public:
52 
55 
58 
60  inline void
62 
63  protected:
65  inline void
67 
69  inline void
71 
73  inline void
75 
77  inline void
79 
81  inline void
83 
85  inline void
87 
89  inline void
91 
93  inline void
95 
97  inline void
99 
102  inline void
103  notify_inserted(size_type num_entries);
104 
106  inline void
107  notify_erased(size_type num_entries);
108 
110  void
111  notify_cleared();
112 
115  void
116  notify_resized(size_type new_size);
117 
119  void
121 
123  inline bool
124  is_resize_needed() const;
125 
127  inline bool
128  is_grow_needed(size_type size, size_type num_entries) const;
129 
130  private:
132  virtual void
134  };
135 }
136 #endif
bool is_resize_needed() const
Queries whether a resize is needed.
sample_range_hashing(const sample_resize_trigger &)
Copy constructor.
void notify_erased(size_type num_entries)
Notifies an element was erased.
void notify_erase_search_end()
Notifies a search ended.
void notify_externally_resized(size_type new_size)
Notifies the table was resized externally.
virtual void do_resize(size_type)
Resizes to new_size.
void notify_insert_search_start()
Notifies a search started.
void notify_erase_search_start()
Notifies a search started.
A sample resize trigger policy.
Definition: sample_resize_trigger.hpp:47
bool is_grow_needed(size_type size, size_type num_entries) const
Queries whether a grow is needed.
void notify_find_search_start()
Notifies a search started.
sample_resize_trigger()
Default constructor.
void notify_resized(size_type new_size)
void notify_erase_search_collision()
Notifies a search encountered a collision.
std::size_t size_type
Size type.
Definition: sample_resize_trigger.hpp:51
void notify_insert_search_collision()
Notifies a search encountered a collision.
void notify_find_search_collision()
Notifies a search encountered a collision.
void notify_find_search_end()
Notifies a search ended.
__SIZE_TYPE__ size_t
Definition: stddef.h:212
void swap(sample_resize_trigger &)
Swaps content.
void notify_inserted(size_type num_entries)
void notify_cleared()
Notifies the table was cleared.
void notify_insert_search_end()
Notifies a search ended.