TSDuck v3.46-4930
MPEG Transport Stream Toolkit
Loading...
Searching...
No Matches
ts::DuckConfigFile Class Reference

#include <tsDuckConfigFile.h>

Inheritance diagram for ts::DuckConfigFile:
Collaboration diagram for ts::DuckConfigFile:

Public Types

enum  FileStyle {
  LOCAL_SYSTEM ,
  UNIX_STYLE ,
  WINDOWS_STYLE
}

Public Member Functions

void clear ()
void deleteSection (const UString &name)
fs::path fileName () const
void getSectionNames (UStringVector &names) const
void getValues (const UString &entry, UStringVector &values) const
bool hasSection (const UString &name) const
bool isLoaded () const
bool load (const fs::path &filename, Report &report=(ts::CerrReport::Instance()))
bool merge (const fs::path &filename, Report &report=(ts::CerrReport::Instance()))
void merge (std::istream &strm)
ConfigSection & operator[] (const UString &name)
const ConfigSection & operator[] (const UString &name) const
bool save (const fs::path &filename=UString(), Report &report=(ts::CerrReport::Instance())) const
std::ostream & save (std::ostream &strm) const
ConfigSection & section (const UString &name)
const ConfigSection & section (const UString &name) const
size_t size () const
UString value (const UString &entry, const UString &defvalue=UString()) const

Static Public Member Functions

static fs::path DefaultFileName (FileStyle style=LOCAL_SYSTEM, const UString &app_name=UString())
static DuckConfigFile & Instance ()
 Get the instance of the singleton of this class.

Detailed Description

A singleton which contains the TSDuck configuration file.

Member Enumeration Documentation

◆ FileStyle

enum ts::ConfigFile::FileStyle
inherited

System-specific style of default configuration file name.

Enumerator
LOCAL_SYSTEM 

Same as local operating system.

UNIX_STYLE 

$HOME/.appname

WINDOWS_STYLE 

appname.ini in same directory as executable

Member Function Documentation

◆ Instance()

DuckConfigFile & ts::DuckConfigFile::Instance ( )
static

Get the instance of the singleton of this class.

Returns
The instance of the singleton of this class.

◆ value()

UString ts::DuckConfigFile::value ( const UString & entry,
const UString & defvalue = UString() ) const

Get the value of an entry. A section with the name of the executable is searched first. Then, the global section is used.

Parameters
[in]entryEntry name.
[in]defvalueDefault value.
Returns
The value in the entry or defvalue if entry does not exist.

◆ getValues()

void ts::DuckConfigFile::getValues ( const UString & entry,
UStringVector & values ) const

Get all values of an entry. A section with the name of the executable is searched first. Then, the global section is used.

Parameters
[in]entryEntry name.
[out]valuesVector of values.

◆ DefaultFileName()

fs::path ts::ConfigFile::DefaultFileName ( FileStyle style = LOCAL_SYSTEM,
const UString & app_name = UString() )
staticinherited

Get the default configuration file name.

Parameters
[in]styleSystem style for file name.
[in]app_nameApplication name (default: executable base name).
Returns
The default configuration file name for the application.

◆ fileName()

fs::path ts::ConfigFile::fileName ( ) const
inlineinherited

Get the latest loaded file.

Returns
The name of the latest loaded file.

◆ isLoaded()

bool ts::ConfigFile::isLoaded ( ) const
inlineinherited

Check if the last load operation succeeded (including in the constructor).

Returns
True if the last load operation succeeded (including in the constructor).

◆ load()

bool ts::ConfigFile::load ( const fs::path & filename,
Report & report = (ts::CerrReport::Instance()) )
inherited

Reload the configuration from a file.

Parameters
[in]filenameA file name to read.
[in,out]reportWhere to report errors.
Returns
True on success, false on error.

◆ merge() [1/2]

bool ts::ConfigFile::merge ( const fs::path & filename,
Report & report = (ts::CerrReport::Instance()) )
inherited

Merge the configuration from a file. The values which are read from the specified file override previous values.

Parameters
[in]filenameA file name to read.
[in,out]reportWhere to report errors.
Returns
True on success, false on error.

◆ merge() [2/2]

void ts::ConfigFile::merge ( std::istream & strm)
inherited

Merge the configuration from a file. The values which are read from the specified file override previous values.

Parameters
[in,out]strmOpened input text stream to read the configuration file.

◆ save() [1/2]

bool ts::ConfigFile::save ( const fs::path & filename = UString(),
Report & report = (ts::CerrReport::Instance()) ) const
inherited

Save a configuration file.

Parameters
[in]filenameA file name to write. If no file name is specified, use the file name from constructor or last load() or merge().
[in,out]reportWhere to report errors.
Returns
True on success, false on error.

◆ save() [2/2]

std::ostream & ts::ConfigFile::save ( std::ostream & strm) const
inherited

Save a configuration file in a stream

Parameters
[in,out]strmOpened output text stream to write the configuration file.
Returns
A reference to strm.

◆ clear()

void ts::ConfigFile::clear ( )
inlineinherited

Clear the content of the configuration.

◆ size()

size_t ts::ConfigFile::size ( ) const
inlineinherited

Get the number of sections in the file.

Returns
The number of sections in the file.

◆ hasSection()

bool ts::ConfigFile::hasSection ( const UString & name) const
inlineinherited

Check if a section exists.

Parameters
[in]nameThe section name.
Returns
True if the section exists.

◆ getSectionNames()

void ts::ConfigFile::getSectionNames ( UStringVector & names) const
inherited

Get the names of all sections.

Parameters
[out]namesReturned names of all sections.

◆ section() [1/2]

ConfigSection & ts::ConfigFile::section ( const UString & name)
inlineinherited

Get a reference to a section inside the configuration file instance. Create the section if it does not exist.

Parameters
[in]nameThe section name.
Returns
A reference to the section.

◆ section() [2/2]

const ConfigSection & ts::ConfigFile::section ( const UString & name) const
inherited

Get a reference to a section inside the configuration file instance.

Parameters
[in]nameThe section name.
Returns
A read-only reference to the section. If the section does not exist, return a reference to an empty section.

◆ operator[]() [1/2]

ConfigSection & ts::ConfigFile::operator[] ( const UString & name)
inlineinherited

Index operator: get a reference to a section inside the configuration file instance. Create the section if it does not exist.

Parameters
[in]nameThe section name.
Returns
A reference to the section.

◆ operator[]() [2/2]

const ConfigSection & ts::ConfigFile::operator[] ( const UString & name) const
inlineinherited

Index operator: get a reference to a section inside the configuration file instance.

Parameters
[in]nameThe section name.
Returns
A read-only reference to the section. If the section does not exist, return a reference to an empty section.

◆ deleteSection()

void ts::ConfigFile::deleteSection ( const UString & name)
inlineinherited

Delete a section.

Parameters
[in]nameThe section name to delete.

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