...
This commit is contained in:
parent
e99e422701
commit
a1b60bcac9
@ -68,6 +68,12 @@ public:
|
|||||||
|
|
||||||
bool empty() const { return std::ranges::distance(_bytes.begin(), _bytes.end()) == 0; }
|
bool empty() const { return std::ranges::distance(_bytes.begin(), _bytes.end()) == 0; }
|
||||||
|
|
||||||
|
size_t byteSize() const
|
||||||
|
{
|
||||||
|
//
|
||||||
|
return std::ranges::distance(_bytes.begin(), _bytes.end());
|
||||||
|
}
|
||||||
|
|
||||||
// get a copy of message bytes
|
// get a copy of message bytes
|
||||||
template <traits::adc_output_char_range R>
|
template <traits::adc_output_char_range R>
|
||||||
R bytes() const
|
R bytes() const
|
||||||
@ -138,6 +144,17 @@ public:
|
|||||||
return emp;
|
return emp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
size_t byteSize() const
|
||||||
|
{
|
||||||
|
size_t sz = 0;
|
||||||
|
|
||||||
|
for (const auto& el : _bytes | std::views::drop(_reservedNum)) {
|
||||||
|
sz += std::ranges::distance(el.begin(), el.end());
|
||||||
|
}
|
||||||
|
|
||||||
|
return sz;
|
||||||
|
}
|
||||||
|
|
||||||
// get a copy of message bytes
|
// get a copy of message bytes
|
||||||
template <traits::adc_output_char_range R>
|
template <traits::adc_output_char_range R>
|
||||||
R bytes() const
|
R bytes() const
|
||||||
@ -455,6 +472,12 @@ public:
|
|||||||
virtual ~AdcKeyTokenNetMessage() = default;
|
virtual ~AdcKeyTokenNetMessage() = default;
|
||||||
|
|
||||||
|
|
||||||
|
size_t byteSize() const
|
||||||
|
{
|
||||||
|
size_t sz = base_t::template byteSize();
|
||||||
|
return sz + std::distance(this->_bytesbyte[0].begin(), this->_bytes[0].end());
|
||||||
|
}
|
||||||
|
|
||||||
// get a copy of message bytes
|
// get a copy of message bytes
|
||||||
template <traits::adc_output_char_range R>
|
template <traits::adc_output_char_range R>
|
||||||
R bytes() const
|
R bytes() const
|
||||||
|
|||||||
@ -7,26 +7,43 @@ ABSTRACT DEVICE COMPONENTS LIBRARY
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include <utility>
|
||||||
|
|
||||||
namespace adc
|
namespace adc
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
template <typename NetMessageT, typename IOImplT>
|
template <typename IOImplT, typename NetMessageT>
|
||||||
class AdcNetService : public IOImplT
|
class AdcNetServiceInterface : public IOImplT
|
||||||
{
|
{
|
||||||
|
protected:
|
||||||
|
AdcNetServiceInterface::socket _socket;
|
||||||
|
|
||||||
|
template <typename... IOImplCtorArgTs>
|
||||||
|
AdcNetServiceInterface(AdcNetServiceInterface::socket&& sock, IOImplCtorArgTs&&... args)
|
||||||
|
: IOImplT(std::forward<IOImplCtorArgTs>(args)...), _socket(sock)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
using typename IOImplT::endpoint;
|
||||||
|
using typename IOImplT::socket;
|
||||||
|
|
||||||
|
virtual ~AdcNetServiceInterface() = default;
|
||||||
|
|
||||||
|
|
||||||
/* asynchronuos operations */
|
/* asynchronuos operations */
|
||||||
|
|
||||||
// open connection
|
// open connection
|
||||||
template <typename... ArgTs>
|
template <typename... ArgTs>
|
||||||
auto asyncConnect(ArgTs&&... args)
|
auto asyncConnect(AdcNetServiceInterface::endpoint&& end_point, ArgTs&&... args)
|
||||||
{
|
{
|
||||||
|
return IOImplT::asyncConnect(end_point);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template <typename... ArgTs>
|
template <typename... ArgTs>
|
||||||
auto asyncSend(NetMessageT&& msg, ArgTs&&... args)
|
auto asyncSend(const NetMessageT& msg, ArgTs&&... args)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -40,7 +57,12 @@ public:
|
|||||||
/* blocking operations */
|
/* blocking operations */
|
||||||
|
|
||||||
template <typename... ArgTs>
|
template <typename... ArgTs>
|
||||||
auto send(NetMessageT&& msg, ArgTs&&... args)
|
auto connect(const AdcNetServiceInterface::endpoint& end_point, ArgTs&&... args)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename... ArgTs>
|
||||||
|
auto send(const NetMessageT& msg, ArgTs&&... args)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user