#pragma once #include "../acl_cpp_define.hpp" #include "dbuf_pool.hpp" namespace acl { class diff_manager; /** * 差集比较纯虚类,子类必须继承该类,并实现其中的纯虚方法 * 该类继承于 dbuf_obj 类,便于由 dbuf_guard 统一管理,统一销毁 */ class diff_object : public dbuf_obj { public: /** * 构造函数 * @param manager {diff_manager&} */ diff_object(diff_manager& manager); virtual ~diff_object(void) {} /** * 纯虚接口,获得该对象的键字符串 * @return {const char*} 必须返回非空字符串 */ virtual const char* get_key(void) const = 0; /** * 纯虚接口,获得该对象的值字符串 * @return {const char*} 必须返回非空字符串 */ virtual const char* get_val(void) const = 0; /** * 纯虚接口,用来比较两个对象 * @param obj {const diff_object&} * @return {bool} 两个对象是否相等 */ virtual bool operator== (const diff_object& obj) const = 0; /** * 是否是不在给定区间范围(闭区间)的多余数据 * @param range_from {long long} 起始位置 * @param range_to {long long} 结束位置 * @return {bool} 是否是超过给定区间范围的多余数据对象 */ virtual bool check_range(long long range_from, long long range_to) const { (void) range_from; (void) range_to; return false; } protected: diff_manager& manager_; }; } // namespace acl