Exemple #1
0
 int updateTreeSegment(void *dbid, int nid, void *startDsc, void *endDsc, 
								void *timeDsc, int isCached, int cachePolicy)
{
	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;

	if(isCached)
	{
		status = _RTreeUpdateSegment(dbid, nid, (struct descriptor *)startXd->pointer, 
			(struct descriptor *)endXd->pointer, (struct descriptor *)timeXd->pointer, -1, cachePolicy);
	}
	else
		status = _TreeUpdateSegment(dbid, nid, (struct descriptor *)startXd->pointer, 
			(struct descriptor *)endXd->pointer, (struct descriptor *)timeXd->pointer, -1);
	freeDsc(startXd);
	freeDsc(endXd);
	freeDsc(timeXd);
	return status;
}
Exemple #2
0
 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;
}