本文整理汇总了C++中Segment::appendTimestamps方法的典型用法代码示例。如果您正苦于以下问题:C++ Segment::appendTimestamps方法的具体用法?C++ Segment::appendTimestamps怎么用?C++ Segment::appendTimestamps使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Segment
的用法示例。
在下文中一共展示了Segment::appendTimestamps方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: appendSegmentData
//.........这里部分代码省略.........
}
if(idx >= numSegments || numSegments == 0)
{
lock.unlock();
// printf("APPENDSEGMENT DATA: BAD INDEX");
return BAD_INDEX;
}
Segment *segment = nodeData->getSegmentAt(idx);
/* if(!segment->isTimestamped())
{
lock.unlock();
return 0;
}
*/
segment->getShape((char **)&shape, &shapeSize);
//Check Shape. Meaning of bound array:
// 1) data type
// 2) item size in bytes
// 3) number of dimensions
// 4) total dimension in bytes
// The remaining elements are the dimension limits
if(bounds[0] != shape[0])
{
lock.unlock();
// printf("APPENDSEGMENT DATA: BAD TYPE %d %d\n", bounds[0], shape[0]);
return BAD_TYPE;
}
if(bounds[2] < shape[2] - 1 || bounds[2] > shape[2])
{
lock.unlock();
// printf("APPENDSEGMENT DATA: BAD TYPE 1");
return BAD_SHAPE;
}
for(int i = 0; i < shape[2] - 1; i++)
{
if(bounds[4 + i] != shape[4 + i])
{
lock.unlock();
// printf("APPENDSEGMENT DATA: BAD SHAPE");
return BAD_SHAPE;
}
}
int currSegmentSize = segment->getCurrDataSize();
segment->getData((char **)&segmentData, &segmentSize);
if(startIdx < 0)
{
int leftSize = segmentSize - currSegmentSize;
if(dataSize > leftSize)
{
lock.unlock();
// printf("APPENDSEGMENT DATA: DATASIZE > LEFT SIZE");
return TRUNCATED;
}
if(leftSize == dataSize)
*segmentFilled = 1;
else
*segmentFilled = 0;
memcpy(&segmentData[currSegmentSize], data, dataSize);
segment->setCurrDataSize(currSegmentSize + dataSize);
if(isTimestamped)
segment->appendTimestamps(timestamps, numTimestamps);
*retIdx = numSegments - 1;
CallbackManager *callback = node->getData()->getCallbackManager();
if(callback)
callback->callCallback();
lock.unlock();
return 1;
}
else
{
int itemSize = bounds[3]; //Total size of a data item (array)
int startOfs = startIdx * itemSize;
int leftSize = segmentSize - startOfs;
if(dataSize > leftSize)
{
lock.unlock();
// printf("APPENDSEGMENT DATA: DATASIZE > LEFT SIZE");
return TRUNCATED;
}
if(leftSize == dataSize)
*segmentFilled = 1;
else
*segmentFilled = 0;
memcpy(&segmentData[startOfs], data, dataSize);
*retIdx = numSegments - 1;
//Segment size does not change
CallbackManager *callback = node->getData()->getCallbackManager();
if(callback)
callback->callCallback();
lock.unlock();
return 1;
}
}
lock.unlock();
return 0;
}