mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-05-27 21:29:21 +03:00
29 lines
1.0 KiB
C++
29 lines
1.0 KiB
C++
// StreamUtils - github.com/bblanchon/ArduinoStreamUtils
|
|
// Copyright Benoit Blanchon 2019-2021
|
|
// MIT License
|
|
|
|
#pragma once
|
|
|
|
#include "../Policies/ConnectForwardingPolicy.hpp"
|
|
#include "../Policies/ReadForwardingPolicy.hpp"
|
|
#include "../Policies/WriteBufferingPolicy.hpp"
|
|
#include "../Ports/DefaultAllocator.hpp"
|
|
#include "ClientProxy.hpp"
|
|
|
|
namespace StreamUtils {
|
|
|
|
template <typename TAllocator>
|
|
struct BasicWriteBufferingClient
|
|
: ClientProxy<ReadForwardingPolicy, WriteBufferingPolicy<TAllocator>,
|
|
ConnectForwardingPolicy> {
|
|
explicit BasicWriteBufferingClient(Client &target, size_t capacity,
|
|
TAllocator allocator = TAllocator())
|
|
: ClientProxy<ReadForwardingPolicy, WriteBufferingPolicy<TAllocator>,
|
|
ConnectForwardingPolicy>(
|
|
target, ReadForwardingPolicy{},
|
|
WriteBufferingPolicy<TAllocator>{capacity, allocator},
|
|
ConnectForwardingPolicy{}) {}
|
|
};
|
|
|
|
using WriteBufferingClient = BasicWriteBufferingClient<DefaultAllocator>;
|
|
} // namespace StreamUtils
|