This commit is contained in:
Timur A. Fatkhullin
2024-06-15 21:23:57 +03:00
parent daf4e1eab9
commit 9a2baa702d
5 changed files with 182 additions and 116 deletions

View File

@@ -11,12 +11,13 @@ ABSTRACT DEVICE COMPONENTS LIBRARY
#include <utility>
#include "adc_netmsg.h"
namespace adc
{
template <typename NetMessageT, typename ImplT>
template <typename ImplT>
class AdcNetService
{
protected:
@@ -56,13 +57,13 @@ public:
}
template <typename... ArgTs>
template <traits::adc_netmessage_c NetMessageT, typename... ArgTs>
auto asyncSend(const NetMessageT& msg, const timeout_drtn_t& timeout = defaultSendTimeout, ArgTs&&... args)
{
return _impl.asyncSend(msg, timeout, std::forward<ArgTs>(args)...);
}
template <typename... ArgTs>
template <traits::adc_netmessage_c NetMessageT, typename... ArgTs>
auto asyncReceive(const timeout_drtn_t& timeout = defaultRecvTimeout, ArgTs&&... args)
{
return _impl.asyncReceive(timeout, std::forward<ArgTs>(args)...);
@@ -78,14 +79,14 @@ public:
return _impl.connect(endpoint, timeout, std::forward<ArgTs>(args)...);
}
template <typename... ArgTs>
template <traits::adc_netmessage_c NetMessageT, typename... ArgTs>
auto send(const NetMessageT& msg, const timeout_drtn_t& timeout = defaultSendTimeout, ArgTs&&... args)
{
return _impl.send(msg, timeout, std::forward<ArgTs>(args)...);
}
template <typename... ArgTs>
template <traits::adc_netmessage_c NetMessageT, typename... ArgTs>
NetMessageT receive(const timeout_drtn_t& timeout = defaultRecvTimeout, ArgTs&&... args)
{
return _impl.receive(timeout, std::forward<ArgTs>(args)...);
@@ -102,11 +103,11 @@ public:
namespace traits
{
// template <typename T>
// concept adc_netservice_c = requires {
// typename T::impl_t;
// std::derived_from<AdcNetService<typename T::impl_t>>;
// };
template <typename T>
concept adc_netservice_c = requires {
typename T::impl_t;
std::derived_from<T, AdcNetService<typename T::impl_t>>;
};
} // namespace traits