acl/lib_acl_cpp/include/acl_cpp/stdlib/diff_string.hpp
zsx 6f18301ac8 add token_tree class for 256-fork matching tree;
format the files with DOS format.
2018-08-19 15:31:26 +08:00

57 lines
1.1 KiB
C++

#pragma once
#include "../acl_cpp_define.hpp"
#include "diff_object.hpp"
namespace acl
{
class diff_string : public diff_object
{
public:
/**
* 构造函数
* @param manager {diff_manager&}
* @param key {const char*} 以字符串方式表示的键,非空字符串
* @param val {const char*} 以字符串方式表示的值,非空字符串
*/
diff_string(diff_manager& manager, const char* key, const char* val);
/**
* 设置本对象所在的区间值
* @param range {long long}
*/
void set_range(long long range);
/**
* 获得本对象所在的区间值
* @return {long long}
*/
long long get_range(void) const
{
return range_;
}
public:
// override: 基类纯虚函数的实现
const char* get_key(void) const;
// override: 基类纯虚函数的实现
const char* get_val(void) const;
// override: 基类纯函数的实现
bool operator== (const diff_object& obj) const;
// @override
bool check_range(long long range_from, long long range_to) const;
private:
const char* key_;
const char* val_;
long long range_;
// 析构函数声明为私有的,从而要求动态创建本类对象
~diff_string(void);
};
} // namespace acl