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