StormByte C++ Library: Config module 1.0.1.9999
StormByte-Config is the configuration module of the StormByte C++ suite.
Loading...
Searching...
No Matches
Namespaces | Classes | Typedefs | Enumerations | Functions
StormByte::Config Namespace Reference

Config module of the StormByte suite. More...

Namespaces

namespace  Item
 Configuration items (values, comments, groups, lists).
 

Classes

class  Config
 Configuration document (text or versioned binary). More...
 
class  Exception
 Base class for all configuration-related exceptions. More...
 
class  InvalidName
 Thrown when an invalid name is used for an item. More...
 
class  InvalidPath
 Thrown when an invalid path is used for an item. More...
 
class  ItemAlreadyExists
 Thrown when attempting to add an item that already exists. More...
 
class  ItemNameAlreadyExists
 Thrown when an item's name conflicts with an existing name. More...
 
class  ItemNotFound
 Thrown when an item cannot be found by its path or name. More...
 
class  OutOfBounds
 Thrown when an index is out of bounds. More...
 
class  ParseError
 Thrown when a parsing error occurs in a configuration file. More...
 
class  ValueFailure
 Thrown when setting a value fails due to type mismatch. More...
 
class  WrongValueTypeConversion
 Thrown when a value is converted to an incorrect type. More...
 

Typedefs

using HookFunction = std::function< void(Item::Group &)>
 Function executed as a hook.
 
using HookFunctions = std::vector< HookFunction >
 List of hook functions.
 
using OnFailureHook = std::function< bool(const Item::Group &)>
 Function executed on failure.
 
using OptionalFailureHook = std::optional< OnFailureHook >
 Optional failure hook.
 
using ExpectedConfig = StormByte::Expected< Config, StormByte::Exception >
 Result of loading a configuration document (text or binary).
 

Enumerations

enum class  OnExistingAction : unsigned short { Keep , Overwrite , ThrowException }
 Forward declaration of the configuration document. More...
 
enum class  Mode : unsigned short { Text , Binary }
 Serialization / deserialization mode for configuration documents. More...
 

Functions

STORMBYTE_CONFIG_PUBLIC Configoperator>> (std::istream &istream, Config &file)
 Initializes configuration when istream is on the left-hand side.
 
STORMBYTE_CONFIG_PUBLIC Configoperator>> (const std::string &str, Config &file)
 Initializes configuration when string is on the left-hand side.
 
STORMBYTE_CONFIG_PUBLIC std::ostream & operator<< (std::ostream &ostream, const Config &file)
 Output configuration when ostream is on the left-hand side.
 
STORMBYTE_CONFIG_PUBLIC std::string & operator<< (std::string &str, const Config &file)
 Output configuration when string is on the left-hand side.
 

Detailed Description

Config module of the StormByte suite.

Typedef Documentation

◆ ExpectedConfig

using StormByte::Config::ExpectedConfig = typedef StormByte::Expected<Config, StormByte::Exception>

Result of loading a configuration document (text or binary).

On failure, the error is a StormByte::Exception derivative (for example ParseError or StormByte::DeserializeError).

Enumeration Type Documentation

◆ Mode

enum class StormByte::Config::Mode : unsigned short
strong

Serialization / deserialization mode for configuration documents.

Selects whether a document is exchanged as human-readable text (the classic StormByte config syntax) or as the versioned binary wire format.

See also
Config::Save
Config::Load
Enumerator
Text 

Human-readable configuration syntax (UTF-8 text).

Binary 

Versioned binary format (magic + format version + payload).

◆ OnExistingAction

enum class StormByte::Config::OnExistingAction : unsigned short
strong

Forward declaration of the configuration document.

Specifies the action to take when a name conflict occurs.

Enumerator
Keep 

Retain the existing item.

Overwrite 

Replace the existing item with the new one.

ThrowException 

Throw an exception to indicate the conflict.

Function Documentation

◆ operator<<() [1/2]

STORMBYTE_CONFIG_PUBLIC std::ostream & StormByte::Config::operator<< ( std::ostream &  ostream,
const Config file 
)

Output configuration when ostream is on the left-hand side.

Parameters
ostreamOutput stream.
fileConfig to get data from.
Returns
Reference to the output stream.

◆ operator<<() [2/2]

STORMBYTE_CONFIG_PUBLIC std::string & StormByte::Config::operator<< ( std::string &  str,
const Config file 
)

Output configuration when string is on the left-hand side.

Parameters
strOutput string.
fileConfig to get data from.
Returns
Reference to the string.

◆ operator>>() [1/2]

STORMBYTE_CONFIG_PUBLIC Config & StormByte::Config::operator>> ( const std::string &  str,
Config file 
)

Initializes configuration when string is on the left-hand side.

Parameters
strInput string.
fileConfig to put data into.
Returns
Reference to the Config.

◆ operator>>() [2/2]

STORMBYTE_CONFIG_PUBLIC Config & StormByte::Config::operator>> ( std::istream &  istream,
Config file 
)

Initializes configuration when istream is on the left-hand side.

Parameters
istreamInput stream.
fileConfig to put data into.
Returns
Reference to the Config.