libcamera v0.7.1
Supporting cameras in Linux since 2019
Loading...
Searching...
No Matches
libcamera::YamlParser Class Referencefinal

A helper class for parsing a YAML file. More...

Static Public Member Functions

static std::unique_ptr< ValueNodeparse (File &file)
 Parse a YAML file as a ValueNode.

Detailed Description

A helper class for parsing a YAML file.

The YamlParser class provides an easy interface to parse the contents of a YAML file into a tree of ValueNode instances.

Example usage:

name:
"John"
numbers:
- 1
- 2

The following code illustrates how to parse the above YAML file:

std::unique_ptr<ValueNode> root = YamlParser::parse(fh);
if (!root)
return;
if (!root->isDictionary())
return;
const ValueNode &name = (*root)["name"];
std::cout << name.get<std::string>("") << std::endl;
const ValueNode &numbers = (*root)["numbers"];
if (!numbers.isList())
return;
for (std::size_t i = 0; i < numbers.size(); i++)
std::cout << numbers[i].get<int32_t>(0) << std::endl;
A class representing a tree structure of values.
Definition value_node.h:27
std::optional< T > get() const
Parse the ValueNode as a T value.
Definition value_node.h:211
static std::unique_ptr< ValueNode > parse(File &file)
Parse a YAML file as a ValueNode.
Definition yaml_parser.cpp:381

The YamlParser::parse() function takes an open FILE, parses its contents, and returns a pointer to a ValueNode corresponding to the root node of the YAML document.

The parser preserves the order of items in the YAML file, for both lists and dictionaries.

Member Function Documentation

◆ parse()

std::unique_ptr< ValueNode > libcamera::YamlParser::parse ( File & file)
static

Parse a YAML file as a ValueNode.

Parameters
[in]fileThe YAML file to parse

The YamlParser::parse() function takes a file, parses its contents, and returns a pointer to a ValueNode corresponding to the root node of the YAML document.

Returns
Pointer to result ValueNode on success or nullptr otherwise

The documentation for this class was generated from the following files:
  • include/libcamera/internal/yaml_parser.h
  • src/libcamera/yaml_parser.cpp