| 
| virtual void  | cache_init (const mysqlrouter::ClusterType cluster_type, const unsigned router_id, const std::string &clusterset_id, const metadata_servers_list_t &metadata_servers, const MetadataCacheTTLConfig &ttl_config, const mysqlrouter::SSLOptions &ssl_options, const mysqlrouter::TargetCluster &target_cluster, const MetadataCacheMySQLSessionConfig &session_config, const RouterAttributes &router_attributes, size_t thread_stack_size=mysql_harness::kDefaultStackSizeInKiloBytes, bool use_cluster_notifications=false, const uint64_t view_id=0)=0 | 
|   | Initialize a MetadataCache object and start caching.  More...
  | 
|   | 
| virtual void  | instance_name (const std::string &inst_name)=0 | 
|   | 
| virtual std::string  | instance_name () const =0 | 
|   | 
| virtual bool  | is_initialized () noexcept=0 | 
|   | 
| virtual bool  | fetch_whole_topology () const =0 | 
|   | 
| virtual void  | fetch_whole_topology (bool val)=0 | 
|   | 
| virtual mysqlrouter::ClusterType  | cluster_type () const =0 | 
|   | 
| virtual void  | cache_start ()=0 | 
|   | Start the metadata cache.  More...
  | 
|   | 
| virtual void  | cache_stop () noexcept=0 | 
|   | Teardown the metadata cache.  More...
  | 
|   | 
| virtual cluster_nodes_list_t  | get_cluster_nodes ()=0 | 
|   | Returns list of managed server in a HA cluster.  More...
  | 
|   | 
| virtual ClusterTopology  | get_cluster_topology ()=0 | 
|   | Return object containing current cluster topology.  More...
  | 
|   | 
| virtual bool  | wait_primary_failover (const std::string &primary_server_uuid, const std::chrono::seconds &timeout)=0 | 
|   | Wait until there's a primary member in the cluster.  More...
  | 
|   | 
| void  | add_state_listener (ClusterStateListenerInterface *listener) override=0 | 
|   | Register observer that is notified when there is a change in the cluster nodes setup/state discovered.  More...
  | 
|   | 
| void  | remove_state_listener (ClusterStateListenerInterface *listener) override=0 | 
|   | Unregister observer previously registered with add_state_listener()  More...
  | 
|   | 
| virtual void  | add_acceptor_handler_listener (AcceptorUpdateHandlerInterface *listener)=0 | 
|   | Register observer that is notified when the state of listening socket acceptors should be updated on the next metadata refresh.  More...
  | 
|   | 
| virtual void  | remove_acceptor_handler_listener (AcceptorUpdateHandlerInterface *listener)=0 | 
|   | Unregister observer previously registered with add_acceptor_handler_listener()  More...
  | 
|   | 
| virtual void  | add_md_refresh_listener (MetadataRefreshListenerInterface *listener)=0 | 
|   | Register observer that is notified when the metadata refresh is triggered.  More...
  | 
|   | 
| virtual void  | remove_md_refresh_listener (MetadataRefreshListenerInterface *listener)=0 | 
|   | Unregister observer previously registered with add_md_refresh_listener()  More...
  | 
|   | 
| virtual std::pair< bool, std::pair< std::string, rapidjson::Document > >  | get_rest_user_auth_data (const std::string &username) const =0 | 
|   | Get authentication data (password hash and privileges) for the given user.  More...
  | 
|   | 
| virtual void  | enable_fetch_auth_metadata ()=0 | 
|   | Enable fetching authentication metadata when using metadata_cache http authentication backend.  More...
  | 
|   | 
| virtual void  | force_cache_update ()=0 | 
|   | Force cache update in refresh loop.  More...
  | 
|   | 
| virtual void  | check_auth_metadata_timers () const =0 | 
|   | Check values of auth_cache_ttl and auth_cache_refresh_interval timers.  More...
  | 
|   | 
| virtual void  | handle_sockets_acceptors_on_md_refresh ()=0 | 
|   | Toggle socket acceptors state update on next metadata refresh.  More...
  | 
|   | 
|   | MetadataCacheAPIBase ()=default | 
|   | 
|   | MetadataCacheAPIBase (const MetadataCacheAPIBase &)=delete | 
|   | 
| MetadataCacheAPIBase &  | operator= (const MetadataCacheAPIBase &)=delete | 
|   | 
|   | ~MetadataCacheAPIBase () override=default | 
|   | 
| virtual RefreshStatus  | get_refresh_status ()=0 | 
|   | 
| virtual mysqlrouter::TargetCluster  | target_cluster () const =0 | 
|   | 
| virtual std::chrono::milliseconds  | ttl () const =0 | 
|   | 
| virtual void  | set_instance_factory (metadata_factory_t cb)=0 | 
|   | 
|   | ClusterStateNotifierInterface ()=default | 
|   | 
|   | ClusterStateNotifierInterface (const ClusterStateNotifierInterface &)=delete | 
|   | 
| ClusterStateNotifierInterface &  | operator= (const ClusterStateNotifierInterface &)=delete | 
|   | 
| virtual  | ~ClusterStateNotifierInterface () | 
|   | 
  
  
      
        
          | virtual void metadata_cache::MetadataCacheAPIBase::cache_init  | 
          ( | 
          const mysqlrouter::ClusterType  | 
          cluster_type,  | 
         
        
           | 
           | 
          const unsigned  | 
          router_id,  | 
         
        
           | 
           | 
          const std::string &  | 
          clusterset_id,  | 
         
        
           | 
           | 
          const metadata_servers_list_t &  | 
          metadata_servers,  | 
         
        
           | 
           | 
          const MetadataCacheTTLConfig &  | 
          ttl_config,  | 
         
        
           | 
           | 
          const mysqlrouter::SSLOptions &  | 
          ssl_options,  | 
         
        
           | 
           | 
          const mysqlrouter::TargetCluster &  | 
          target_cluster,  | 
         
        
           | 
           | 
          const MetadataCacheMySQLSessionConfig &  | 
          session_config,  | 
         
        
           | 
           | 
          const RouterAttributes &  | 
          router_attributes,  | 
         
        
           | 
           | 
          size_t  | 
          thread_stack_size = mysql_harness::kDefaultStackSizeInKiloBytes,  | 
         
        
           | 
           | 
          bool  | 
          use_cluster_notifications = false,  | 
         
        
           | 
           | 
          const uint64_t  | 
          view_id = 0  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
pure virtual   | 
  
 
Initialize a MetadataCache object and start caching. 
The metadata_cache::cache_init function will initialize a MetadataCache object using the given arguments and store it globally using the given cache_name.
Parameters host, port, user, password are used to setup the connection with the metadata server.
Cache name given by cache_name can be empty, but must be unique.
The parameters connection_timeout and connection_attempts are used when connected to the metadata server.
Throws a std::runtime_error when the cache object was already initialized.
- Parameters
 - 
  
    | cluster_type | type of the cluster the metadata cache object will represent (GR or ReplicaSet)  | 
    | router_id | id of the router in the cluster metadata  | 
    | clusterset_id | UUID of the ClusterSet the Cluster belongs to (if bootstrapped as a ClusterSet, empty otherwise)  | 
    | metadata_servers | The list of cluster metadata servers  | 
    | ttl_config | metadata TTL configuration  | 
    | ssl_options | SSL related options for connection  | 
    | target_cluster | object identifying the Cluster this operation refers to  | 
    | session_config | Metadata MySQL session configuration  | 
    | router_attributes | Router attributes to be registered in the metadata  | 
    | thread_stack_size | memory in kilobytes allocated for thread's stack  | 
    | use_cluster_notifications | Flag indicating if the metadata cache should use cluster notifications as an additional trigger for metadata refresh (only available for GR cluster type)  | 
    | view_id | last known view_id of the cluster metadata (only relevant for ReplicaSet cluster)  | 
  
   
Implemented in metadata_cache::MetadataCacheAPI.