Firmware  0.4.1
Loading...
Searching...
No Matches
utility.hpp File Reference

General utilities. More...

#include <esp_heap_caps.h>
#include <bit>
#include <charconv>
#include <dcc/dcc.hpp>
#include <functional>
#include <iterator>
#include <memory>
#include <numeric>
#include <span>
#include <string_view>
#include "intf/http/message.hpp"
#include "log.h"
Include dependency graph for utility.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Typedefs

template<typename T>
using unique_caps_ptr = std::unique_ptr<T, decltype(heap_caps_free)*>
 

Functions

void esp_delayed_restart ()
 
bool validate_json (std::string_view json)
 
template<typename T>
consteval std::string_view type_name ()
 
std::optional< dcc::Address::value_type > uri2address (std::string_view uri)
 
std::optional< dcc::Address > uri2loco_address (std::string_view uri)
 
template<std::output_iterator< char > OutputIt>
OutputIt decode_uri (std::string_view uri, OutputIt out)
 https://rosettacode.org/wiki/URL_decoding#C
 
template<typename T>
constexpr auto make_unique_caps (size_t size, uint32_t caps)
 
uint32_t http_receive_timeout2ms ()
 
template<typename F, typename... Ts>
auto invoke_on_core (BaseType_t core_id, F &&f, Ts &&... ts)
 
template<typename... Ts>
auto httpd_sess_trigger_close (Ts &&... ts)
 
auto httpd_queue_work (intf::http::Message *msg)
 

Detailed Description

Author
Vincent Hamp
Date
09/02/2023

Typedef Documentation

◆ unique_caps_ptr

template<typename T>
using unique_caps_ptr = std::unique_ptr<T, decltype(heap_caps_free)*>
Todo
document

Function Documentation

◆ decode_uri()

template<std::output_iterator< char > OutputIt>
OutputIt decode_uri ( std::string_view uri,
OutputIt out )

◆ esp_delayed_restart()

void esp_delayed_restart ( )

◆ http_receive_timeout2ms()

uint32_t http_receive_timeout2ms ( )
Todo
document
Warning
Do not use this function in time-critical code. Always cache the value!

◆ httpd_queue_work()

auto httpd_queue_work ( intf::http::Message * msg)
inline
Todo
document

◆ httpd_sess_trigger_close()

template<typename... Ts>
auto httpd_sess_trigger_close ( Ts &&... ts)
Todo
document

◆ invoke_on_core()

template<typename F, typename... Ts>
auto invoke_on_core ( BaseType_t core_id,
F && f,
Ts &&... ts )
Todo
document

◆ make_unique_caps()

template<typename T>
auto make_unique_caps ( size_t size,
uint32_t caps )
constexpr
Todo
document

◆ type_name()

template<typename T>
std::string_view type_name ( )
consteval

◆ uri2address()

std::optional< dcc::Address::value_type > uri2address ( std::string_view uri)

◆ uri2loco_address()

std::optional< dcc::Address > uri2loco_address ( std::string_view uri)

◆ validate_json()

bool validate_json ( std::string_view json)