#include "sopnamsp.h" #include "machdefs.h" #include #include #include "math.h" #include #include #include #include "timing.h" #include "histinit.h" #include "pexceptions.h" #include "segdatablock.h" #include "fiosegdb.h" #include "swsegdb.h" #include "ppfswapper.h" #include "ppfwrapstlv.h" /* Programme test des classes SegDataBlock et son PPF writer */ /* SwSegDataBlock avec le swapper PPF */ /* SOPHYA - R. Ansari (LAL) - Avril 2005 */ int main(int narg, char* arg[]) { cout << " ---- Programme tstsegdb.cc ----- \n" << " Test classe SegDataBlock et SwSegDataBlock " << endl; int rc = 0; try { SophyaInit(); InitTim(); cout << "1/ Test SegDataBlock Creation,remplissage, impression (segi, ssegi, sgds" << endl; SegDataBlock segi; segi.Extend(); cout << segi; SegDataBlock ssegi(segi); segi = 432; ssegi.Extend(); ssegi.Print(cout, 4, " , "); SegDataBlock sgds(5,3); cout << sgds; sgds[2] = "bonjour"; sgds[5] = "AAAA"; sgds[8] = "BbbBBbb"; sgds.Print(cout, 4, " ; "); cout << "1.b/ Appel operateur copie : sgsdscp = sgds " << endl; SegDataBlock sgdscp; sgdscp = sgds; { cout << "2/ Ecriture segi sgds et ssegi dans segdb.ppf " << endl; POutPersist so("segdb.ppf"); so << segi << sgds << ssegi; } { cout << "3/ Lecture depuis segdb.ppf et print " << endl; SegDataBlock rsd1, rsd2; SegDataBlock rsds; PInPersist si("segdb.ppf"); si >> rsd1 >> rsds >> rsd2; rsds.Print(cout, 4, " ; "); cout << "4/ On modifie certains elements de rsd1 et on verifie le partage de reference en lecture" << endl; for(int jj=0; jj creation/remplissage " << endl; int SWSEGSZ = 4; { cout << " Creation PPFDataSwapper swout(so) avec swseg.ppf " << endl; POutPersist so("swseg.ppf"); PPFDataSwapper swout(so); SwSegDataBlock swsd(swout, SWSEGSZ, 3); float * fp = swsd.GetSegment(0); fp[0] = 6.54321; fp[1] = 65.4321; fp[2] = 654.321; fp[3] = 6543.21; fp = swsd.GetSegment(1); fp[0] = 2.56789; fp[1] = 25.6789; fp[2] = 256.789; fp[3] = 2567.89; fp = swsd.GetSegment(2); fp[0] = 12.567; fp[1] = 225.67; fp[2] = 3256.7; fp[3] = 42567.; vector tags = swsd.GetSwapPosTagTable(); so << tags; } { cout << "6/ Creation PPFDataSwapper avec lecture depuis swseg.ppf " << endl; PInPersist si("swseg.ppf"); PPFDataSwapper swin(si); vector tags; si >> tags; SwSegDataBlock swsd(swin, tags, SWSEGSZ); cout <<"7/ Recopie ds SegDataBlock depuis SwSegDataBlock et print" << endl; SegDataBlock segf,segf2; segf = swsd; segf.Print(cout, 4, " "); segf2 = swsd; segf2.Print(cout, 4, " "); } } catch (PThrowable & exc) { cerr << " tstsegdb.cc: Catched Exception (PThrowable)" << (string)typeid(exc).name() << " - Msg= " << exc.Msg() << endl; rc = 99; } catch (std::exception & e) { cerr << " tstsegdb.cc: Catched std::xception " << " - what()= " << e.what() << endl; rc = 98; } catch (...) { cerr << " tstsegdb.cc: some other exception (...) was caught ! " << endl; rc = 97; } PrtTim("End tstsegdb " ); cout << " ---- Programme tstsegdb.cc - FIN (Rc=" << rc << ") --- " << endl; return rc; }