From eeae12e3d4875baad345dc98a77779d35e2c888b Mon Sep 17 00:00:00 2001 From: Michael Davidsaver Date: Tue, 7 May 2013 18:36:53 -0400 Subject: [PATCH] Convert: remove to/from*Array --- pvDataApp/pv/convert.h | 375 +------------------------------------ testApp/pv/testConvert.cpp | 360 ----------------------------------- 2 files changed, 1 insertion(+), 734 deletions(-) diff --git a/pvDataApp/pv/convert.h b/pvDataApp/pv/convert.h index 2ddfc21..8399ec3 100644 --- a/pvDataApp/pv/convert.h +++ b/pvDataApp/pv/convert.h @@ -435,380 +435,7 @@ public: * @throws std::invalid_argument if the Type is not a numeric scalar */ inline void fromDouble(PVScalarPtr const & pv, double from) { pv->putFrom(from); } - /** - * Convert a PV array to a byte array. - * @param pv a PV - * @param offset starting element in a PV - * @param length number of elements to transfer - * @param to where to put the PV data - * @param toOffset starting element in the array - * @return number of elements converted - * @throws std::invalid_argument if the element type is not numeric - */ - inline - std::size_t toByteArray(PVScalarArrayPtr const & pv, - std::size_t offset, - std::size_t length, - int8* to, - std::size_t toOffset) - { pv->getAs(to+toOffset, length, offset); return length; } - /** - * Convert a PV array to a short array. - * @param pv a PV - * @param offset starting element in a PV - * @param length number of elements to transfer - * @param to where to put the PV data - * @param toOffset starting element in the array - * @return number of elements converted - * @throws std::invalid_argument if the element type is not numeric - */ - inline - std::size_t toShortArray(PVScalarArrayPtr const & pv, - std::size_t offset, - std::size_t length, - int16* to, - std::size_t toOffset) - { pv->getAs(to+toOffset, length, offset); return length; } - /** - * Convert a PV array to an int array. - * @param pv a PV - * @param offset starting element in a PV - * @param length number of elements to transfer - * @param to where to put the PV data - * @param toOffset starting element in the array - * @return number of elements converted - * @throws std::invalid_argument if the element type is not numeric - */ - inline - std::size_t toIntArray(PVScalarArrayPtr const & pv, - std::size_t offset, - std::size_t length, - int32* to, - std::size_t toOffset) - { pv->getAs(to+toOffset, length, offset); return length; } - /** - * Convert a PV array to a long array. - * @param pv a PV - * @param offset starting element in a PV - * @param length number of elements to transfer - * @param to where to put the PV data - * @param toOffset starting element in the array - * @return number of elements converted - * @throws std::invalid_argument if the element type is not numeric - */ - inline - std::size_t toLongArray(PVScalarArrayPtr const & pv, - std::size_t offset, - std::size_t length, - int64* to, - std::size_t toOffset) - { pv->getAs(to+toOffset, length, offset); return length; } - /** - * Convert a PV array to a ubyte array. - * @param pv a PV - * @param offset starting element in a PV - * @param length number of elements to transfer - * @param to where to put the PV data - * @param toOffset starting element in the array - * @return number of elements converted - * @throws std::invalid_argument if the element type is not numeric - */ - inline - std::size_t toUByteArray(PVScalarArrayPtr const & pv, - std::size_t offset, - std::size_t length, - uint8* to, - std::size_t toOffset) - { pv->getAs(to+toOffset, length, offset); return length; } - /** - * Convert a PV array to a ushort array. - * @param pv a PV - * @param offset starting element in a PV - * @param length number of elements to transfer - * @param to where to put the PV data - * @param toOffset starting element in the array - * @return number of elements converted - * @throws std::invalid_argument if the element type is not numeric - */ - inline - std::size_t toUShortArray(PVScalarArrayPtr const & pv, - std::size_t offset, - std::size_t length, - uint16* to, - std::size_t toOffset) - { pv->getAs(to+toOffset, length, offset); return length; } - /** - * Convert a PV array to an uint array. - * @param pv a PV - * @param offset starting element in a PV - * @param length number of elements to transfer - * @param to where to put the PV data - * @param toOffset starting element in the array - * @return number of elements converted - * @throws std::invalid_argument if the element type is not numeric - */ - inline - std::size_t toUIntArray( - PVScalarArrayPtr const & pv, - std::size_t offset, - std::size_t length, - uint32* to, - std::size_t toOffset) - { pv->getAs(to+toOffset, length, offset); return length; } - /** - * Convert a PV array to a ulong array. - * @param pv a PV - * @param offset starting element in a PV - * @param length number of elements to transfer - * @param to where to put the PV data - * @param toOffset starting element in the array - * @return number of elements converted - * @throws std::invalid_argument if the element type is not numeric - */ - inline - std::size_t toULongArray( - PVScalarArrayPtr const & pv, - std::size_t offset, - std::size_t length, - uint64* to, - std::size_t toOffset) - { pv->getAs(to+toOffset, length, offset); return length; } - /** - * Convert a PV array to a float array. - * @param pv a PV - * @param offset starting element in a PV - * @param length number of elements to transfer - * @param to where to put the PV data - * @param toOffset starting element in the array - * @return number of elements converted - * @throws std::invalid_argument if the element type is not numeric - */ - inline - std::size_t toFloatArray( - PVScalarArrayPtr const & pv, - std::size_t offset, - std::size_t length, - float* to, - std::size_t toOffset) - { pv->getAs(to+toOffset, length, offset); return length; } - /** - * Convert a PV array to a double array. - * @param pv a PV - * @param offset starting element in a PV - * @param length number of elements to transfer - * @param to where to put the PV data - * @param toOffset starting element in the array - * @return number of elements converted - * @throws std::invalid_argument if the element type is not numeric - */ - inline - std::size_t toDoubleArray( - PVScalarArrayPtr const & pv, - std::size_t offset, - std::size_t length, - double* to, std::size_t - toOffset) - { pv->getAs(to+toOffset, length, offset); return length; } - /** - * Convert a PV array from a byte array. - * @param pv a PV - * @param offset starting element in a PV - * @param length number of elements to transfer - * @param from value to put into PV - * @param fromOffset - * @return number of elements converted - * @throws std::invalid_argument if the element type is not numeric - */ - inline - std::size_t fromByteArray( - PVScalarArrayPtr & pv, std::size_t offset, std::size_t length, - const int8* from, std::size_t fromOffset) - { pv->putFrom(from+fromOffset, length, offset); return length; } - inline - std::size_t fromByteArray( - PVScalarArrayPtr & pv, std::size_t offset, std::size_t length, - const ByteArray & from, std::size_t fromOffset) - {return fromByteArray(pv, offset, length, &from[0], fromOffset);} - /** - * Convert a PV array from a short array. - * @param pv a PV - * @param offset starting element in a PV - * @param length number of elements to transfer - * @param from value to put into PV - * @param fromOffset starting element in the source array - * @return number of elements converted - * @throws std::invalid_argument if the element type is not numeric - */ - inline - std::size_t fromShortArray( - PVScalarArrayPtr & pv, std::size_t offset, std::size_t length, - const int16* from, std::size_t fromOffset) - { pv->putFrom(from+fromOffset, length, offset); return length; } - inline - std::size_t fromShortArray( - PVScalarArrayPtr & pv, std::size_t offset, std::size_t length, - const ShortArray & from, std::size_t fromOffset) - {return fromShortArray(pv, offset, length, &from[0], fromOffset);} - /** - * Convert a PV array from an int array. - * @param pv a PV - * @param offset starting element in a PV - * @param length number of elements to transfer - * @param from value to put into PV - * @param fromOffset starting element in the source array - * @return number of elements converted - * @throws std::invalid_argument if the element type is not numeric - */ - inline - std::size_t fromIntArray( - PVScalarArrayPtr & pv, std::size_t offset, std::size_t length, - const int32* from, std::size_t fromOffset) - { pv->putFrom(from+fromOffset, length, offset); return length; } - inline - std::size_t fromIntArray( - PVScalarArrayPtr & pv, std::size_t offset, std::size_t length, - const IntArray & from, std::size_t fromOffset) - {return fromIntArray(pv, offset, length, &from[0], fromOffset);} - /** - * Convert a PV array from a long array. - * @param pv a PV - * @param offset starting element in a PV - * @param length number of elements to transfer - * @param from value to put into PV - * @param fromOffset starting element in the source array - * @return number of elements converted - * @throws std::invalid_argument if the element type is not numeric - */ - inline - std::size_t fromLongArray( - PVScalarArrayPtr & pv, std::size_t offset, std::size_t length, - const int64* from, std::size_t fromOffset) - { pv->putFrom(from+fromOffset, length, offset); return length; } - inline - std::size_t fromLongArray( - PVScalarArrayPtr & pv, std::size_t offset, std::size_t length, - const LongArray & from, std::size_t fromOffset) - {return fromLongArray(pv, offset, length, &from[0], fromOffset);} - /** - * Convert a PV array from a ubyte array. - * @param pv a PV - * @param offset starting element in a PV - * @param length number of elements to transfer - * @param from value to put into PV - * @param fromOffset - * @return number of elements converted - * @throws std::invalid_argument if the element type is not numeric - */ - inline - std::size_t fromUByteArray( - PVScalarArrayPtr & pv, std::size_t offset, std::size_t length, - const uint8* from, std::size_t fromOffset) - { pv->putFrom(from+fromOffset, length, offset); return length; } - inline - std::size_t fromUByteArray( - PVScalarArrayPtr & pv, std::size_t offset, std::size_t length, - const UByteArray & from, std::size_t fromOffset) - {return fromUByteArray(pv, offset, length, &from[0], fromOffset);} - /** - * Convert a PV array from a ushort array. - * @param pv a PV - * @param offset starting element in a PV - * @param length number of elements to transfer - * @param from value to put into PV - * @param fromOffset starting element in the source array - * @return number of elements converted - * @throws std::invalid_argument if the element type is not numeric - */ - inline - std::size_t fromUShortArray( - PVScalarArrayPtr & pv, std::size_t offset, std::size_t length, - const uint16* from, std::size_t fromOffset) - { pv->putFrom(from+fromOffset, length, offset); return length; } - inline - std::size_t fromUShortArray( - PVScalarArrayPtr & pv, std::size_t offset, std::size_t length, - const UShortArray & from, std::size_t fromOffset) - {return fromUShortArray(pv, offset, length, &from[0], fromOffset);} - /** - * Convert a PV array from an uint array. - * @param pv a PV - * @param offset starting element in a PV - * @param length number of elements to transfer - * @param from value to put into PV - * @param fromOffset starting element in the source array - * @return number of elements converted - * @throws std::invalid_argument if the element type is not numeric - */ - inline - std::size_t fromUIntArray( - PVScalarArrayPtr & pv, std::size_t offset, std::size_t length, - const uint32* from, std::size_t fromOffset) - { pv->putFrom(from+fromOffset, length, offset); return length; } - inline - std::size_t fromUIntArray( - PVScalarArrayPtr & pv, std::size_t offset, std::size_t length, - const UIntArray & from, std::size_t fromOffset) - {return fromUIntArray(pv, offset, length, &from[0], fromOffset);} - /** - * Convert a PV array from a ulong array. - * @param pv a PV - * @param offset starting element in a PV - * @param length number of elements to transfer - * @param from value to put into PV - * @param fromOffset starting element in the source array - * @return number of elements converted - * @throws std::invalid_argument if the element type is not numeric - */ - inline - std::size_t fromULongArray( - PVScalarArrayPtr & pv, std::size_t offset, std::size_t length, - const uint64* from, std::size_t fromOffset) - { pv->putFrom(from+fromOffset, length, offset); return length; } - inline - std::size_t fromULongArray( - PVScalarArrayPtr & pv, std::size_t offset, std::size_t length, - const ULongArray & from, std::size_t fromOffset) - {return fromULongArray(pv, offset, length, &from[0], fromOffset);} - /** - * Convert a PV array from a float array. - * @param pv a PV - * @param offset starting element in a PV - * @param length number of elements to transfer - * @param from value to put into PV - * @param fromOffset starting element in the source array - * @return number of elements converted - * @throws std::invalid_argument if the element type is not numeric - */ - inline - std::size_t fromFloatArray( - PVScalarArrayPtr & pv, std::size_t offset, std::size_t length, - const float* from, std::size_t fromOffset) - { pv->putFrom(from+fromOffset, length, offset); return length; } - inline - std::size_t fromFloatArray( - PVScalarArrayPtr & pv, std::size_t offset, std::size_t length, - const FloatArray & from, std::size_t fromOffset) - {return fromFloatArray(pv, offset, length, &from[0], fromOffset);} - /** - * Convert a PV array from a double array. - * @param pv a PV - * @param offset starting element in a PV - * @param length number of elements to transfer - * @param from value to put into PV - * @param fromOffset starting element in the source array - * @return number of elements converted - * @throws std::invalid_argument if the element type is not numeric - */ - inline - std::size_t fromDoubleArray( - PVScalarArrayPtr & pv, std::size_t offset, std::size_t length, - const double* from, std::size_t fromOffset) - { pv->putFrom(from+fromOffset, length, offset); return length; } - inline - std::size_t fromDoubleArray( - PVScalarArrayPtr & pv, std::size_t offset, std::size_t length, - const DoubleArray & from, std::size_t fromOffset) - {return fromDoubleArray(pv, offset, length, &from[0], fromOffset);} + /** * Convenience method for implementing toString. * It generates a newline and inserts blanks at the beginning of the newline. diff --git a/testApp/pv/testConvert.cpp b/testApp/pv/testConvert.cpp index ab54135..c6264b1 100644 --- a/testApp/pv/testConvert.cpp +++ b/testApp/pv/testConvert.cpp @@ -392,365 +392,6 @@ static void testConvertScalar(FILE *fd) { fprintf(fd,"fromULong PASSED\n"); } -static void testConvertScalarArray(FILE *fd) { - PVScalarArrayPtr pvBytePtr = pvDataCreate->createPVScalarArray(pvByte); - PVScalarArrayPtr pvUBytePtr = pvDataCreate->createPVScalarArray(pvUByte); - PVScalarArrayPtr pvShortPtr = pvDataCreate->createPVScalarArray(pvShort); - PVScalarArrayPtr pvUShortPtr = pvDataCreate->createPVScalarArray(pvUShort); - PVScalarArrayPtr pvIntPtr = pvDataCreate->createPVScalarArray(pvInt); - PVScalarArrayPtr pvUIntPtr = pvDataCreate->createPVScalarArray(pvUInt); - PVScalarArrayPtr pvLongPtr = pvDataCreate->createPVScalarArray(pvLong); - PVScalarArrayPtr pvULongPtr = pvDataCreate->createPVScalarArray(pvULong); - PVScalarArrayPtr pvFloatPtr = pvDataCreate->createPVScalarArray(pvFloat); - PVScalarArrayPtr pvDoublePtr = pvDataCreate->createPVScalarArray(pvDouble); - - fprintf(fd,"testConvertScalarArray\n"); - if(debug) fprintf(fd,"\nfromByte\n"); - size_t length = 4; - int8 barray[length]; - int8 bval = 127; - barray[0] = bval; - for(size_t i=1; ifromByteArray(pvBytePtr,0,length,barray,0); - builder.clear(); pvBytePtr->toString(&builder); - if(debug) fprintf(fd,"byte %s\n",builder.c_str()); - convert->fromByteArray(pvUBytePtr,0,length,barray,0); - builder.clear(); pvUBytePtr->toString(&builder); - if(debug) fprintf(fd,"ubyte %s\n",builder.c_str()); - convert->fromByteArray(pvShortPtr,0,length,barray,0); - builder.clear(); pvShortPtr->toString(&builder); - if(debug) fprintf(fd,"short %s\n",builder.c_str()); - convert->fromByteArray(pvUShortPtr,0,length,barray,0); - builder.clear(); pvUShortPtr->toString(&builder); - if(debug) fprintf(fd,"ushort %s\n",builder.c_str()); - convert->fromByteArray(pvIntPtr,0,length,barray,0); - builder.clear(); pvIntPtr->toString(&builder); - if(debug) fprintf(fd,"int %s\n",builder.c_str()); - convert->fromByteArray(pvUIntPtr,0,length,barray,0); - builder.clear(); pvUIntPtr->toString(&builder); - if(debug) fprintf(fd,"uint %s\n",builder.c_str()); - convert->fromByteArray(pvLongPtr,0,length,barray,0); - builder.clear(); pvLongPtr->toString(&builder); - if(debug) fprintf(fd,"long %s\n",builder.c_str()); - convert->fromByteArray(pvULongPtr,0,length,barray,0); - builder.clear(); pvULongPtr->toString(&builder); - if(debug) fprintf(fd,"ulong %s\n",builder.c_str()); - convert->fromByteArray(pvFloatPtr,0,length,barray,0); - builder.clear(); pvFloatPtr->toString(&builder); - if(debug) fprintf(fd,"float %s\n",builder.c_str()); - convert->fromByteArray(pvDoublePtr,0,length,barray,0); - builder.clear(); pvDoublePtr->toString(&builder); - if(debug) fprintf(fd,"double %s\n",builder.c_str()); - pvUBytePtr->assign(*pvFloatPtr.get()); - builder.clear(); pvFloatPtr->toString(&builder); - if(debug) fprintf(fd,"float from unsigned %s\n",builder.c_str()); - pvUBytePtr->assign(*pvDoublePtr.get()); - builder.clear(); pvDoublePtr->toString(&builder); - if(debug) fprintf(fd,"double from unsigned %s\n",builder.c_str()); - fprintf(fd,"fromByte PASSED\n"); - - if(debug) fprintf(fd,"\nfromShort\n"); - int16 sarray[length]; - int16 sval = 0x7fff; - sarray[0] = sval; - for(size_t i=1; ifromShortArray(pvBytePtr,0,length,sarray,0); - builder.clear(); pvBytePtr->toString(&builder); - if(debug) fprintf(fd,"byte %s\n",builder.c_str()); - convert->fromShortArray(pvUBytePtr,0,length,sarray,0); - builder.clear(); pvUBytePtr->toString(&builder); - if(debug) fprintf(fd,"ubyte %s\n",builder.c_str()); - convert->fromShortArray(pvShortPtr,0,length,sarray,0); - builder.clear(); pvShortPtr->toString(&builder); - if(debug) fprintf(fd,"short %s\n",builder.c_str()); - convert->fromShortArray(pvUShortPtr,0,length,sarray,0); - builder.clear(); pvUShortPtr->toString(&builder); - if(debug) fprintf(fd,"ushort %s\n",builder.c_str()); - convert->fromShortArray(pvIntPtr,0,length,sarray,0); - builder.clear(); pvIntPtr->toString(&builder); - if(debug) fprintf(fd,"int %s\n",builder.c_str()); - convert->fromShortArray(pvUIntPtr,0,length,sarray,0); - builder.clear(); pvUIntPtr->toString(&builder); - if(debug) fprintf(fd,"uint %s\n",builder.c_str()); - convert->fromShortArray(pvLongPtr,0,length,sarray,0); - builder.clear(); pvLongPtr->toString(&builder); - if(debug) fprintf(fd,"long %s\n",builder.c_str()); - convert->fromShortArray(pvULongPtr,0,length,sarray,0); - builder.clear(); pvULongPtr->toString(&builder); - if(debug) fprintf(fd,"ulong %s\n",builder.c_str()); - convert->fromShortArray(pvFloatPtr,0,length,sarray,0); - builder.clear(); pvFloatPtr->toString(&builder); - if(debug) fprintf(fd,"float %s\n",builder.c_str()); - convert->fromShortArray(pvDoublePtr,0,length,sarray,0); - builder.clear(); pvDoublePtr->toString(&builder); - if(debug) fprintf(fd,"double %s\n",builder.c_str()); - pvUShortPtr->assign(*pvFloatPtr.get()); - builder.clear(); pvFloatPtr->toString(&builder); - if(debug) fprintf(fd,"float from unsigned %s\n",builder.c_str()); - pvUShortPtr->assign(*pvDoublePtr.get()); - builder.clear(); pvDoublePtr->toString(&builder); - if(debug) fprintf(fd,"double from unsigned %s\n",builder.c_str()); - fprintf(fd,"fromShort PASSED\n"); - - if(debug) fprintf(fd,"\nfromInt\n"); - int32 iarray[length]; - int32 ival = 0x7fffffff; - iarray[0] = ival; - for(size_t i=1; ifromIntArray(pvBytePtr,0,length,iarray,0); - builder.clear(); pvBytePtr->toString(&builder); - if(debug) fprintf(fd,"byte %s\n",builder.c_str()); - convert->fromIntArray(pvUBytePtr,0,length,iarray,0); - builder.clear(); pvUBytePtr->toString(&builder); - if(debug) fprintf(fd,"ubyte %s\n",builder.c_str()); - convert->fromIntArray(pvShortPtr,0,length,iarray,0); - builder.clear(); pvShortPtr->toString(&builder); - if(debug) fprintf(fd,"short %s\n",builder.c_str()); - convert->fromIntArray(pvUShortPtr,0,length,iarray,0); - builder.clear(); pvUShortPtr->toString(&builder); - if(debug) fprintf(fd,"ushort %s\n",builder.c_str()); - convert->fromIntArray(pvIntPtr,0,length,iarray,0); - builder.clear(); pvIntPtr->toString(&builder); - if(debug) fprintf(fd,"int %s\n",builder.c_str()); - convert->fromIntArray(pvUIntPtr,0,length,iarray,0); - builder.clear(); pvUIntPtr->toString(&builder); - if(debug) fprintf(fd,"uint %s\n",builder.c_str()); - convert->fromIntArray(pvLongPtr,0,length,iarray,0); - builder.clear(); pvLongPtr->toString(&builder); - if(debug) fprintf(fd,"long %s\n",builder.c_str()); - convert->fromIntArray(pvULongPtr,0,length,iarray,0); - builder.clear(); pvULongPtr->toString(&builder); - if(debug) fprintf(fd,"ulong %s\n",builder.c_str()); - convert->fromIntArray(pvFloatPtr,0,length,iarray,0); - builder.clear(); pvFloatPtr->toString(&builder); - if(debug) fprintf(fd,"float %s\n",builder.c_str()); - convert->fromIntArray(pvDoublePtr,0,length,iarray,0); - builder.clear(); pvDoublePtr->toString(&builder); - if(debug) fprintf(fd,"double %s\n",builder.c_str()); - pvUIntPtr->assign(*pvFloatPtr.get()); - builder.clear(); pvFloatPtr->toString(&builder); - if(debug) fprintf(fd,"float from unsigned %s\n",builder.c_str()); - pvUIntPtr->assign(*pvDoublePtr.get()); - builder.clear(); pvDoublePtr->toString(&builder); - if(debug) fprintf(fd,"double from unsigned %s\n",builder.c_str()); - fprintf(fd,"fromInt PASSED\n"); - - if(debug) fprintf(fd,"\nfromLong\n"); - int64 larray[length]; - int64 lval = 0x7fffffffffffffffLL; - larray[0] = lval; - for(size_t i=1; ifromLongArray(pvBytePtr,0,length,larray,0); - builder.clear(); pvBytePtr->toString(&builder); - if(debug) fprintf(fd,"byte %s\n",builder.c_str()); - convert->fromLongArray(pvUBytePtr,0,length,larray,0); - builder.clear(); pvUBytePtr->toString(&builder); - if(debug) fprintf(fd,"ubyte %s\n",builder.c_str()); - convert->fromLongArray(pvShortPtr,0,length,larray,0); - builder.clear(); pvShortPtr->toString(&builder); - if(debug) fprintf(fd,"short %s\n",builder.c_str()); - convert->fromLongArray(pvUShortPtr,0,length,larray,0); - builder.clear(); pvUShortPtr->toString(&builder); - if(debug) fprintf(fd,"ushort %s\n",builder.c_str()); - convert->fromLongArray(pvIntPtr,0,length,larray,0); - builder.clear(); pvIntPtr->toString(&builder); - if(debug) fprintf(fd,"int %s\n",builder.c_str()); - convert->fromLongArray(pvUIntPtr,0,length,larray,0); - builder.clear(); pvUIntPtr->toString(&builder); - if(debug) fprintf(fd,"uint %s\n",builder.c_str()); - convert->fromLongArray(pvLongPtr,0,length,larray,0); - builder.clear(); pvLongPtr->toString(&builder); - if(debug) fprintf(fd,"long %s\n",builder.c_str()); - convert->fromLongArray(pvULongPtr,0,length,larray,0); - builder.clear(); pvULongPtr->toString(&builder); - if(debug) fprintf(fd,"ulong %s\n",builder.c_str()); - convert->fromLongArray(pvFloatPtr,0,length,larray,0); - builder.clear(); pvFloatPtr->toString(&builder); - if(debug) fprintf(fd,"float %s\n",builder.c_str()); - convert->fromLongArray(pvDoublePtr,0,length,larray,0); - builder.clear(); pvDoublePtr->toString(&builder); - if(debug) fprintf(fd,"double %s\n",builder.c_str()); - pvULongPtr->assign(*pvFloatPtr.get()); - builder.clear(); pvFloatPtr->toString(&builder); - if(debug) fprintf(fd,"float from unsigned %s\n",builder.c_str()); - pvULongPtr->assign(*pvDoublePtr.get()); - builder.clear(); pvDoublePtr->toString(&builder); - if(debug) fprintf(fd,"double from unsigned %s\n",builder.c_str()); - fprintf(fd,"fromLong PASSED\n"); - - if(debug) fprintf(fd,"\nfromUByte\n"); - uint8 ubarray[length]; - uint8 ubval = 127; - ubarray[0] = ubval; - for(size_t i=1; ifromUByteArray(pvBytePtr,0,length,ubarray,0); - builder.clear(); pvBytePtr->toString(&builder); - if(debug) fprintf(fd,"byte %s\n",builder.c_str()); - convert->fromUByteArray(pvUBytePtr,0,length,ubarray,0); - builder.clear(); pvUBytePtr->toString(&builder); - if(debug) fprintf(fd,"ubyte %s\n",builder.c_str()); - convert->fromUByteArray(pvShortPtr,0,length,ubarray,0); - builder.clear(); pvShortPtr->toString(&builder); - if(debug) fprintf(fd,"short %s\n",builder.c_str()); - convert->fromUByteArray(pvUShortPtr,0,length,ubarray,0); - builder.clear(); pvUShortPtr->toString(&builder); - if(debug) fprintf(fd,"ushort %s\n",builder.c_str()); - convert->fromUByteArray(pvIntPtr,0,length,ubarray,0); - builder.clear(); pvIntPtr->toString(&builder); - if(debug) fprintf(fd,"int %s\n",builder.c_str()); - convert->fromUByteArray(pvUIntPtr,0,length,ubarray,0); - builder.clear(); pvUIntPtr->toString(&builder); - if(debug) fprintf(fd,"uint %s\n",builder.c_str()); - convert->fromUByteArray(pvLongPtr,0,length,ubarray,0); - builder.clear(); pvLongPtr->toString(&builder); - if(debug) fprintf(fd,"long %s\n",builder.c_str()); - convert->fromUByteArray(pvULongPtr,0,length,ubarray,0); - builder.clear(); pvULongPtr->toString(&builder); - if(debug) fprintf(fd,"ulong %s\n",builder.c_str()); - convert->fromUByteArray(pvFloatPtr,0,length,ubarray,0); - builder.clear(); pvFloatPtr->toString(&builder); - if(debug) fprintf(fd,"float %s\n",builder.c_str()); - convert->fromUByteArray(pvDoublePtr,0,length,ubarray,0); - builder.clear(); pvDoublePtr->toString(&builder); - if(debug) fprintf(fd,"double %s\n",builder.c_str()); - pvUBytePtr->assign(*pvFloatPtr.get()); - builder.clear(); pvFloatPtr->toString(&builder); - if(debug) fprintf(fd,"float from unsigned %s\n",builder.c_str()); - pvUBytePtr->assign(*pvDoublePtr.get()); - builder.clear(); pvDoublePtr->toString(&builder); - if(debug) fprintf(fd,"double from unsigned %s\n",builder.c_str()); - fprintf(fd,"fromUByte PASSED\n"); - - if(debug) fprintf(fd,"\nfromUShort\n"); - uint16 usarray[length]; - uint16 usval = 0x7fff; - usarray[0] = usval; - for(size_t i=1; ifromUShortArray(pvBytePtr,0,length,usarray,0); - builder.clear(); pvBytePtr->toString(&builder); - if(debug) fprintf(fd,"byte %s\n",builder.c_str()); - convert->fromUShortArray(pvUBytePtr,0,length,usarray,0); - builder.clear(); pvUBytePtr->toString(&builder); - if(debug) fprintf(fd,"ubyte %s\n",builder.c_str()); - convert->fromUShortArray(pvShortPtr,0,length,usarray,0); - builder.clear(); pvShortPtr->toString(&builder); - if(debug) fprintf(fd,"short %s\n",builder.c_str()); - convert->fromUShortArray(pvUShortPtr,0,length,usarray,0); - builder.clear(); pvUShortPtr->toString(&builder); - if(debug) fprintf(fd,"ushort %s\n",builder.c_str()); - convert->fromUShortArray(pvIntPtr,0,length,usarray,0); - builder.clear(); pvIntPtr->toString(&builder); - if(debug) fprintf(fd,"int %s\n",builder.c_str()); - convert->fromUShortArray(pvUIntPtr,0,length,usarray,0); - builder.clear(); pvUIntPtr->toString(&builder); - if(debug) fprintf(fd,"uint %s\n",builder.c_str()); - convert->fromUShortArray(pvLongPtr,0,length,usarray,0); - builder.clear(); pvLongPtr->toString(&builder); - if(debug) fprintf(fd,"long %s\n",builder.c_str()); - convert->fromUShortArray(pvULongPtr,0,length,usarray,0); - builder.clear(); pvULongPtr->toString(&builder); - if(debug) fprintf(fd,"ulong %s\n",builder.c_str()); - convert->fromUShortArray(pvFloatPtr,0,length,usarray,0); - builder.clear(); pvFloatPtr->toString(&builder); - if(debug) fprintf(fd,"float %s\n",builder.c_str()); - convert->fromUShortArray(pvDoublePtr,0,length,usarray,0); - builder.clear(); pvDoublePtr->toString(&builder); - if(debug) fprintf(fd,"double %s\n",builder.c_str()); - pvUShortPtr->assign(*pvFloatPtr.get()); - builder.clear(); pvFloatPtr->toString(&builder); - if(debug) fprintf(fd,"float from unsigned %s\n",builder.c_str()); - pvUShortPtr->assign(*pvDoublePtr.get()); - builder.clear(); pvDoublePtr->toString(&builder); - if(debug) fprintf(fd,"double from unsigned %s\n",builder.c_str()); - fprintf(fd,"fromUShort PASSED\n"); - - if(debug) fprintf(fd,"\nfromUInt\n"); - uint32 uiarray[length]; - uint32 uival = 0x7fffffff; - uiarray[0] = uival; - for(size_t i=1; ifromUIntArray(pvBytePtr,0,length,uiarray,0); - builder.clear(); pvBytePtr->toString(&builder); - if(debug) fprintf(fd,"byte %s\n",builder.c_str()); - convert->fromUIntArray(pvUBytePtr,0,length,uiarray,0); - builder.clear(); pvUBytePtr->toString(&builder); - if(debug) fprintf(fd,"ubyte %s\n",builder.c_str()); - convert->fromUIntArray(pvShortPtr,0,length,uiarray,0); - builder.clear(); pvShortPtr->toString(&builder); - if(debug) fprintf(fd,"short %s\n",builder.c_str()); - convert->fromUIntArray(pvUShortPtr,0,length,uiarray,0); - builder.clear(); pvUShortPtr->toString(&builder); - if(debug) fprintf(fd,"ushort %s\n",builder.c_str()); - convert->fromUIntArray(pvIntPtr,0,length,uiarray,0); - builder.clear(); pvIntPtr->toString(&builder); - if(debug) fprintf(fd,"int %s\n",builder.c_str()); - convert->fromUIntArray(pvUIntPtr,0,length,uiarray,0); - builder.clear(); pvUIntPtr->toString(&builder); - if(debug) fprintf(fd,"uint %s\n",builder.c_str()); - convert->fromUIntArray(pvLongPtr,0,length,uiarray,0); - builder.clear(); pvLongPtr->toString(&builder); - if(debug) fprintf(fd,"long %s\n",builder.c_str()); - convert->fromUIntArray(pvULongPtr,0,length,uiarray,0); - builder.clear(); pvULongPtr->toString(&builder); - if(debug) fprintf(fd,"ulong %s\n",builder.c_str()); - convert->fromUIntArray(pvFloatPtr,0,length,uiarray,0); - builder.clear(); pvFloatPtr->toString(&builder); - if(debug) fprintf(fd,"float %s\n",builder.c_str()); - convert->fromUIntArray(pvDoublePtr,0,length,uiarray,0); - builder.clear(); pvDoublePtr->toString(&builder); - if(debug) fprintf(fd,"double %s\n",builder.c_str()); - pvUIntPtr->assign(*pvFloatPtr.get()); - builder.clear(); pvFloatPtr->toString(&builder); - if(debug) fprintf(fd,"float from unsigned %s\n",builder.c_str()); - pvUIntPtr->assign(*pvDoublePtr.get()); - builder.clear(); pvDoublePtr->toString(&builder); - if(debug) fprintf(fd,"double from unsigned %s\n",builder.c_str()); - fprintf(fd,"fromUInt PASSED\n"); - - if(debug) fprintf(fd,"\nfromULong\n"); - uint64 ularray[length]; - uint64 ulval = 0x7fffffffffffffffLL; - ularray[0] = ulval; - for(size_t i=1; ifromULongArray(pvBytePtr,0,length,ularray,0); - builder.clear(); pvBytePtr->toString(&builder); - if(debug) fprintf(fd,"byte %s\n",builder.c_str()); - convert->fromULongArray(pvUBytePtr,0,length,ularray,0); - builder.clear(); pvUBytePtr->toString(&builder); - if(debug) fprintf(fd,"ubyte %s\n",builder.c_str()); - convert->fromULongArray(pvShortPtr,0,length,ularray,0); - builder.clear(); pvShortPtr->toString(&builder); - if(debug) fprintf(fd,"short %s\n",builder.c_str()); - convert->fromULongArray(pvUShortPtr,0,length,ularray,0); - builder.clear(); pvUShortPtr->toString(&builder); - if(debug) fprintf(fd,"ushort %s\n",builder.c_str()); - convert->fromULongArray(pvIntPtr,0,length,ularray,0); - builder.clear(); pvIntPtr->toString(&builder); - if(debug) fprintf(fd,"int %s\n",builder.c_str()); - convert->fromULongArray(pvUIntPtr,0,length,ularray,0); - builder.clear(); pvUIntPtr->toString(&builder); - if(debug) fprintf(fd,"uint %s\n",builder.c_str()); - convert->fromULongArray(pvLongPtr,0,length,ularray,0); - builder.clear(); pvLongPtr->toString(&builder); - if(debug) fprintf(fd,"long %s\n",builder.c_str()); - convert->fromULongArray(pvULongPtr,0,length,ularray,0); - builder.clear(); pvULongPtr->toString(&builder); - if(debug) fprintf(fd,"ulong %s\n",builder.c_str()); - convert->fromULongArray(pvFloatPtr,0,length,ularray,0); - builder.clear(); pvFloatPtr->toString(&builder); - if(debug) fprintf(fd,"float %s\n",builder.c_str()); - convert->fromULongArray(pvDoublePtr,0,length,ularray,0); - builder.clear(); pvDoublePtr->toString(&builder); - if(debug) fprintf(fd,"double %s\n",builder.c_str()); - pvULongPtr->assign(*pvFloatPtr.get()); - builder.clear(); pvFloatPtr->toString(&builder); - if(debug) fprintf(fd,"float from unsigned %s\n",builder.c_str()); - pvULongPtr->assign(*pvDoublePtr.get()); - builder.clear(); pvDoublePtr->toString(&builder); - if(debug) fprintf(fd,"double from unsigned %s\n",builder.c_str()); - fprintf(fd,"fromLong PASSED\n"); -} - int main(int argc,char *argv[]) { char *fileName = 0; @@ -765,7 +406,6 @@ int main(int argc,char *argv[]) standardPVField = getStandardPVField(); convert = getConvert(); testConvertScalar(fd); - testConvertScalarArray(fd); fprintf(fd,"THIS NEEDS MANY MORE TESTS AND ASSERTS\n"); return(0); }