From 77b2c3281f4796288ed64c81252ad86ae6d06b74 Mon Sep 17 00:00:00 2001 From: Martchus Date: Fri, 16 Jul 2021 15:56:28 +0200 Subject: [PATCH] Add overload to BufferSearch required by arch-repo-manager --- io/buffersearch.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/io/buffersearch.h b/io/buffersearch.h index d9c1e8f..97da6b5 100644 --- a/io/buffersearch.h +++ b/io/buffersearch.h @@ -2,8 +2,11 @@ #define IOUTILITIES_BUFFER_SEARCH_H #include "../global.h" +#include "../misc/traits.h" +#include #include +#include #include #include @@ -15,6 +18,7 @@ public: BufferSearch(std::string_view searchTerm, std::string_view terminationChars, std::string_view giveUpTerm, CallbackType &&callback); void operator()(std::string_view buffer); void operator()(const char *buffer, std::size_t bufferSize); + template void operator()(std::shared_ptr> buffer, std::size_t bufferSize); void reset(); private: @@ -54,6 +58,15 @@ inline void BufferSearch::operator()(std::string_view buffer) (*this)(buffer.data(), buffer.size()); } +/*! + * \brief Processes the specified \a buffer which is a shared array with fixed \tp bufferCapacity. Invokes the callback according to the remarks mentioned in the class documentation. + */ +template +inline void BufferSearch::operator()(std::shared_ptr> buffer, std::size_t bufferSize) +{ + (*this)(buffer->data(), bufferSize); +} + } // namespace CppUtilities #endif // IOUTILITIES_BUFFER_SEARCH_H