sdbus-c++ 2.3.0
High-level C++ D-Bus library based on systemd D-Bus implementation
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::with_awaitable_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, 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(std::optional< Error > &&, Args...)>
struct  sdbus::function_traits< void(const 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
template<typename... Args>
using sdbus::awaitable_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 &&fun, Result< Args... > &&res, Tuple &&tuple, std::index_sequence< I... >)
template<class Function, class Tuple, std::size_t... I>
decltype(auto) sdbus::detail::apply_impl (Function &&fun, std::optional< Error > err, Tuple &&tuple, std::index_sequence< I... >)
template<class Function, class Tuple, std::size_t... I>
constexpr decltype(auto) sdbus::detail::apply_impl (Function &&fun, Tuple &&tuple, std::index_sequence< I... >)
template<class Function, class Tuple>
constexpr decltype(auto) sdbus::apply (Function &&fun, Tuple &&tuple)
template<class Function, class Tuple, typename... Args>
constexpr decltype(auto) sdbus::apply (Function &&fun, Result< Args... > &&res, Tuple &&tuple)
template<class Function, class Tuple>
decltype(auto) sdbus::apply (Function &&fun, std::optional< Error > err, Tuple &&tuple)

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 {}
constexpr with_awaitable_t sdbus::with_awaitable {}
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>
const auto sdbus::signature_of_function_input_arguments_v = signature_of_function_input_arguments<Function>::value_as_string()
template<typename Function>
const 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 - 2026 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/.