From 279385ecb9c04c9b394fa7e63c02ca4c837dd5b7 Mon Sep 17 00:00:00 2001 From: Jim Kowalkowski Date: Fri, 23 Aug 1996 20:28:46 +0000 Subject: [PATCH] made dump functions print more useful information --- src/gdd/gddTest.cc | 365 +++++++++++++++++++++++++-------------------- 1 file changed, 205 insertions(+), 160 deletions(-) diff --git a/src/gdd/gddTest.cc b/src/gdd/gddTest.cc index faa1c1c80..885fd0017 100644 --- a/src/gdd/gddTest.cc +++ b/src/gdd/gddTest.cc @@ -4,6 +4,9 @@ // $Id$ // // $Log$ +// Revision 1.2 1996/07/26 02:23:18 jbk +// Fixed the spelling error with Scalar. +// // Revision 1.1 1996/06/25 19:11:48 jbk // new in EPICS base // @@ -21,9 +24,6 @@ // -----------------------test routines------------------------ -#ifdef NO_DUMP_TEST -void gdd::dump(void) { } -#else void gdd::dump(void) { gddScalar* sdd; @@ -49,26 +49,186 @@ void gdd::dump(void) return; } } -#endif -#ifdef NO_DUMP_TEST -void gdd::dumpInfo(void) { } -#else void gdd::dumpInfo(void) { unsigned i; aitIndex f,c; long sz_tot,sz_data,sz_elem; + const aitIndex max=5; + aitIndex prt_tot; sz_tot = getTotalSizeBytes(); sz_data = getDataSizeBytes(); sz_elem = getDataSizeElements(); + prt_tot=sz_elem>max?max:sz_elem; + fprintf(stderr,"----------dump This=%8.8x---------\n",(unsigned int)this); - fprintf(stderr," app=%d, prim=%d",applicationType(),primitiveType()); - fprintf(stderr," dim=%d\n",dimension()); - fprintf(stderr," tot=%ld, data=%ld, elem=%ld ",sz_tot,sz_data,sz_elem); - fprintf(stderr," ref count=%d\n",ref_cnt); + fprintf(stderr," dimension=%d ",(int)dimension()); + fprintf(stderr,"app-type=%d ",(int)applicationType()); + + if(isScalar()) fprintf(stderr,"Scalar\n"); + if(isAtomic()) fprintf(stderr,"Atomic\n"); + if(isContainer()) fprintf(stderr,"Container\n"); + + fprintf(stderr," prim-type=%d",(int)primitiveType()); + switch(primitiveType()) + { + case aitEnumInvalid: + fprintf(stderr,"(aitEnumInvalid)"); + break; + case aitEnumInt8: + fprintf(stderr,"(aitEnumInt8)"); + if(isScalar()) fprintf(stderr," value=0x%2.2x ",data.Int8); + if(isAtomic()&&dataPointer()) + { + fprintf(stderr,"\n %d values=<\n",(int)prt_tot); + aitInt8* i8=(aitInt8*)dataPointer(); + for(i=0;i\n"); + } + break; + case aitEnumInt16: + fprintf(stderr,"(aitEnumInt16)"); + if(isScalar()) fprintf(stderr," value=%hd ",data.Int16); + if(isAtomic()&&dataPointer()) + { + fprintf(stderr,"\n %d values=<\n",(int)prt_tot); + aitInt16* i16=(aitInt16*)dataPointer(); + for(i=0;i\n"); + } + break; + case aitEnumInt32: + fprintf(stderr,"(aitEnumInt32)"); + if(isScalar()) fprintf(stderr," value=%d ",data.Int32); + if(isAtomic()&&dataPointer()) + { + fprintf(stderr,"\n %d values=<\n",(int)prt_tot); + aitInt32* i32=(aitInt32*)dataPointer(); + for(i=0;i\n"); + } + break; + case aitEnumUint8: + fprintf(stderr,"(aitEnumUint8)"); + if(isScalar()) fprintf(stderr," value=0x%2.2x ",data.Uint8); + if(isAtomic()&&dataPointer()) + { + fprintf(stderr,"\n %d values=<\n",(int)prt_tot); + aitUint8* ui8=(aitUint8*)dataPointer(); + for(i=0;i\n"); + } + break; + case aitEnumUint16: + fprintf(stderr,"(aitEnumUint16)"); + if(isScalar()) fprintf(stderr," value=%hu ",data.Uint16); + if(isAtomic()&&dataPointer()) + { + fprintf(stderr,"\n %d values=<\n",(int)prt_tot); + aitUint16* ui16=(aitUint16*)dataPointer(); + for(i=0;i\n"); + } + break; + case aitEnumEnum16: + fprintf(stderr,"(aitEnumEnum16)"); + if(isScalar()) fprintf(stderr," value=%hu ",data.Enum16); + if(isAtomic()&&dataPointer()) + { + fprintf(stderr,"\n %d values=<\n",(int)prt_tot); + aitEnum16* e16=(aitEnum16*)dataPointer(); + for(i=0;i\n"); + } + break; + case aitEnumUint32: + fprintf(stderr,"(aitEnumUint32)"); + if(isScalar()) fprintf(stderr," value=%u ",data.Uint32); + if(isAtomic()&&dataPointer()) + { + fprintf(stderr,"\n %d values=<\n",(int)prt_tot); + aitUint32* ui32=(aitUint32*)dataPointer(); + for(i=0;i\n"); + } + break; + case aitEnumFloat32: + fprintf(stderr,"(aitEnumFloat32)"); + if(isScalar()) fprintf(stderr," value=%f ",data.Float32); + if(isAtomic()&&dataPointer()) + { + fprintf(stderr,"\n %d values=<\n",(int)prt_tot); + aitFloat32* f32=(aitFloat32*)dataPointer(); + for(i=0;i\n"); + } + break; + case aitEnumFloat64: + fprintf(stderr,"(aitEnumFloat64)"); + if(isScalar()) fprintf(stderr," value=%lf ",data.Float64); + if(isAtomic()&&dataPointer()) + { + fprintf(stderr,"\n %d values=<\n",(int)prt_tot); + aitFloat64* f64=(aitFloat64*)dataPointer(); + for(i=0;i\n"); + } + break; + case aitEnumFixedString: + fprintf(stderr,"(aitEnumFixedString)"); + if(isScalar()) + { + if(data.FString) + fprintf(stderr," value=<%s>\n",data.FString); + else + fprintf(stderr," value=\n"); + } + if(isAtomic()&&dataPointer()) + { + fprintf(stderr,"\n %d values=<\n",(int)prt_tot); + aitFixedString* fs=(aitFixedString*)dataPointer(); + for(i=0;i ",fs[i].fixed_string); + fprintf(stderr,">\n"); + } + break; + case aitEnumString: + fprintf(stderr,"(aitEnumString)"); + if(isScalar()) + { + aitString* str = (aitString*)dataAddress(); + fprintf(stderr,"\n"); + str->dump(); + } + if(isAtomic()&&dataPointer()) + { + fprintf(stderr,"\n %d values=<\n",(int)prt_tot); + aitString* ss=(aitString*)dataPointer(); + for(i=0;i ",ss[i].string()); + fprintf(stderr,">\n"); + } + break; + case aitEnumContainer: + fprintf(stderr,"(aitEnumContainer)"); + break; + default: break; + } + + fprintf(stderr," ref-count=%d\n",ref_cnt); + fprintf(stderr," total-bytes=%ld,",sz_tot); + fprintf(stderr," data-size=%ld,",sz_data); + fprintf(stderr," element-count=%ld\n",sz_elem); + + if(!isScalar()) + { + if(destruct) + fprintf(stderr," destructor=%8.8x\n",(int)destruct); + else + fprintf(stderr," destructor=NULL\n",(int)destruct); + } for(i=0;i\n",str); - break; - default: - fprintf(stderr," unknown primitive type\n"); break; - } - fprintf(stderr,"-------------------------------------\n"); -} -#endif - -#ifdef NO_DUMP_TEST -void gddScalar::dump(void) { } -#else void gddScalar::dump(void) { - aitFloat64 f64; aitFloat32 f32; aitUint32 ui32; aitInt32 i32; - aitUint16 ui16; aitInt16 i16; aitUint8 ui8; aitInt8 i8; - gdd::dumpInfo(); - - switch(primitiveType()) - { - case aitEnumFloat64: - get(f64); if(f64) fprintf(stderr," Convert: float64 %lf ",f64); - f64=*this; if(f64) fprintf(stderr," Normal: float64 %lf\n",f64); - break; - case aitEnumFloat32: - get(f32); if(f32) fprintf(stderr," Convert: float32 %f ",f32); - f32=*this; if(f32) fprintf(stderr," Normal: float32 %f\n",f32); - break; - case aitEnumUint32: - get(ui32); if(ui32) fprintf(stderr," Convert: uint32 %d ",ui32); - ui32=*this; if(ui32) fprintf(stderr," Normal: uint32 %d\n",ui32); - break; - case aitEnumInt32: - get(i32); if(i32) fprintf(stderr," Convert: int32 %d ",i32); - i32=*this; if(i32) fprintf(stderr," Normal: int32 %d\n",i32); - break; - case aitEnumUint16: - get(ui16); if(ui16) fprintf(stderr," Convert: uint16 %hu ",ui16); - ui16=*this; if(ui16) fprintf(stderr," Normal: uint16 %hu\n",ui16); - break; - case aitEnumInt16: - get(i16); if(i16) fprintf(stderr," Convert: int16 %hd ",i16); - i16=*this; if(i16) fprintf(stderr," Normal: int16 %hd\n",i16); - break; - case aitEnumUint8: - get(ui8); if(ui8) fprintf(stderr," Convert: uint8 %2.2x ",ui8); - ui8=*this; if(ui8) fprintf(stderr," Normal: uint8 %2.2x\n",ui8); - break; - case aitEnumInt8: - get(i8); if(i8) fprintf(stderr," Convert: int8 %d ",i8); - i8=*this; if(i8) fprintf(stderr," Normal: int8 %d\n",i8); - break; - default: - fprintf(stderr," unknown primitive type\n"); break; - } fprintf(stderr,"--------------------------------------\n"); } -#endif + +void gddAtomic::dump(void) +{ + gdd::dumpInfo(); + fprintf(stderr,"-------------------------------------\n"); +} + +void gddContainer::dump(void) +{ + int i; + gdd* dd; + gddAtomic* add; + gddScalar* sdd; + gddContainer* cdd; + + fprintf(stderr,"----------dumping container:\n"); + gdd::dumpInfo(); + fprintf(stderr," total in container = %d\n",total()); + + // should use a cursor + + for(i=0;dd=getDD(i);i++) + { + if(dd->isAtomic()) { add=(gddAtomic*)dd; add->dump(); } + if(dd->isScalar()) { sdd=(gddScalar*)dd; sdd->dump(); } + if(dd->isContainer()) { cdd=(gddContainer*)dd; cdd->dump(); } + } +} #ifdef NO_DUMP_TEST void gdd::test() { } @@ -395,32 +466,6 @@ void gddScalar::test(void) } #endif -#ifdef NO_DUMP_TEST -void gddContainer::dump(void) { } -#else -void gddContainer::dump(void) -{ - int i; - gdd* dd; - gddAtomic* add; - gddScalar* sdd; - gddContainer* cdd; - - fprintf(stderr,"----------dumping container:\n"); - gdd::dumpInfo(); - fprintf(stderr," total in container = %d\n",total()); - - // should use a cursor - - for(i=0;dd=getDD(i);i++) - { - if(dd->isAtomic()) { add=(gddAtomic*)dd; add->dump(); } - if(dd->isScalar()) { sdd=(gddScalar*)dd; sdd->dump(); } - if(dd->isContainer()) { cdd=(gddContainer*)dd; cdd->dump(); } - } -} -#endif - #ifdef NO_DUMP_TEST void gddContainer::test(void) { } #else