GCC Middle and Back End API Reference
diagnostics::output_spec::scheme_handler Class Referenceabstract

#include <output-spec.h>

Inheritance diagram for diagnostics::output_spec::scheme_handler:
Collaboration diagram for diagnostics::output_spec::scheme_handler:

Public Types

enum class  result { ok , unrecognized , malformed_value }

Public Member Functions

 scheme_handler (std::string scheme_name)
virtual ~scheme_handler ()
const std::string & get_scheme_name () const
virtual std::unique_ptr< sinkmake_sink (const context &ctxt, diagnostics::context &dc)=0
virtual enum result maybe_handle_kv (const context &ctxt, const std::string &key, const std::string &value)=0
virtual void get_keys (auto_vec< const char * > &out) const =0
enum result parse_bool_value (const context &ctxt, const std::string &key, const std::string &value, bool &out) const
template<typename EnumType, size_t NumValues>
enum result parse_enum_value (const context &ctxt, const std::string &key, const std::string &value, const std::array< std::pair< const char *, EnumType >, NumValues > &value_names, EnumType &out) const
template<typename EnumType, size_t NumValues>
key_handler::result parse_enum_value (const context &ctxt, const std::string &key, const std::string &value, const std::array< std::pair< const char *, EnumType >, NumValues > &value_names, EnumType &out) const

Private Attributes

const std::string m_scheme_name

Detailed Description

Abstract subclass for handling particular schemes and their keys.   

Member Enumeration Documentation

◆ result

Enumerator
ok 
unrecognized 
malformed_value 

Constructor & Destructor Documentation

◆ scheme_handler()

◆ ~scheme_handler()

virtual diagnostics::output_spec::scheme_handler::~scheme_handler ( )
inlinevirtual

Member Function Documentation

◆ get_keys()

virtual void diagnostics::output_spec::key_handler::get_keys ( auto_vec< const char * > & out) const
pure virtualinherited

◆ get_scheme_name()

const std::string & diagnostics::output_spec::scheme_handler::get_scheme_name ( ) const
inline

◆ make_sink()

virtual std::unique_ptr< sink > diagnostics::output_spec::scheme_handler::make_sink ( const context & ctxt,
diagnostics::context & dc )
pure virtual

◆ maybe_handle_kv()

virtual enum result diagnostics::output_spec::key_handler::maybe_handle_kv ( const context & ctxt,
const std::string & key,
const std::string & value )
pure virtualinherited

◆ parse_bool_value()

◆ parse_enum_value() [1/2]

template<typename EnumType, size_t NumValues>
key_handler::result diagnostics::output_spec::key_handler::parse_enum_value ( const context & ctxt,
const std::string & key,
const std::string & value,
const std::array< std::pair< const char *, EnumType >, NumValues > & value_names,
EnumType & out ) const
inherited

◆ parse_enum_value() [2/2]

template<typename EnumType, size_t NumValues>
enum result diagnostics::output_spec::key_handler::parse_enum_value ( const context & ctxt,
const std::string & key,
const std::string & value,
const std::array< std::pair< const char *, EnumType >, NumValues > & value_names,
EnumType & out ) const
inherited

Field Documentation

◆ m_scheme_name

const std::string diagnostics::output_spec::scheme_handler::m_scheme_name
private

Referenced by get_scheme_name(), and scheme_handler().


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