📄 rtpredicate.h
字号:
// -*- Mode: C++ -*-//--------------------------------------------------------------------// RTpredicate.h// -------------// Implements the query predicate // // Inheritance hierarchy:// GiSTobject// GiSTpredicate// RTpredicate//// TPR-tree - Index for continuously moving objects// July 2001 release, Aalborg University//#ifndef RTPREDICATE_H#define RTPREDICATE_H#include "GiSTpredicate.h"#include "rtkey.h"//----------------------------------------------------enum RToper { RToverlap, RTcontains, RTcontained, RTEqual};//----------------------------------------------------class RTpredicate : public GiSTpredicate {public: RTpredicate(RToper oper, const RTkey& val) : oper(oper), ptr ((GiSTpage) -1) { value = (RTkey*)val.Copy(); } RTpredicate(GiSTpage ptr, const RTkey& val) : oper(RTEqual), ptr(ptr) { value = (RTkey*)val.Copy(); } RTpredicate(const RTpredicate& p) : oper(p.oper), ptr(p.ptr) { value = (RTkey*)(p.value->Copy()); } GiSTobject* Copy() const { return new RTpredicate(*this); } GiSTobjid IsA () const { return RTPREDICATE_CLASS; } int Consistent(const GiSTentry& entry) const; void SetOper (RToper op) { oper = op; } void SetValue (const RTkey& v) { delete value; value = (RTkey*) v.Copy(); } RTkey* Value () const { return value; } RToper Oper () const { return oper; } GiSTpage Ptr () const { return ptr; } ~RTpredicate() { delete value; }#ifdef PRINTING_OBJECTS void Print(ostream& os) const { const char *operstrs[] = { "&&", "^", "||", "=" }; os << "key " << operstrs[oper] << " " << value; }#endif private: GiSTpage ptr; // For delete predicates RToper oper; RTkey* value;};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -