33 #define M_PI_2 1.57079632679489661922 58 std::string what()
override;
71 virtual bool intersectsShape(
const IShape& in)
const = 0;
72 virtual bool containsShape(
const IShape& in)
const = 0;
73 virtual bool touchesShape(
const IShape& in)
const = 0;
74 virtual void getCenter(
Point& out)
const = 0;
75 virtual uint32_t getDimension()
const = 0;
76 virtual void getMBR(
Region& out)
const = 0;
77 virtual double getArea()
const = 0;
78 virtual double getMinimumDistance(
const IShape& in)
const = 0;
79 ~
IShape()
override =
default;
85 virtual bool intersectsShapeInTime(
const ITimeShape& in)
const = 0;
87 virtual bool containsShapeInTime(
const ITimeShape& in)
const = 0;
89 virtual bool touchesShapeInTime(
const ITimeShape& in)
const = 0;
91 virtual double getAreaInTime()
const = 0;
93 virtual double getIntersectingAreaInTime(
const ITimeShape& r)
const = 0;
101 virtual void getVMBR(
Region& out)
const = 0;
102 virtual void getMBRAtTime(
double t,
Region& out)
const = 0;
109 virtual id_type getIdentifier()
const = 0;
110 virtual void getShape(
IShape** out)
const = 0;
111 ~
IEntry()
override =
default;
117 virtual uint32_t getChildrenCount()
const = 0;
118 virtual id_type getChildIdentifier(uint32_t index)
const = 0;
119 virtual void getChildData(uint32_t index, uint32_t& len, uint8_t** data)
const = 0;
120 virtual void getChildShape(uint32_t index,
IShape** out)
const = 0;
121 virtual uint32_t getLevel()
const = 0;
122 virtual bool isIndex()
const = 0;
123 virtual bool isLeaf()
const = 0;
124 ~
INode()
override =
default;
130 virtual void getData(uint32_t& len, uint8_t** data)
const = 0;
131 ~
IData()
override =
default;
137 IData* getNext()
override = 0;
144 virtual void execute(
const INode& in) = 0;
151 virtual double getMinimumDistance(
const IShape& query,
const IShape& entry) = 0;
152 virtual double getMinimumDistance(
const IShape& query,
const IData& data) = 0;
159 virtual void loadByteArray(
const id_type
id, uint32_t& len, uint8_t** data) = 0;
160 virtual void storeByteArray(id_type&
id,
const uint32_t len,
const uint8_t*
const data) = 0;
161 virtual void deleteByteArray(
const id_type
id) = 0;
162 virtual void flush() = 0;
169 virtual void visitNode(
const INode& in) = 0;
170 virtual void visitData(
const IData& in) = 0;
171 virtual void visitData(std::vector<const IData*>& v) = 0;
178 virtual void getNextEntry(
const IEntry& previouslyFetched, id_type& nextEntryToFetch,
bool& bFetchNextEntry) = 0;
185 virtual uint64_t getReads()
const = 0;
186 virtual uint64_t getWrites()
const = 0;
187 virtual uint32_t getNumberOfNodes()
const = 0;
188 virtual uint64_t getNumberOfData()
const = 0;
195 virtual void insertData(uint32_t len,
const uint8_t* pData,
const IShape& shape, id_type shapeIdentifier) = 0;
196 virtual bool deleteData(
const IShape& shape, id_type shapeIdentifier) = 0;
197 virtual void internalNodesQuery(
const IShape& query,
IVisitor& v) = 0;
198 virtual void containsWhatQuery(
const IShape& query,
IVisitor& v) = 0;
199 virtual void intersectsWithQuery(
const IShape& query,
IVisitor& v) = 0;
200 virtual void pointLocationQuery(
const Point& query,
IVisitor& v) = 0;
202 virtual void nearestNeighborQuery(uint32_t k,
const IShape& query,
IVisitor& v) = 0;
207 virtual bool isIndexValid() = 0;
208 virtual void getStatistics(
IStatistics** out)
const = 0;
209 virtual void flush() = 0;
214 namespace StorageManager
225 virtual uint64_t getHits() = 0;
226 virtual void clear() = 0;
SIDX_DLL IStorageManager * returnDiskStorageManager(Tools::PropertySet &in)
SIDX_DLL IStorageManager * returnMemoryStorageManager(Tools::PropertySet &in)
SIDX_DLL IStorageManager * loadDiskStorageManager(std::string &baseName)
SIDX_DLL IStorageManager * createNewMemoryStorageManager()
SIDX_DLL std::ostream & operator<<(std::ostream &os, const Ball &ball)
SIDX_DLL IBuffer * createNewRandomEvictionsBuffer(IStorageManager &in, uint32_t capacity, bool bWriteThrough)
SIDX_DLL IBuffer * returnRandomEvictionsBuffer(IStorageManager &ind, Tools::PropertySet &in)
SIDX_DLL IStorageManager * createNewDiskStorageManager(std::string &baseName, uint32_t pageSize)