Changeset 1155 in Sophya for trunk/SophyaLib/HiStats/ntuple.cc


Ignore:
Timestamp:
Aug 29, 2000, 6:08:46 PM (25 years ago)
Author:
ansari
Message:

Introduction numero de version ds ecriture PPersist NTuple - Reza 29/8/2000

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaLib/HiStats/ntuple.cc

    r1092 r1155  
    545545//--
    546546{
    547 char strg[256];
    548 if (dobj->mInfo)  sprintf(strg, "NVar=%6d  NEnt=%9d  BlkSz=%6d NBlk=%6d  HasInfo",
    549                           (int)dobj->mNVar, (int)dobj->mNEnt, (int)dobj->mBlk, (int)dobj->mNBlk);
    550 else sprintf(strg, "NVar=%6d  NEnt=%9d  BlkSz=%6d NBlk=%6d ",
    551                    (int)dobj->mNVar, (int)dobj->mNEnt, (int)dobj->mBlk, (int)dobj->mNBlk);
    552 s.PutLine(strg);
    553 s.PutI4(dobj->mNVar);
     547if (dobj == NULL)   return;
     548
     549// On ecrit cette chaine pour compatibilite avec l'ancienne version
     550string strg = "NTuple";
     551s.Put(strg);
     552
     553//  On ecrit 3 uint_4 ....
     554//  0: Numero de version,  1 : non nul -> has info,  2 : reserve
     555uint_4 itab[3];
     556itab[0] = 2;  // Numero de version a 1
     557itab[1] = itab[2] = 0;
     558if (dobj->mInfo)  itab[1] = 1;
     559s.Put(itab, 3);
     560
     561s.Put(dobj->mNVar);
    554562s.PutBytes(dobj->mNames, dobj->mNVar*LENNAME1);
    555 s.PutI4(dobj->mNEnt);
    556 s.PutI4(dobj->mBlk);
    557 s.PutI4(dobj->mNBlk);
     563s.Put(dobj->mNEnt);
     564s.Put(dobj->mBlk);
     565s.Put(dobj->mNBlk);
    558566if (dobj->mInfo)  s << (*(dobj->mInfo));
    559567int jb;
    560568for(jb=0; jb<dobj->mNBlk; jb++)
    561   s.PutR4s(dobj->mPtr[jb], dobj->mNVar*dobj->mBlk);
     569  s.Put(dobj->mPtr[jb], dobj->mNVar*dobj->mBlk);
    562570return;
    563571}
     
    571579{
    572580
    573 dobj->Clean();
    574 
    575 char strg[256];
    576 s.GetLine(strg, 255);
    577 // Pour savoir s'il y avait un DVList Info associe
     581if (dobj == NULL) dobj = new NTuple;
     582else dobj->Clean();
     583
    578584bool hadinfo = false;
    579 if (strncmp(strg+strlen(strg)-7, "HasInfo", 7) == 0)  hadinfo = true;
    580 
    581 s.GetI4(dobj->mNVar);
     585string strg;
     586s.Get(strg);
     587if (strg == "NTuple") {
     588  uint_4 itab[3];
     589  s.Get(itab, 3);
     590  if (itab[1] != 0) hadinfo = true;
     591}
     592else {
     593// Ancienne version de PPF NTuple - Pour savoir s'il y avait un DVList Info associe
     594  char buff[256];
     595  strcpy(buff, strg.c_str());
     596  if (strncmp(buff+strlen(buff)-7, "HasInfo", 7) == 0)  hadinfo = true;
     597}
     598s.Get(dobj->mNVar);
    582599dobj->mNames = new char[dobj->mNVar*LENNAME1];
    583600dobj->mVar = new r_4[dobj->mNVar];
    584601dobj->mVarD = new r_8[dobj->mNVar];
    585602s.GetBytes(dobj->mNames, dobj->mNVar*LENNAME1);
    586 s.GetI4(dobj->mNEnt);
    587 s.GetI4(dobj->mBlk);
    588 s.GetI4(dobj->mNBlk);
     603s.Get(dobj->mNEnt);
     604s.Get(dobj->mBlk);
     605s.Get(dobj->mNBlk);
    589606
    590607if (hadinfo) {    // Lecture eventuelle du DVList Info
     
    597614  r_4* pt = new r_4[dobj->mNVar*dobj->mBlk];
    598615  dobj->mPtr.push_back(pt);
    599   s.GetR4s(dobj->mPtr[jb], dobj->mNVar*dobj->mBlk);
     616  s.Get(dobj->mPtr[jb], dobj->mNVar*dobj->mBlk);
    600617}
    601618
Note: See TracChangeset for help on using the changeset viewer.