int getTreeNumSegments(void *dbid, int nid, int *numSegments, int isCached) { if(isCached) return _RTreeGetNumSegments(dbid, nid, numSegments); else return _TreeGetNumSegments(dbid, nid, numSegments); }
int updateTreeSegment(void *dbid, int nid, int segIdx, void *startDsc, void *endDsc, void *timeDsc) { struct descriptor_xd *startXd = (struct descriptor_xd *)startDsc; struct descriptor_xd *endXd = (struct descriptor_xd *)endDsc; struct descriptor_xd *timeXd = (struct descriptor_xd *)timeDsc; int status, numSegments, segmentIdx; if(segIdx == -1) { status = _TreeGetNumSegments(dbid, nid, &numSegments); if(!(status & 1)) return status; segmentIdx = numSegments - 1; } else segmentIdx = segIdx; status = _TreeUpdateSegment(dbid, nid, (struct descriptor *)startXd->pointer, (struct descriptor *)endXd->pointer, (struct descriptor *)timeXd->pointer, segmentIdx); freeDsc(startXd); freeDsc(endXd); freeDsc(timeXd); return status; }
int getTreeNumSegments(void *dbid, int nid, int *numSegments) { return _TreeGetNumSegments(dbid, nid, numSegments); }