StormByte-Config 2.0.0
C++26 configuration-document module of the StormByte suite
 
Loading...
Searching...
No Matches
StormByte::Config Namespace Reference

Config module of the StormByte suite. More...

Namespaces

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

Classes

class  Config
 Configuration document (text or versioned binary). More...
 
class  Exception
 Root exception for Config. More...
 
class  FailureHook
 Stateful hook run when text parse fails. 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  ReadHook
 Stateful hook run before/after a successful text read. 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 = ReadHookFunction
 Stateless read hook.
 
using HookFunctions = std::vector< StormByte::Shared< ReadHook > >
 Read hooks owned by Config.
 
using OnFailureHook = FailureHookFunction
 Stateless failure hook.
 
using OptionalFailureHook = StormByte::Shared< FailureHook >
 Failure hook, empty if unset.
 
using ReadHookFunction = void(*)(Item::Group &)
 Function pointer for a stateless read hook.
 
using FailureHookFunction = bool(*)(const Item::Group &)
 Function pointer for a stateless 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

Config & operator>> (std::istream &istream, Config &file)
 Initializes configuration when istream is on the left-hand side.
 
Config & operator>> (const StormByte::String::String &str, Config &file)
 Initializes configuration when String is on the left-hand side.
 
Config & operator>> (const std::string &str, Config &file)
 Initializes configuration when string is on the left-hand side.
 
std::ostream & operator<< (std::ostream &ostream, const Config &file)
 Output configuration when ostream is on the left-hand side.
 
std::string & operator<< (std::string &str, const Config &file)
 Output configuration when string is on the left-hand side.
 
StormByte::Shared< ReadHook > MakeReadHook (ReadHookFunction function)
 Wrap a function pointer in a ReadHook allocated on Base's heap.
 
StormByte::Shared< FailureHook > MakeFailureHook (FailureHookFunction function)
 Wrap a function pointer in a FailureHook allocated on Base's heap.
 

Detailed Description

Config module of the StormByte suite.

Typedef Documentation

◆ ExpectedConfig

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

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

◆ FailureHookFunction

using StormByte::Config::FailureHookFunction = typedef bool (*)(const Item::Group&)

Function pointer for a stateless failure hook.

◆ HookFunction

Stateless read hook.

◆ HookFunctions

Read hooks owned by Config.

◆ OnFailureHook

Stateless failure hook.

◆ OptionalFailureHook

Failure hook, empty if unset.

◆ ReadHookFunction

Function pointer for a stateless read hook.

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

◆ MakeFailureHook()

StormByte::Shared< FailureHook > StormByte::Config::MakeFailureHook ( FailureHookFunction  function)

Wrap a function pointer in a FailureHook allocated on Base's heap.

Parameters
functionstateless callback
Returns
owning pointer

◆ MakeReadHook()

StormByte::Shared< ReadHook > StormByte::Config::MakeReadHook ( ReadHookFunction  function)

Wrap a function pointer in a ReadHook allocated on Base's heap.

Parameters
functionstateless callback
Returns
owning pointer

◆ operator<<() [1/2]

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]

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/3]

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

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

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

◆ operator>>() [2/3]

Config & StormByte::Config::operator>> ( const StormByte::String::String &  str,
Config &  file 
)

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

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

◆ operator>>() [3/3]

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.