virthttp  0.0
libvirt http interface
Classes | Typedefs | Functions
dispatch.hpp File Reference
#include <array>
#include <boost/beast/http/verb.hpp>
#include <gsl/gsl>
#include <rapidjson/document.h>
#include "handlers/hdl_ctx.hpp"
#include "cexpr_algs.hpp"
#include "depends.hpp"

Go to the source code of this file.

Classes

struct  JTypeList< Vs >
 
class  JDispatchVals< S, R >
 
class  JDispatchVals< JTypeList< Ss... >, JTypeList< Rs... > >
 
class  JDispatch
 

Typedefs

using JAll = JTypeList< static_cast< rapidjson::Type >(-1)>
 

Functions

template<class... JDVs, std::size_t... I>
constexpr auto gen_jdispatchers_impl (const std::tuple< JDVs... > &tup, std::index_sequence< I... >) noexcept-> std::array< JDispatch, sizeof...(JDVs)>
 
template<class... JDVs>
constexpr auto gen_jdispatchers (const std::tuple< JDVs... > &tup) noexcept-> std::array< JDispatch, sizeof...(JDVs)>
 

Typedef Documentation

using JAll = JTypeList<static_cast<rapidjson::Type>(-1)>

A special JTypeList reprensenting the full set of JSON value types

Function Documentation

template<class... JDVs>
constexpr auto gen_jdispatchers ( const std::tuple< JDVs... > &  tup) -> std::array<JDispatch, sizeof...(JDVs)>
noexcept

Generates an array of JDispatch from a tuple of various JDispatcherVals

Template Parameters
JDV(deduced)
Parameters
[in]tupthe input tuple
Returns
the output array
template<class... JDVs, std::size_t... I>
constexpr auto gen_jdispatchers_impl ( const std::tuple< JDVs... > &  tup,
std::index_sequence< I... >   
) -> std::array<JDispatch, sizeof...(JDVs)>
noexcept