virthttp  0.0
libvirt http interface
Classes | Typedefs | Enumerations | Functions
json2virt.hpp File Reference
#include <rapidjson/document.h>
#include "../utils.hpp"
#include "virt_wrap/TypesParam.hpp"
#include "json_utils.hpp"

Go to the source code of this file.

Classes

struct  JTagRepr< tag, class >
 
struct  JTagRepr< JTag::Bool, void >
 
struct  JTagRepr< JTag::Int32, void >
 
struct  JTagRepr< JTag::Uint32, void >
 
struct  JTagRepr< JTag::Int64, void >
 
struct  JTagRepr< JTag::Uint64, void >
 
struct  JTagRepr< JTag::Float, void >
 
struct  JTagRepr< JTag::Double, void >
 
struct  JTagRepr< JTag::String, void >
 
struct  JTagRepr< JTag::Enum, F >
 
struct  JTagReverse< class >
 
struct  JTagReverse< JTagRepr< tag_, Extra_ > >
 
struct  WArg< tag, nested_type_, Extra >
 

Typedefs

template<JTag tag, class Extra = void>
using JTagRepr_t = typename JTagRepr< tag, Extra >::type
 

Enumerations

enum  JTag {
  JTag::None, JTag::Array, JTag::Bool, JTag::Int32,
  JTag::Uint32, JTag::Int64, JTag::Uint64, JTag::Float,
  JTag::Double, JTag::String, JTag::Enum
}
 

Functions

std::optional< virt::TypedParamsjson_to_typed_parameters (const rapidjson::Value &val)
 
template<JTag type, JTag nested_type = JTag::None, class Extra = void>
auto extract_param_val (const rapidjson::Value &el_json, JsonRes &json_res) noexcept
 
template<JTag type, JTag nested_type = JTag::None, class Extra = void>
auto extract_param (const rapidjson::Value &val, gsl::czstring<> name, JsonRes &json_res, bool consider_optional=false) noexcept-> decltype(extract_param_val< type, nested_type, Extra >(std::declval< decltype(val)>(), json_res))
 
template<size_t... I, class... Args>
auto wrap_fcn_args_impl (const rapidjson::Value &val, JsonRes &json_res, std::index_sequence< I... > is, Args...args) noexcept
 
template<class... Args>
auto wrap_fcn_args (const rapidjson::Value &val, JsonRes &json_res, Args...args) noexcept
 
template<class Fcn , class... Args>
auto wrap_fcn (const rapidjson::Value &val, JsonRes &json_res, Fcn fcn, Args...args) noexcept
 

Typedef Documentation

template<JTag tag, class Extra = void>
using JTagRepr_t = typename JTagRepr<tag, Extra>::type

Enumeration Type Documentation

enum JTag
strong
Enumerator
None 
Array 
Bool 
Int32 
Uint32 
Int64 
Uint64 
Float 
Double 
String 
Enum 

Function Documentation

template<JTag type, JTag nested_type = JTag::None, class Extra = void>
auto extract_param ( const rapidjson::Value &  val,
gsl::czstring<>  name,
JsonRes json_res,
bool  consider_optional = false 
) -> decltype(extract_param_val<type, nested_type, Extra>(std::declval<decltype(val)>(), json_res))
noexcept
template<JTag type, JTag nested_type = JTag::None, class Extra = void>
auto extract_param_val ( const rapidjson::Value &  el_json,
JsonRes json_res 
)
noexcept
std::optional<virt::TypedParams> json_to_typed_parameters ( const rapidjson::Value &  val)
template<class Fcn , class... Args>
auto wrap_fcn ( const rapidjson::Value &  val,
JsonRes json_res,
Fcn  fcn,
Args...  args 
)
noexcept
template<class... Args>
auto wrap_fcn_args ( const rapidjson::Value &  val,
JsonRes json_res,
Args...  args 
)
noexcept
template<size_t... I, class... Args>
auto wrap_fcn_args_impl ( const rapidjson::Value &  val,
JsonRes json_res,
std::index_sequence< I... >  is,
Args...  args 
)
noexcept