Add implentations of isValid()
for NTAggregate, NTAttibute, NTContinuum, NTEnum, NTHistogram, NTMatrix, NTNameValue, NTNDArrayAttribute, NTScalar, NTScalarArray and NTUnion.
This commit is contained in:
@@ -278,6 +278,11 @@ bool NTAggregate::isCompatible(PVStructurePtr const & pvStructure)
|
||||
return isCompatible(pvStructure->getStructure());
|
||||
}
|
||||
|
||||
bool NTAggregate::isValid()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
NTAggregateBuilderPtr NTAggregate::createBuilder()
|
||||
{
|
||||
return NTAggregateBuilderPtr(new detail::NTAggregateBuilder());
|
||||
|
||||
@@ -175,6 +175,11 @@ bool NTAttribute::isCompatible(PVStructurePtr const & pvStructure)
|
||||
return isCompatible(pvStructure->getStructure());
|
||||
}
|
||||
|
||||
bool NTAttribute::isValid()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
NTAttributeBuilderPtr NTAttribute::createBuilder()
|
||||
{
|
||||
return NTAttributeBuilderPtr(new detail::NTAttributeBuilder());
|
||||
|
||||
@@ -161,6 +161,11 @@ bool NTContinuum::isCompatible(PVStructurePtr const & pvStructure)
|
||||
return isCompatible(pvStructure->getStructure());
|
||||
}
|
||||
|
||||
bool NTContinuum::isValid()
|
||||
{
|
||||
return ((getUnits()->getLength()-1)*getBase()->getLength() ==
|
||||
getValue()->getLength());
|
||||
}
|
||||
|
||||
NTContinuumBuilderPtr NTContinuum::createBuilder()
|
||||
{
|
||||
|
||||
@@ -154,6 +154,11 @@ bool NTEnum::isCompatible(PVStructurePtr const & pvStructure)
|
||||
return isCompatible(pvStructure->getStructure());
|
||||
}
|
||||
|
||||
bool NTEnum::isValid()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
NTEnumBuilderPtr NTEnum::createBuilder()
|
||||
{
|
||||
return NTEnumBuilderPtr(new detail::NTEnumBuilder());
|
||||
|
||||
@@ -171,6 +171,10 @@ bool NTHistogram::isCompatible(PVStructurePtr const & pvStructure)
|
||||
return isCompatible(pvStructure->getStructure());
|
||||
}
|
||||
|
||||
bool NTHistogram::isValid()
|
||||
{
|
||||
return (getValue()->getLength()+1 == getRanges()->getLength());
|
||||
}
|
||||
|
||||
NTHistogramBuilderPtr NTHistogram::createBuilder()
|
||||
{
|
||||
|
||||
@@ -181,6 +181,31 @@ bool NTMatrix::isCompatible(PVStructurePtr const & pvStructure)
|
||||
return isCompatible(pvStructure->getStructure());
|
||||
}
|
||||
|
||||
bool NTMatrix::isValid()
|
||||
{
|
||||
int valueLength = getValue()->getLength();
|
||||
if (valueLength == 0)
|
||||
return false;
|
||||
|
||||
PVIntArrayPtr pvDim = getDim();
|
||||
if (pvDim.get())
|
||||
{
|
||||
int length = pvDim->getLength();
|
||||
if (length != 1 && length !=2)
|
||||
return false;
|
||||
|
||||
PVIntArray::const_svector data = pvDim->view();
|
||||
int expectedLength = 1;
|
||||
for (PVIntArray::const_svector::const_iterator it = data.begin();
|
||||
it != data.end(); ++it)
|
||||
{
|
||||
expectedLength *= *it;
|
||||
}
|
||||
if (expectedLength != valueLength)
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
NTMatrixBuilderPtr NTMatrix::createBuilder()
|
||||
{
|
||||
|
||||
@@ -168,6 +168,11 @@ bool NTNameValue::isCompatible(PVStructurePtr const & pvStructure)
|
||||
return isCompatible(pvStructure->getStructure());
|
||||
}
|
||||
|
||||
bool NTNameValue::isValid()
|
||||
{
|
||||
return (getValue<PVScalarArray>()->getLength() == getName()->getLength());
|
||||
}
|
||||
|
||||
NTNameValueBuilderPtr NTNameValue::createBuilder()
|
||||
{
|
||||
return NTNameValueBuilderPtr(new detail::NTNameValueBuilder());
|
||||
|
||||
@@ -158,6 +158,11 @@ bool NTNDArrayAttribute::isCompatible(PVStructurePtr const & pvStructure)
|
||||
return isCompatible(pvStructure->getStructure());
|
||||
}
|
||||
|
||||
bool NTNDArrayAttribute::isValid()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
NTNDArrayAttributeBuilderPtr NTNDArrayAttribute::createBuilder()
|
||||
{
|
||||
return NTNDArrayAttributeBuilderPtr(new detail::NTNDArrayAttributeBuilder());
|
||||
|
||||
@@ -193,6 +193,11 @@ bool NTScalar::isCompatible(PVStructurePtr const & pvStructure)
|
||||
return isCompatible(pvStructure->getStructure());
|
||||
}
|
||||
|
||||
bool NTScalar::isValid()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
NTScalarBuilderPtr NTScalar::createBuilder()
|
||||
{
|
||||
return NTScalarBuilderPtr(new detail::NTScalarBuilder());
|
||||
|
||||
@@ -189,6 +189,10 @@ bool NTScalarArray::isCompatible(PVStructurePtr const & pvStructure)
|
||||
return isCompatible(pvStructure->getStructure());
|
||||
}
|
||||
|
||||
bool NTScalarArray::isValid()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
NTScalarArrayBuilderPtr NTScalarArray::createBuilder()
|
||||
{
|
||||
|
||||
@@ -154,6 +154,11 @@ bool NTUnion::isCompatible(PVStructurePtr const & pvStructure)
|
||||
return isCompatible(pvStructure->getStructure());
|
||||
}
|
||||
|
||||
bool NTUnion::isValid()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
NTUnionBuilderPtr NTUnion::createBuilder()
|
||||
{
|
||||
return NTUnionBuilderPtr(new detail::NTUnionBuilder());
|
||||
|
||||
Reference in New Issue
Block a user