23#ifndef DD_CACHE__OBJECT_REGISTRY_INCLUDED
24#define DD_CACHE__OBJECT_REGISTRY_INCLUDED
75 std::unique_ptr<Local_multi_map<Spatial_reference_system>>
203 template <
typename T>
208 template <
typename T>
226 template <
typename T>
228 return m_map<T>()->begin();
243 template <
typename T>
245 return m_map<T>()->end();
261 template <
typename K,
typename T>
263 const auto map = m_map<T>();
277 template <
typename T>
281 m_map<T>()->put(element);
291 template <
typename T>
296 const auto map = m_map<T>();
297 assert(
map !=
nullptr);
298 if (
map) m_map<T>()->remove(element);
307 template <
typename T>
312 const auto map = m_map<T>();
313 if (
map) m_map<T>()->erase();
321 erase<Abstract_table>();
324 erase<Column_statistics>();
326 erase<Resource_group>();
329 erase<Spatial_reference_system>();
340 template <
typename T>
342 const auto map = m_map<T>();
343 if (
map)
return map->size();
354 return size<Abstract_table>() + size<Charset>() + size<Collation>() +
355 size<Column_statistics>() + size<Event>() + size<Resource_group>() +
356 size<Routine>() + size<Schema>() + size<Spatial_reference_system>() +
367 template <
typename T>
370 const auto map = m_map<T>();
Implementation of a dictionary client.
Definition: cache_element.h:68
Implementation of a local set of maps for a given object type.
Definition: local_multi_map.h:52
Element_map< constT *, Cache_element< T > >::Iterator Iterator
Definition: multi_map_base.h:127
Object registry containing several maps.
Definition: object_registry.h:61
Local_multi_map< Tablespace > * m_map(Type_selector< Tablespace >)
Definition: object_registry.h:178
void erase()
Remove and delete all objects of a given type from the registry.
Definition: object_registry.h:308
Local_multi_map< Event > * m_map(Type_selector< Event >)
Definition: object_registry.h:135
const Local_multi_map< Event > * m_map(Type_selector< Event >) const
Definition: object_registry.h:139
void put(Cache_element< T > *element)
Add a new element to the registry.
Definition: object_registry.h:278
std::unique_ptr< Local_multi_map< Event > > m_event_map
Definition: object_registry.h:71
const Local_multi_map< Resource_group > * m_map(Type_selector< Resource_group >) const
Definition: object_registry.h:147
T * create_map_if_needed(std::unique_ptr< T > *map)
Create a map instance unless it exists already.
Definition: object_registry.h:90
const Local_multi_map< Column_statistics > * m_map(Type_selector< Column_statistics >) const
Definition: object_registry.h:130
size_t size() const
Get the number of objects of a given type in the registry.
Definition: object_registry.h:341
void create_map(std::unique_ptr< T > *map)
Definition: dd.cc:111
const Local_multi_map< Routine > * m_map(Type_selector< Routine >) const
Definition: object_registry.h:156
std::unique_ptr< Local_multi_map< Tablespace > > m_tablespace_map
Definition: object_registry.h:77
Local_multi_map< T > * m_map()
Template function to get a map instance.
Definition: object_registry.h:204
const Local_multi_map< Collation > * m_map(Type_selector< Collation >) const
Definition: object_registry.h:122
void erase_all()
Remove and delete all objects from the registry.
Definition: object_registry.h:320
Local_multi_map< Resource_group > * m_map(Type_selector< Resource_group >)
Definition: object_registry.h:143
std::unique_ptr< Local_multi_map< Collation > > m_collation_map
Definition: object_registry.h:69
std::unique_ptr< Local_multi_map< Routine > > m_routine_map
Definition: object_registry.h:73
Multi_map_base< T >::Iterator end()
Get an iterator to one past the end of the local reverse map.
Definition: object_registry.h:244
void remove(Cache_element< T > *element)
Remove an element from the registry.
Definition: object_registry.h:292
std::unique_ptr< Local_multi_map< Abstract_table > > m_abstract_table_map
Definition: object_registry.h:67
const Local_multi_map< Schema > * m_map(Type_selector< Schema >) const
Definition: object_registry.h:164
void get(const K &key, Cache_element< T > **element) const
Get the element corresponding to the given key.
Definition: object_registry.h:262
size_t size_all() const
Get the total number of objects in the registry.
Definition: object_registry.h:353
Local_multi_map< Collation > * m_map(Type_selector< Collation >)
Definition: object_registry.h:118
Local_multi_map< Abstract_table > * m_map(Type_selector< Abstract_table >)
Overloaded functions to use for selecting map instance based on a key type.
Definition: object_registry.h:101
Local_multi_map< Column_statistics > * m_map(Type_selector< Column_statistics >)
Definition: object_registry.h:126
std::unique_ptr< Local_multi_map< Column_statistics > > m_column_statistics_map
Definition: object_registry.h:70
Multi_map_base< T >::Iterator begin()
Get an iterator to the beginning of the local reverse map.
Definition: object_registry.h:227
std::unique_ptr< Local_multi_map< Resource_group > > m_resource_group_map
Definition: object_registry.h:72
const Local_multi_map< Abstract_table > * m_map(Type_selector< Abstract_table >) const
Definition: object_registry.h:105
void dump() const
Debug dump of the object registry to stderr.
Definition: object_registry.h:368
const Local_multi_map< Charset > * m_map(Type_selector< Charset >) const
Definition: object_registry.h:114
std::unique_ptr< Local_multi_map< Charset > > m_charset_map
Definition: object_registry.h:68
Local_multi_map< Routine > * m_map(Type_selector< Routine >)
Definition: object_registry.h:152
std::unique_ptr< Local_multi_map< Schema > > m_schema_map
Definition: object_registry.h:74
const Local_multi_map< Tablespace > * m_map(Type_selector< Tablespace >) const
Definition: object_registry.h:182
const Local_multi_map< T > * m_map() const
Definition: object_registry.h:209
Local_multi_map< Spatial_reference_system > * m_map(Type_selector< Spatial_reference_system >)
Definition: object_registry.h:168
Local_multi_map< Charset > * m_map(Type_selector< Charset >)
Definition: object_registry.h:110
Local_multi_map< Schema > * m_map(Type_selector< Schema >)
Definition: object_registry.h:160
const Local_multi_map< Spatial_reference_system > * m_map(Type_selector< Spatial_reference_system >) const
Definition: object_registry.h:173
std::unique_ptr< Local_multi_map< Spatial_reference_system > > m_spatial_reference_system_map
Definition: object_registry.h:76
The version of the current data dictionary table definitions.
Definition: dictionary_client.h:42
std::map< Key, Value, Compare, ut::allocator< std::pair< const Key, Value > > > map
Specialization of map which uses ut_allocator.
Definition: ut0new.h:2891
required string key
Definition: replication_asynchronous_connection_failover.proto:59
Definition: object_registry.h:64