Line data Source code
1 : // Copyright 2024 Accenture. 2 : 3 : /** 4 : * Contains IMerger interface. 5 : * \file IMerger.h 6 : * \ingroup filter 7 : */ 8 : #ifndef GUARD_058F2EBC_3D62_4D90_9E7A_4B24E3C99085 9 : #define GUARD_058F2EBC_3D62_4D90_9E7A_4B24E3C99085 10 : 11 : namespace can 12 : { 13 : class BitFieldFilter; 14 : class AbstractStaticBitFieldFilter; 15 : class IntervalFilter; 16 : 17 : /** 18 : * interface for class that are able to merge with other filter classes 19 : * @class IMerger 20 : * 21 : * 22 : * \see BitFieldFilter 23 : * \see AbstractStaticBitFieldFilter 24 : * \see IntervalFilter 25 : */ 26 : class IMerger 27 : { 28 : public: 29 77 : IMerger() = default; 30 : IMerger(IMerger const&) = delete; 31 : IMerger& operator=(IMerger const&) = delete; 32 : 33 : /** 34 : * merges with a BitFieldFilter 35 : * \param filter BitFieldFilter to merge with 36 : */ 37 : virtual void mergeWithBitField(BitFieldFilter const& filter) = 0; 38 : 39 : /** 40 : * merges with a AbstractStaticBitFieldFilter 41 : * \param filter AbstractStaticBitFieldFilter to merge with 42 : */ 43 : virtual void mergeWithStaticBitField(AbstractStaticBitFieldFilter const& filter) = 0; 44 : 45 : /** 46 : * merges with a IntervalFilter 47 : * \param filter IntervalFilter to merge with 48 : */ 49 : virtual void mergeWithInterval(IntervalFilter const& filter) = 0; 50 : }; 51 : 52 : } // namespace can 53 : 54 : #endif // GUARD_058F2EBC_3D62_4D90_9E7A_4B24E3C99085