30#ifndef PT_REMOTING_ARGUMENTS_H
31#define PT_REMOTING_ARGUMENTS_H
33#include <Pt/Remoting/Api.h>
34#include <Pt/Composer.h>
35#include <Pt/SerializationContext.h>
46 BasicComposer<T> composer;
48 explicit Argument(SerializationContext* ctx)
54 composer.begin(value);
59template <
typename... Ts>
67 explicit Arguments(SerializationContext* )
73 void fill(std::size_t i, Composer** args)
80template <
typename T,
typename... Ts>
81class Arguments<T, Ts...>
84 explicit Arguments(SerializationContext* ctx)
95 void fill(std::size_t i, Composer** args)
97 args[i] = &_head.composer;
98 _tail.fill(i + 1, args);
106 const T& head()
const
111 Arguments<Ts...>& tail()
116 const Arguments<Ts...>& tail()
const
123 Arguments<Ts...> _tail;
127template <std::
size_t I>
130 template <
typename T,
typename... Ts>
131 static auto& get(Arguments<T, Ts...>& args)
133 return At<I - 1>::get(args.tail());
136 template <
typename T,
typename... Ts>
137 static const auto& get(
const Arguments<T, Ts...>& args)
139 return At<I - 1>::get(args.tail());
147 template <
typename T,
typename... Ts>
148 static T& get(Arguments<T, Ts...>& args)
153 template <
typename T,
typename... Ts>
154 static const T& get(
const Arguments<T, Ts...>& args)
161template <std::size_t I,
typename... Ts>
162auto& get(Arguments<Ts...>& args)
164 return At<I>::get(args);
168template <std::size_t I,
typename... Ts>
169const auto& get(
const Arguments<Ts...>& args)
171 return At<I>::get(args);
Remote services and clients.
Definition HttpService.h:39
Core module.
Definition Allocator.h:33