sdbus-c++ 1.2.0
High-level C++ D-Bus library based on systemd D-Bus implementation
TypeTraits.h File Reference
#include <type_traits>
#include <string>
#include <vector>
#include <map>
#include <cstdint>
#include <functional>
#include <memory>
#include <tuple>

Go to the source code of this file.

Classes

struct  sdbus::request_slot_t
 
struct  sdbus::floating_slot_t
 
struct  sdbus::dont_request_slot_t
 
struct  sdbus::adopt_message_t
 
struct  sdbus::adopt_fd_t
 
struct  sdbus::signature_of< _T >
 
struct  sdbus::signature_of< void >
 
struct  sdbus::signature_of< bool >
 
struct  sdbus::signature_of< uint8_t >
 
struct  sdbus::signature_of< int16_t >
 
struct  sdbus::signature_of< uint16_t >
 
struct  sdbus::signature_of< int32_t >
 
struct  sdbus::signature_of< uint32_t >
 
struct  sdbus::signature_of< int64_t >
 
struct  sdbus::signature_of< uint64_t >
 
struct  sdbus::signature_of< double >
 
struct  sdbus::signature_of< char * >
 
struct  sdbus::signature_of< const char * >
 
struct  sdbus::signature_of< char[_N]>
 
struct  sdbus::signature_of< const char[_N]>
 
struct  sdbus::signature_of< std::string >
 
struct  sdbus::signature_of< Struct< _ValueTypes... > >
 
struct  sdbus::signature_of< Variant >
 
struct  sdbus::signature_of< ObjectPath >
 
struct  sdbus::signature_of< Signature >
 
struct  sdbus::signature_of< UnixFd >
 
struct  sdbus::signature_of< std::vector< _Element > >
 
struct  sdbus::signature_of< std::map< _Key, _Value > >
 
struct  sdbus::function_traits< _Type >
 
struct  sdbus::function_traits< const _Type >
 
struct  sdbus::function_traits< _Type & >
 
struct  sdbus::function_traits_base< _ReturnType, _Args >
 
struct  sdbus::function_traits_base< _ReturnType, _Args >::arg< _Idx >
 
struct  sdbus::function_traits< _ReturnType(_Args...)>
 
struct  sdbus::function_traits< void(const Error *, _Args...)>
 
struct  sdbus::function_traits< void(Result< _Results... >, _Args...)>
 
struct  sdbus::function_traits< void(Result< _Results... > &&, _Args...)>
 
struct  sdbus::function_traits< _ReturnType(*)(_Args...)>
 
struct  sdbus::function_traits< _ReturnType(_ClassType::*)(_Args...)>
 
struct  sdbus::function_traits< _ReturnType(_ClassType::*)(_Args...) const >
 
struct  sdbus::function_traits< _ReturnType(_ClassType::*)(_Args...) volatile >
 
struct  sdbus::function_traits< _ReturnType(_ClassType::*)(_Args...) const volatile >
 
struct  sdbus::function_traits< std::function< FunctionType > >
 
struct  sdbus::tuple_of_function_input_arg_types< _Function >
 
struct  sdbus::tuple_of_function_output_arg_types< _Function >
 
struct  sdbus::aggregate_signature< _Type >
 
struct  sdbus::aggregate_signature< std::tuple< _Types... > >
 
struct  sdbus::signature_of_function_input_arguments< _Function >
 
struct  sdbus::signature_of_function_output_arguments< _Function >
 

Typedefs

using sdbus::method_callback = std::function< void(MethodCall msg)>
 
using sdbus::async_reply_handler = std::function< void(MethodReply &reply, const Error *error)>
 
using sdbus::signal_handler = std::function< void(Signal &signal)>
 
using sdbus::message_handler = std::function< void(Message &msg)>
 
using sdbus::property_set_callback = std::function< void(PropertySetCall &msg)>
 
using sdbus::property_get_callback = std::function< void(PropertyGetReply &reply)>
 
using sdbus::Slot = std::unique_ptr< void, std::function< void(void *)> >
 
template<typename _FunctionType >
using sdbus::function_arguments_t = typename function_traits< _FunctionType >::arguments_type
 
template<typename _FunctionType , size_t _Idx>
using sdbus::function_argument_t = typename function_traits< _FunctionType >::template arg_t< _Idx >
 
template<typename _FunctionType >
using sdbus::function_result_t = typename function_traits< _FunctionType >::result_type
 
template<typename _Function >
using sdbus::tuple_of_function_input_arg_types_t = typename tuple_of_function_input_arg_types< _Function >::type
 
template<typename _Function >
using sdbus::tuple_of_function_output_arg_types_t = typename tuple_of_function_output_arg_types< _Function >::type
 

Functions

template<class _Function , class _Tuple , typename... _Args, std::size_t... _I>
constexpr decltype(auto) sdbus::detail::apply_impl (_Function &&f, Result< _Args... > &&r, _Tuple &&t, std::index_sequence< _I... >)
 
template<class _Function , class _Tuple , std::size_t... _I>
constexpr decltype(auto) sdbus::detail::apply_impl (_Function &&f, const Error *e, _Tuple &&t, std::index_sequence< _I... >)
 
template<class _Function , class _Tuple , std::size_t... _I>
constexpr decltype(auto) sdbus::detail::apply_impl (_Function &&f, _Tuple &&t, std::index_sequence< _I... >)
 
template<class _Function , class _Tuple >
constexpr decltype(auto) sdbus::apply (_Function &&f, _Tuple &&t)
 
template<class _Function , class _Tuple , typename... _Args>
constexpr decltype(auto) sdbus::apply (_Function &&f, Result< _Args... > &&r, _Tuple &&t)
 
template<class _Function , class _Tuple >
constexpr decltype(auto) sdbus::apply (_Function &&f, const Error *e, _Tuple &&t)
 

Variables

constexpr request_slot_t sdbus::request_slot {}
 
constexpr floating_slot_t sdbus::floating_slot {}
 
constexpr dont_request_slot_t sdbus::dont_request_slot {}
 
constexpr adopt_message_t sdbus::adopt_message {}
 
constexpr adopt_fd_t sdbus::adopt_fd {}
 
template<class _Function >
constexpr auto sdbus::is_async_method_v = function_traits<_Function>::is_async
 
template<class _Function >
constexpr auto sdbus::has_error_param_v = function_traits<_Function>::has_error_param
 
template<typename _FunctionType >
constexpr auto sdbus::function_argument_count_v = function_traits<_FunctionType>::arity
 

Detailed Description

(C) 2016 - 2021 KISTLER INSTRUMENTE AG, Winterthur, Switzerland (C) 2016 - 2022 Stanislav Angelovic stani.nosp@m.slav.nosp@m..ange.nosp@m.lovi.nosp@m.c@pro.nosp@m.tonm.nosp@m.ail.c.nosp@m.om

Created on: Nov 9, 2016 Project: sdbus-c++ Description: High-level D-Bus IPC C++ library based on sd-bus

This file is part of sdbus-c++.

sdbus-c++ is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 2.1 of the License, or (at your option) any later version.

sdbus-c++ is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with sdbus-c++. If not, see http://www.gnu.org/licenses/.