use new PVStructureArray api
This commit is contained in:
@@ -188,26 +188,23 @@ bool compareField(const PVStructure* left, const PVStructure* right)
|
||||
|
||||
bool compareField(const PVStructureArray* left, const PVStructureArray* right)
|
||||
{
|
||||
if(left->getLength()!=right->getLength())
|
||||
if(*left->getStructureArray()->getStructure()
|
||||
!= *right->getStructureArray()->getStructure())
|
||||
return false;
|
||||
|
||||
StructureConstPtr ls = left->getStructureArray()->getStructure();
|
||||
PVStructureArray::const_svector ld=left->view(), rd=right->view();
|
||||
|
||||
if(*ls!=*right->getStructureArray()->getStructure())
|
||||
if(ld.size()!=rd.size())
|
||||
return false;
|
||||
|
||||
const PVStructureArray::pointer ld=left->get(), rd=right->get();
|
||||
PVStructureArray::const_svector::const_iterator lit, lend, rit;
|
||||
|
||||
for(size_t i=0, ilen=left->getLength(); i<ilen; i++)
|
||||
for(lit=ld.begin(), lend=ld.end(), rit=rd.begin();
|
||||
lit!=lend;
|
||||
++lit, ++rit)
|
||||
{
|
||||
const PVFieldPtrArray& lf = ld[i]->getPVFields();
|
||||
const PVFieldPtrArray& rf = rd[i]->getPVFields();
|
||||
|
||||
for(size_t k=0, klen=ls->getNumberFields(); k<klen; k++)
|
||||
{
|
||||
if(*lf[i]!=*rf[i])
|
||||
return false;
|
||||
}
|
||||
if(**lit != **rit)
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -77,14 +77,13 @@ int main(int, char**)
|
||||
StructureConstPtr structure = standardField->scalar(pvDouble, "alarm,timeStamp");
|
||||
pvStructure = standardPVField->structureArray(structure,"alarm,timeStamp");
|
||||
size_t num = 2;
|
||||
PVStructurePtrArray pvStructures;
|
||||
pvStructures.reserve(num);
|
||||
PVStructureArray::svector pvStructures(num);
|
||||
for(size_t i=0; i<num; i++) {
|
||||
pvStructures.push_back(
|
||||
pvDataCreate->createPVStructure(structure));
|
||||
pvStructures[i]=
|
||||
pvDataCreate->createPVStructure(structure);
|
||||
}
|
||||
PVStructureArrayPtr pvStructureArray = pvStructure->getStructureArrayField("value");
|
||||
pvStructureArray->put(0, num, pvStructures, 0);
|
||||
pvStructureArray->replace(pvStructures);
|
||||
std::cout << *pvStructure << std::endl;
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -70,14 +70,13 @@ int main(int, char **)
|
||||
StructureConstPtr structure = standardField->scalar(pvDouble, "alarm,timeStamp");
|
||||
pvStructure = standardPVField->structureArray(structure,"alarm,timeStamp");
|
||||
size_t num = 2;
|
||||
PVStructurePtrArray pvStructures;
|
||||
pvStructures.reserve(num);
|
||||
PVStructureArray::svector pvStructures(num);
|
||||
for(size_t i=0; i<num; i++) {
|
||||
pvStructures.push_back(
|
||||
pvDataCreate->createPVStructure(structure));
|
||||
pvStructures[i]=
|
||||
pvDataCreate->createPVStructure(structure);
|
||||
}
|
||||
PVStructureArrayPtr pvStructureArray = pvStructure->getStructureArrayField("value");
|
||||
pvStructureArray->put(0, num, pvStructures, 0);
|
||||
pvStructureArray->replace(pvStructures);
|
||||
builder.clear();
|
||||
pvStructure->toString(&builder);
|
||||
print("structureArrayTest");
|
||||
|
||||
Reference in New Issue
Block a user