hyperledger/iroha
Iroha - A simple, decentralized ledger http://iroha.tech
soci_utils.hpp File Reference
#include <soci/soci.h>
#include <boost/optional.hpp>
#include <boost/range/adaptor/filtered.hpp>
#include <boost/range/adaptor/transformed.hpp>
#include <boost/range/iterator_range.hpp>
#include <boost/tuple/tuple.hpp>
#include "common/bind.hpp"
Include dependency graph for soci_utils.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 iroha
 
 iroha::ametsuchi
 

Typedefs

template<std::size_t N, typename T >
using iroha::ametsuchi::element_t = typename boost::tuples::element< N, T >::type
 tuple element type shortcut More...
 
template<class Tuple1 , class Tuple2 >
using iroha::ametsuchi::concat = decltype(concat_impl< Tuple1, Tuple2 >(std::make_index_sequence< length_v< std::decay_t< Tuple1 >>>{}, std::make_index_sequence< length_v< std::decay_t< Tuple2 >>>{}))
 tuple with types from two given tuples More...
 

Functions

template<typename ParamType , typename Function >
void iroha::ametsuchi::processSoci (soci::statement &st, soci::indicator &ind, ParamType &row, Function f)
 
template<class Tuple1 , class Tuple2 , std::size_t... Is, std::size_t... Js>
auto iroha::ametsuchi::concat_impl (std::index_sequence< Is... >, std::index_sequence< Js... >) -> boost::tuple< element_t< Is, std::decay_t< Tuple1 >>..., element_t< Js, std::decay_t< Tuple2 >>... >
 index sequence helper for concat More...
 
template<typename F , std::size_t... Is>
decltype(auto) constexpr iroha::ametsuchi::index_apply_impl (F &&f, std::index_sequence< Is... >)
 index sequence helper for index_apply More...
 
template<size_t N, typename F >
decltype(auto) constexpr iroha::ametsuchi::index_apply (F &&f)
 apply F to an integer sequence [0, N) More...
 
template<typename Tuple , typename F >
decltype(auto) constexpr iroha::ametsuchi::apply (Tuple &&t, F &&f)
 apply F to Tuple More...
 
template<typename R , typename T >
constexpr auto iroha::ametsuchi::viewQuery (T &&t)
 view first length_v<R> elements of T without copying More...
 
template<typename R , typename T >
constexpr auto iroha::ametsuchi::viewPermissions (T &&t)
 view last length_v<R> elements of T without copying More...
 
template<typename T >
constexpr auto iroha::ametsuchi::rebind (T &&t)
 map tuple<optional<Ts>...> to optional<tuple<Ts...>> More...
 
template<typename C , typename T , typename F >
auto iroha::ametsuchi::mapValues (T &t, F &&f)
 
template<typename C , typename T , typename F >
auto iroha::ametsuchi::flatMapValues (T &t, F &&f)
 
template<typename R , typename T , typename F >
auto iroha::ametsuchi::flatMapValue (T &t, F &&f)
 

Variables

template<typename T >
constexpr std::size_t iroha::ametsuchi::length_v = boost::tuples::length<T>::value
 tuple length shortcut More...