MySQL 9.3.0
Source Code Documentation
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
mrs::interface::EndpointBase Class Referenceabstract

#include <endpoint_base.h>

Inheritance diagram for mrs::interface::EndpointBase:
[legend]

Public Types

using EnabledType = mrs::database::entry::EnabledType
 
using EndpointBasePtr = std::shared_ptr< EndpointBase >
 
using UniversalId = mrs::database::entry::UniversalId
 
using Children = std::vector< EndpointBasePtr >
 
using EndpointConfiguration = mrs::interface::EndpointConfiguration
 
using EndpointConfigurationPtr = std::shared_ptr< EndpointConfiguration >
 
using Handler = mrs::interface::RestHandler
 
using HandlerPtr = std::shared_ptr< Handler >
 
using Uri = ::http::base::Uri
 
using OptionalIndexNames = std::optional< std::vector< std::string > >
 

Public Member Functions

 EndpointBase (EndpointConfigurationPtr configuration)
 
virtual ~EndpointBase ()=default
 
virtual UniversalId get_id () const =0
 
virtual UniversalId get_parent_id () const =0
 
virtual OptionalIndexNames get_index_files ()=0
 
virtual bool required_authentication () const
 
virtual std::string get_url_path () const
 
virtual Uri get_url () const
 
virtual void activate_public ()
 
virtual void activate_private ()
 
virtual void deactivate ()
 
virtual EnabledType get_enabled_level () const
 
void set_parent (EndpointBasePtr parent)
 
void change_parent (EndpointBasePtr parent_new)
 
EndpointConfigurationPtr get_configuration () const
 
const EndpointBasePtr get_parent_ptr () const
 
EndpointBasePtr get_parent_ptr ()
 
void add_child_endpoint (EndpointBasePtr child_ptr)
 
void remove_child_endpoint (const UniversalId &child_id)
 
Children get_children ()
 

Protected Member Functions

virtual EnabledType get_this_node_enabled_level () const =0
 
virtual std::string get_my_url_path_part () const =0
 
virtual std::string get_my_url_part () const =0
 
virtual bool does_this_node_require_authentication () const =0
 
virtual std::optional< std::string > get_options () const =0
 
void log_update ()
 
virtual std::string get_extra_update_data ()
 
virtual void update ()
 
EndpointBasePtr get_child_by_id (const UniversalId &id) const
 
void changed ()
 

Static Protected Member Functions

static const char * get_state_name (EnabledType et)
 

Protected Attributes

std::optional< EnabledTypelast_state_
 
std::shared_mutex endpoints_access_
 
std::map< UniversalId, EndpointBasePtrendpoints_
 
std::weak_ptr< EndpointBaseparent_
 
EndpointConfigurationPtr configuration_
 

Member Typedef Documentation

◆ Children

◆ EnabledType

using mrs::interface::EndpointBase::EnabledType = mrs::database::entry::EnabledType

◆ EndpointBasePtr

◆ EndpointConfiguration

◆ EndpointConfigurationPtr

◆ Handler

◆ HandlerPtr

◆ OptionalIndexNames

using mrs::interface::EndpointBase::OptionalIndexNames = std::optional<std::vector<std::string> >

◆ UniversalId

◆ Uri

Constructor & Destructor Documentation

◆ EndpointBase()

mrs::interface::EndpointBase::EndpointBase ( EndpointConfigurationPtr  configuration)
inline

◆ ~EndpointBase()

virtual mrs::interface::EndpointBase::~EndpointBase ( )
virtualdefault

Member Function Documentation

◆ activate_private()

virtual void mrs::interface::EndpointBase::activate_private ( )
inlinevirtual

◆ activate_public()

virtual void mrs::interface::EndpointBase::activate_public ( )
inlinevirtual

◆ add_child_endpoint()

void mrs::interface::EndpointBase::add_child_endpoint ( EndpointBasePtr  child_ptr)
inline

◆ change_parent()

void mrs::interface::EndpointBase::change_parent ( EndpointBasePtr  parent_new)
inline

◆ changed()

void mrs::interface::EndpointBase::changed ( )
inlineprotected

◆ deactivate()

virtual void mrs::interface::EndpointBase::deactivate ( )
inlinevirtual

◆ does_this_node_require_authentication()

virtual bool mrs::interface::EndpointBase::does_this_node_require_authentication ( ) const
protectedpure virtual

◆ get_child_by_id()

EndpointBasePtr mrs::interface::EndpointBase::get_child_by_id ( const UniversalId id) const
inlineprotected

◆ get_children()

Children mrs::interface::EndpointBase::get_children ( )
inline

◆ get_configuration()

EndpointConfigurationPtr mrs::interface::EndpointBase::get_configuration ( ) const
inline

◆ get_enabled_level()

virtual EnabledType mrs::interface::EndpointBase::get_enabled_level ( ) const
inlinevirtual

Reimplemented in mrs::endpoint::UrlHostEndpoint.

◆ get_extra_update_data()

virtual std::string mrs::interface::EndpointBase::get_extra_update_data ( )
inlineprotectedvirtual

◆ get_id()

◆ get_index_files()

virtual OptionalIndexNames mrs::interface::EndpointBase::get_index_files ( )
pure virtual

◆ get_my_url_part()

virtual std::string mrs::interface::EndpointBase::get_my_url_part ( ) const
protectedpure virtual

◆ get_my_url_path_part()

virtual std::string mrs::interface::EndpointBase::get_my_url_path_part ( ) const
protectedpure virtual

◆ get_options()

virtual std::optional< std::string > mrs::interface::EndpointBase::get_options ( ) const
protectedpure virtual

◆ get_parent_id()

◆ get_parent_ptr() [1/2]

EndpointBasePtr mrs::interface::EndpointBase::get_parent_ptr ( )
inline

◆ get_parent_ptr() [2/2]

const EndpointBasePtr mrs::interface::EndpointBase::get_parent_ptr ( ) const
inline

◆ get_state_name()

static const char * mrs::interface::EndpointBase::get_state_name ( EnabledType  et)
inlinestaticprotected

◆ get_this_node_enabled_level()

◆ get_url()

virtual Uri mrs::interface::EndpointBase::get_url ( ) const
inlinevirtual

◆ get_url_path()

virtual std::string mrs::interface::EndpointBase::get_url_path ( ) const
inlinevirtual

◆ log_update()

void mrs::interface::EndpointBase::log_update ( )
inlineprotected

◆ remove_child_endpoint()

void mrs::interface::EndpointBase::remove_child_endpoint ( const UniversalId child_id)
inline

◆ required_authentication()

virtual bool mrs::interface::EndpointBase::required_authentication ( ) const
inlinevirtual

◆ set_parent()

void mrs::interface::EndpointBase::set_parent ( EndpointBasePtr  parent)
inline

◆ update()

Member Data Documentation

◆ configuration_

EndpointConfigurationPtr mrs::interface::EndpointBase::configuration_
protected

◆ endpoints_

std::map<UniversalId, EndpointBasePtr> mrs::interface::EndpointBase::endpoints_
protected

◆ endpoints_access_

std::shared_mutex mrs::interface::EndpointBase::endpoints_access_
protected

◆ last_state_

std::optional<EnabledType> mrs::interface::EndpointBase::last_state_
protected

◆ parent_

std::weak_ptr<EndpointBase> mrs::interface::EndpointBase::parent_
protected

The documentation for this class was generated from the following file: