cppfig 0.1.0
Modern C++20 compile-time type-safe configuration library
Loading...
Searching...
No Matches
cppfig::VirtualConfigAdapter< ConfigT > Class Template Referencefinal

Adapts a configuration provider to the type-erased interface. More...

#include <interface.h>

Inheritance diagram for cppfig::VirtualConfigAdapter< ConfigT >:
[legend]
Collaboration diagram for cppfig::VirtualConfigAdapter< ConfigT >:
[legend]

Public Member Functions

 VirtualConfigAdapter (ConfigT &config)
 
auto Load () -> Status override
 Loads configuration from the file.
 
auto Save () const -> Status override
 Saves the current configuration to the file.
 
auto GetFilePath () const -> std::string_view override
 Returns the file path.
 
auto ValidateAll () const -> Status override
 Validates all current values.
 
auto GetDiffString () const -> std::string override
 Gets a string representation of the diff.
 
- Public Member Functions inherited from cppfig::IConfigurationProviderVirtual
virtual ~IConfigurationProviderVirtual ()=default
 

Additional Inherited Members

- Protected Member Functions inherited from cppfig::IConfigurationProviderVirtual
 IConfigurationProviderVirtual ()=default
 
 IConfigurationProviderVirtual (const IConfigurationProviderVirtual &)=default
 
 IConfigurationProviderVirtual (IConfigurationProviderVirtual &&)=default
 
auto operator= (const IConfigurationProviderVirtual &) -> IConfigurationProviderVirtual &=default
 
auto operator= (IConfigurationProviderVirtual &&) -> IConfigurationProviderVirtual &=default
 

Detailed Description

template<typename ConfigT>
class cppfig::VirtualConfigAdapter< ConfigT >

Adapts a configuration provider to the type-erased interface.

Deriving Configuration from IConfigurationProviderVirtual directly gave every instance a vptr whether or not it was ever used polymorphically, and duplicated four names that the CRTP base already declared. Wrapping instead keeps that cost with the callers who ask for type erasure.

The adapter refers to the configuration; the configuration must outlive it.

Usage:

Configuration<MySchema> config("config.conf");
VirtualConfigAdapter adapter(config);
Main configuration manager.
Definition configuration.h:88
Virtual interface for type-erased configuration access.
Definition interface.h:103
Adapts a configuration provider to the type-erased interface.
Definition interface.h:146

Constructor & Destructor Documentation

◆ VirtualConfigAdapter()

template<typename ConfigT >
cppfig::VirtualConfigAdapter< ConfigT >::VirtualConfigAdapter ( ConfigT &  config)
inlineexplicit

Member Function Documentation

◆ GetDiffString()

template<typename ConfigT >
auto cppfig::VirtualConfigAdapter< ConfigT >::GetDiffString ( ) const -> std::string
inlineoverridevirtual

Gets a string representation of the diff.

Implements cppfig::IConfigurationProviderVirtual.

◆ GetFilePath()

template<typename ConfigT >
auto cppfig::VirtualConfigAdapter< ConfigT >::GetFilePath ( ) const -> std::string_view
inlineoverridevirtual

Returns the file path.

Implements cppfig::IConfigurationProviderVirtual.

◆ Load()

template<typename ConfigT >
auto cppfig::VirtualConfigAdapter< ConfigT >::Load ( ) -> Status
inlineoverridevirtual

Loads configuration from the file.

Implements cppfig::IConfigurationProviderVirtual.

◆ Save()

template<typename ConfigT >
auto cppfig::VirtualConfigAdapter< ConfigT >::Save ( ) const -> Status
inlineoverridevirtual

Saves the current configuration to the file.

Implements cppfig::IConfigurationProviderVirtual.

◆ ValidateAll()

template<typename ConfigT >
auto cppfig::VirtualConfigAdapter< ConfigT >::ValidateAll ( ) const -> Status
inlineoverridevirtual

Validates all current values.

Implements cppfig::IConfigurationProviderVirtual.


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