Loading...
Searching...
No Matches
CLI::ConfigBase Class Reference

This converter works with INI/TOML files; to write INI files use ConfigINI. More...

`#include <ConfigFwd.hpp>`

Inheritance diagram for CLI::ConfigBase:

## Public Member Functions

std::string | to_config (const App *, bool default_also, bool write_description, std::string prefix) const override
| Convert an app into a configuration.
std::vector< ConfigItem > | from_config (std::istream &input) const override
| Convert a configuration into an app.
ConfigBase * | comment (char cchar)
| Specify the configuration for comment characters.
ConfigBase * | arrayBounds (char aStart, char aEnd)
| Specify the start and end characters for an array.
ConfigBase * | arrayDelimiter (char aSep)
| Specify the delimiter character for an array.
ConfigBase * | valueSeparator (char vSep)
| Specify the delimiter between a name and value.
ConfigBase * | quoteCharacter (char qString, char literalChar)
| Specify the quote characters used around strings and literal strings.
ConfigBase * | maxLayers (uint8_t layers)
| Specify the maximum number of parents.
ConfigBase * | parentSeparator (char sep)
| Specify the separator to use for parent layers.
ConfigBase * | commentDefaults (bool comDef=true)
| comment default value options
std::string & | sectionRef ()
| get a reference to the configuration section
CLI11_NODISCARD const std::string & | section () const
| get the section
ConfigBase * | section (const std::string &sectionName)
| specify a particular section of the configuration file to use
int16_t & | indexRef ()
| get a reference to the configuration index
CLI11_NODISCARD int16_t | index () const
| get the section index
ConfigBase * | index (int16_t sectionIndex)
| specify a particular index in the section to use (-1) for all sections to use
ConfigBase * | allowDuplicateFields (bool value=true)
| specify that multiple duplicate arguments should be merged even if not sequential
Public Member Functions inherited from CLI::Config
virtual CLI11_NODISCARD std::string | to_flag (const ConfigItem &item) const
| Get a flag value.
CLI11_NODISCARD std::vector< ConfigItem > | from_file (const std::string &name) const
| Parse a config file, throw an error (ParseError:ConfigParseError or FileError) on failure.
virtual | ~Config ()=default
| Virtual destructor.

## Protected Attributes

char | commentChar = '#'
| the character used for comments
char | arrayStart = '['
| the character used to start an array '\0' is a default to not use
char | arrayEnd = ']'
| the character used to end an array '\0' is a default to not use
char | arraySeparator = ','
| the character used to separate elements in an array
char | valueDelimiter = '='
| the character used separate the name from the value
char | stringQuote = '"'
| the character to use around strings
char | literalQuote = '\''
| the character to use around single characters and literal strings
uint8_t | maximumLayers {255}
| the maximum number of layers to allow
char | parentSeparatorChar {'.'}
| the separator used to separator parent layers
bool | commentDefaultsBool = false
| comment default values
bool | allowMultipleDuplicateFields {false}
| specify the config reader should collapse repeated field names to a single vector
int16_t | configIndex {-1}
| Specify the configuration index to use for arrayed sections.
std::string | configSection {}
| Specify the configuration section that should be used.
Protected Attributes inherited from CLI::Config
std::vector< ConfigItem > | items {}

## Detailed Description

This converter works with INI/TOML files; to write INI files use ConfigINI.

## Member Function Documentation

## allowDuplicateFields()

ConfigBase * CLI::ConfigBase::allowDuplicateFields | ( | bool | value = true | ) |

inline

specify that multiple duplicate arguments should be merged even if not sequential

## arrayBounds()

ConfigBase * CLI::ConfigBase::arrayBounds | ( | char | aStart,
|  | char | aEnd )

inline

Specify the start and end characters for an array.

## arrayDelimiter()

ConfigBase * CLI::ConfigBase::arrayDelimiter | ( | char | aSep | ) |

inline

Specify the delimiter character for an array.

## comment()

ConfigBase * CLI::ConfigBase::comment | ( | char | cchar | ) |

inline

Specify the configuration for comment characters.

## commentDefaults()

ConfigBase * CLI::ConfigBase::commentDefaults | ( | bool | comDef = true | ) |

inline

comment default value options

## from_config()

std::vector< ConfigItem > CLI::ConfigBase::from_config | ( | std::istream & |  | ) | const

override virtual

Convert a configuration into an app.

Implements CLI::Config.

## index() [1/2]

CLI11_NODISCARD int16_t CLI::ConfigBase::index | ( |  | ) | const

inline

get the section index

## index() [2/2]

ConfigBase * CLI::ConfigBase::index | ( | int16_t | sectionIndex | ) |

inline

specify a particular index in the section to use (-1) for all sections to use

## indexRef()

int16_t & CLI::ConfigBase::indexRef | ( |  | ) |

inline

get a reference to the configuration index

## maxLayers()

ConfigBase * CLI::ConfigBase::maxLayers | ( | uint8_t | layers | ) |

inline

Specify the maximum number of parents.

## parentSeparator()

ConfigBase * CLI::ConfigBase::parentSeparator | ( | char | sep | ) |

inline

Specify the separator to use for parent layers.

## quoteCharacter()

ConfigBase * CLI::ConfigBase::quoteCharacter | ( | char | qString,
|  | char | literalChar )

inline

Specify the quote characters used around strings and literal strings.

## section() [1/2]

CLI11_NODISCARD const std::string & CLI::ConfigBase::section | ( |  | ) | const

inline

get the section

## section() [2/2]

ConfigBase * CLI::ConfigBase::section | ( | const std::string & | sectionName | ) |

inline

specify a particular section of the configuration file to use

## sectionRef()

std::string & CLI::ConfigBase::sectionRef | ( |  | ) |

inline

get a reference to the configuration section

## to_config()

std::string CLI::ConfigBase::to_config | ( | const App * | ,
|  | bool | ,
|  | bool | ,
|  | std::string | ) const

override virtual

Convert an app into a configuration.

Implements CLI::Config.

## valueSeparator()

ConfigBase * CLI::ConfigBase::valueSeparator | ( | char | vSep | ) |

inline

Specify the delimiter between a name and value.

## Member Data Documentation

## allowMultipleDuplicateFields

bool CLI::ConfigBase::allowMultipleDuplicateFields {false}

protected

specify the config reader should collapse repeated field names to a single vector

## arrayEnd

char CLI::ConfigBase::arrayEnd = ']'

protected

the character used to end an array '\0' is a default to not use

## arraySeparator

char CLI::ConfigBase::arraySeparator = ','

protected

the character used to separate elements in an array

## arrayStart

char CLI::ConfigBase::arrayStart = '['

protected

the character used to start an array '\0' is a default to not use

## commentChar

char CLI::ConfigBase::commentChar = '#'

protected

the character used for comments

## commentDefaultsBool

bool CLI::ConfigBase::commentDefaultsBool = false

protected

comment default values

## configIndex

int16_t CLI::ConfigBase::configIndex {-1}

protected

Specify the configuration index to use for arrayed sections.

## configSection

std::string CLI::ConfigBase::configSection {}

protected

Specify the configuration section that should be used.

## literalQuote

char CLI::ConfigBase::literalQuote = '\''

protected

the character to use around single characters and literal strings

## maximumLayers

uint8_t CLI::ConfigBase::maximumLayers {255}

protected

the maximum number of layers to allow

## parentSeparatorChar

char CLI::ConfigBase::parentSeparatorChar {'.'}

protected

the separator used to separator parent layers

## stringQuote

char CLI::ConfigBase::stringQuote = '"'

protected

the character to use around strings

## valueDelimiter

char CLI::ConfigBase::valueDelimiter = '='

protected

the character used separate the name from the value

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

- include/CLI/ConfigFwd.hpp