Loading...
Searching...
No Matches
TypeTraits.h File Reference
`#include <sdbus-c++/Error.h>`
`#include <array>`
`#include <cstdint>`
`#include <functional>`
`#include <map>`
`#include <memory>`
`#include <optional>`
`#include <string>`
`#include <string_view>`
`#include <tuple>`
`#include <type_traits>`
`#include <unordered_map>`
`#include <utility>`
`#include <variant>`
`#include <vector>`

Go to the source code of this file.

## Classes

struct | sdbus::return_slot_t
struct | sdbus::floating_slot_t
struct | sdbus::adopt_message_t
struct | sdbus::adopt_fd_t
struct | sdbus::dont_run_event_loop_thread_t
struct | sdbus::with_future_t
struct | sdbus::dont_expect_reply_t
struct | sdbus::embed_variant_t
struct | sdbus::signature_of< _T, _Enable >
struct | sdbus::signature_of< const _T >
struct | sdbus::signature_of< volatile _T >
struct | sdbus::signature_of< const volatile _T >
struct | sdbus::signature_of< _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< std::string >
struct | sdbus::signature_of< std::string_view >
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< BusName >
struct | sdbus::signature_of< InterfaceName >
struct | sdbus::signature_of< MemberName >
struct | sdbus::signature_of< Struct< _ValueTypes... > >
struct | sdbus::signature_of< Variant >
struct | sdbus::signature_of< std::variant< Elements... > >
struct | sdbus::signature_of< ObjectPath >
struct | sdbus::signature_of< Signature >
struct | sdbus::signature_of< UnixFd >
struct | sdbus::signature_of< DictEntry< _T1, _T2 > >
struct | sdbus::signature_of< std::vector< _Element, _Allocator > >
struct | sdbus::signature_of< std::array< _Element, _Size > >
struct | sdbus::signature_of< _Enum, typename std::enable_if_t< std::is_enum_v< _Enum > &&!std::is_const_v< _Enum > &&!std::is_volatile_v< _Enum > > >
struct | sdbus::signature_of< std::map< _Key, _Value, _Compare, _Allocator > >
struct | sdbus::signature_of< std::unordered_map< _Key, _Value, _Hash, _KeyEqual, _Allocator > >
struct | sdbus::signature_of< std::tuple< _Types... > >
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(std::optional< 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::signature_of_function_input_arguments< _Function >
struct | sdbus::signature_of_function_output_arguments< _Function >
struct | sdbus::future_return< _Args >
struct | sdbus::future_return<>
struct | sdbus::future_return< _Type >
struct | sdbus::as_dictionary< _Struct >

## Typedefs

using | sdbus::method_callback = std::function<void(MethodCall msg)>
using | sdbus::async_reply_handler = std::function<void(MethodReply reply, std::optional<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
template<typename... _Args>
using | sdbus::future_return_t = typename future_return<_Args...>::type

## Functions

template<typename _T, std::size_t _N1, std::size_t _N2>
constexpr std::array< _T, _N1+_N2 > | sdbus::operator+ (std::array< _T, _N1 > lhs, std::array< _T, _N2 > rhs)
template<typename _T, std::size_t _N>
constexpr auto | sdbus::as_null_terminated (std::array< _T, _N > arr)
template<typename _Type>
const _Type & | sdbus::as_dictionary_if_struct (const _Type &object)
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>
decltype(auto) | sdbus::detail::apply_impl (_Function &&f, std::optional< 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>
decltype(auto) | sdbus::apply (_Function &&f, std::optional< Error > e, _Tuple &&t)

## Variables

constexpr return_slot_t | sdbus::return_slot {}
constexpr floating_slot_t | sdbus::floating_slot {}
constexpr adopt_message_t | sdbus::adopt_message {}
constexpr adopt_fd_t | sdbus::adopt_fd {}
constexpr dont_run_event_loop_thread_t | sdbus::dont_run_event_loop_thread {}
constexpr with_future_t | sdbus::with_future {}
constexpr dont_expect_reply_t | sdbus::dont_expect_reply {}
constexpr embed_variant_t | sdbus::embed_variant {}
template<class... _T>
constexpr bool | sdbus::always_false = false
template<typename _T>
constexpr auto | sdbus::signature_of_v = signature_of<_T>::value
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
template<typename _Function>
auto | sdbus::signature_of_function_input_arguments_v = signature_of_function_input_arguments<_Function>::value_as_string()
template<typename _Function>
auto | sdbus::signature_of_function_output_arguments_v = signature_of_function_output_arguments<_Function>::value_as_string()
template<typename, typename>
constexpr bool | sdbus::is_one_of_variants_types = false
template<typename... _VariantTypes, typename _QueriedType>
constexpr bool | sdbus::is_one_of_variants_types< std::variant< _VariantTypes... >, _QueriedType > = (std::is_same_v<_QueriedType, _VariantTypes> || ...)
template<typename _Struct>
constexpr auto | sdbus::strict_dict_as_struct_deserialization_v = true
template<typename _Struct>
constexpr auto | sdbus::nested_struct_as_dict_serialization_v = false

## Detailed Description

(C) 2016 - 2021 KISTLER INSTRUMENTE AG, Winterthur, Switzerland (C) 2016 - 2024 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/.