Advanced Chunk Processing Library 0.2.0
A comprehensive C++ library for advanced data chunking strategies and processing operations
Loading...
Searching...
No Matches
advanced_structures::BloomFilterChunk< T > Class Template Reference

Bloom filter-based chunking implementation. More...

#include <advanced_structures.hpp>

+ Collaboration diagram for advanced_structures::BloomFilterChunk< T >:

Public Member Functions

 BloomFilterChunk (size_t size=1024, size_t num_funcs=3)
 
std::vector< std::vector< T > > chunk (const std::vector< T > &data)
 

Protected Member Functions

virtual bool shouldSplit (const std::vector< T > &chunk)
 

Private Attributes

std::vector< bool > filter
 
size_t filter_size
 
size_t num_hash_functions
 

Detailed Description

template<typename T>
class advanced_structures::BloomFilterChunk< T >

Bloom filter-based chunking implementation.

Template Parameters
TThe type of elements to be chunked

Definition at line 585 of file advanced_structures.hpp.

Constructor & Destructor Documentation

◆ BloomFilterChunk()

template<typename T >
advanced_structures::BloomFilterChunk< T >::BloomFilterChunk ( size_t  size = 1024,
size_t  num_funcs = 3 
)
inline

Member Function Documentation

◆ chunk()

template<typename T >
std::vector< std::vector< T > > advanced_structures::BloomFilterChunk< T >::chunk ( const std::vector< T > &  data)
inline

Definition at line 595 of file advanced_structures.hpp.

595 {
596 std::vector<std::vector<T>> result;
597 if (data.empty())
598 return result;
599
600 std::vector<T> current_chunk;
601 for (const auto& item : data) {
602 current_chunk.push_back(item);
603 if (shouldSplit(current_chunk)) {
604 result.push_back(current_chunk);
605 current_chunk.clear();
606 }
607 }
608
609 if (!current_chunk.empty()) {
610 result.push_back(current_chunk);
611 }
612
613 return result;
614 }
virtual bool shouldSplit(const std::vector< T > &chunk)

References advanced_structures::BloomFilterChunk< T >::shouldSplit().

Referenced by advanced_structures::BloomFilterChunk< T >::shouldSplit(), and TEST().

◆ shouldSplit()

template<typename T >
virtual bool advanced_structures::BloomFilterChunk< T >::shouldSplit ( const std::vector< T > &  chunk)
inlineprotectedvirtual

Definition at line 617 of file advanced_structures.hpp.

617 {
618 return chunk.size() >= 4; // Default implementation
619 }
std::vector< std::vector< T > > chunk(const std::vector< T > &data)

References advanced_structures::BloomFilterChunk< T >::chunk().

Referenced by advanced_structures::BloomFilterChunk< T >::chunk().

Member Data Documentation

◆ filter

template<typename T >
std::vector<bool> advanced_structures::BloomFilterChunk< T >::filter
private

Definition at line 589 of file advanced_structures.hpp.

◆ filter_size

template<typename T >
size_t advanced_structures::BloomFilterChunk< T >::filter_size
private

Definition at line 587 of file advanced_structures.hpp.

◆ num_hash_functions

template<typename T >
size_t advanced_structures::BloomFilterChunk< T >::num_hash_functions
private

Definition at line 588 of file advanced_structures.hpp.


The documentation for this class was generated from the following file: