acl  3.5.3.0
diff_object.hpp
浏览该文件的文档.
1 #pragma once
2 #include "../acl_cpp_define.hpp"
3 #include "dbuf_pool.hpp"
4 
5 namespace acl
6 {
7 
8 class diff_manager;
9 
10 /**
11  * 差集比较纯虚类,子类必须继承该类,并实现其中的纯虚方法
12  * 该类继承于 dbuf_obj 类,便于由 dbuf_guard 统一管理,统一销毁
13  */
14 class diff_object : public dbuf_obj
15 {
16 public:
17  /**
18  * 构造函数
19  * @param manager {diff_manager&}
20  */
21  diff_object(diff_manager& manager);
22 
23  virtual ~diff_object(void) {}
24 
25  /**
26  * 纯虚接口,获得该对象的键字符串
27  * @return {const char*} 必须返回非空字符串
28  */
29  virtual const char* get_key(void) const = 0;
30 
31  /**
32  * 纯虚接口,获得该对象的值字符串
33  * @return {const char*} 必须返回非空字符串
34  */
35  virtual const char* get_val(void) const = 0;
36 
37  /**
38  * 纯虚接口,用来比较两个对象
39  * @param obj {const diff_object&}
40  * @return {bool} 两个对象是否相等
41  */
42  virtual bool operator== (const diff_object& obj) const = 0;
43 
44  /**
45  * 是否是不在给定区间范围(闭区间)的多余数据
46  * @param range_from {long long} 起始位置
47  * @param range_to {long long} 结束位置
48  * @return {bool} 是否是超过给定区间范围的多余数据对象
49  */
50  virtual bool check_range(long long range_from, long long range_to) const
51  {
52  (void) range_from;
53  (void) range_to;
54  return false;
55  }
56 
57 protected:
59 };
60 
61 } // namespace acl
virtual bool operator==(const diff_object &obj) const =0
virtual const char * get_key(void) const =0
diff_manager & manager_
Definition: diff_object.hpp:58
virtual ~diff_object(void)
Definition: diff_object.hpp:23
diff_object(diff_manager &manager)
virtual const char * get_val(void) const =0
virtual bool check_range(long long range_from, long long range_to) const
Definition: diff_object.hpp:50