Files
IoTManager/lib/ArduinoStreamUtils/src/StreamUtils/Clients/WriteBufferingClient.hpp

29 lines
1.0 KiB
C++
Raw Normal View History

2021-12-13 00:58:42 +01:00
// 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