Ignore:
Timestamp:
Apr 27, 1999, 5:01:44 PM (26 years ago)
Author:
ansari
Message:

Persist<NDataBlock> Reza 27/04/99

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaLib/BaseTools/ndatablock.cc

    r268 r269  
    99#include "pexceptions.h"
    1010#include "ndatablock.h"
     11#include "objfio.h"
    1112
    1213using namespace PlanckDPC;
     
    245246// Re-dimension, dans ce cas re-allocation de la place
    246247{
     248// Pas de realloc, si pas de changement de taille ?
     249if (n == mSz)  return;  // $CHECK$ A verifier , Reza 26/04/99
    247250Alloc(n);
    248251}
     
    275278if(i1>=mSz || n<=0 || !p) return;
    276279size_t i2 = i1+n; if(i2>mSz) i2=mSz;
    277 size_t im = 1; bool enl;
     280size_t im = 1; bool enl=false;
    278281while(i1<i2) {
    279282  enl = false;
     
    561564}
    562565return result;
     566}
     567
     568
     569// -------------------------------------------------------------------------
     570//   Les objets delegues pour la gestion de persistance
     571// -------------------------------------------------------------------------
     572
     573/*
     574template <class T>
     575void ObjFileIO< NDataBlock<T> >::ReadSelf(PInPersist& is)
     576template <class T>
     577void ObjFileIO< NDataBlock<T> >::WriteSelf(POutPersist& os)
     578*/
     579
     580template <class T>
     581FIO_NDataBlock<T>::FIO_NDataBlock()
     582{
     583dobj=new NDataBlock<T>;
     584}
     585
     586template <class T>
     587FIO_NDataBlock<T>::FIO_NDataBlock(string const & filename)
     588{
     589dobj=new NDataBlock<T>;
     590Read(filename);
     591}
     592
     593template <class T>
     594FIO_NDataBlock<T>::FIO_NDataBlock(const NDataBlock<T> & obj)
     595{
     596dobj = new NDataBlock<T>(obj);
     597}
     598
     599template <class T>
     600FIO_NDataBlock<T>::FIO_NDataBlock(const NDataBlock<T> * obj)
     601{
     602dobj = new NDataBlock<T>(*obj);
     603}
     604
     605template <class T>
     606FIO_NDataBlock<T>::~FIO_NDataBlock()
     607{
     608if (dobj) delete dobj;
     609}
     610
     611template <class T>
     612AnyDataObj* FIO_NDataBlock<T>::DataObj()
     613{
     614return(dobj);
     615}
     616
     617
     618template <class T>
     619void FIO_NDataBlock<T>::ReadSelf(PInPersist& is)
     620{
     621// On lit les 3 premiers uint_8
     622uint_8 itab[3];
     623is.Get(itab, 3);
     624if (dobj == NULL) dobj = new NDataBlock<T>(itab[1]);
     625else dobj->ReSize(itab[1]);
     626// On lit le tableau de nombres
     627PIOSReadArray(is, dobj->Data(), dobj->Size());
     628}
     629
     630
     631template <class T>
     632void FIO_NDataBlock<T>::WriteSelf(POutPersist& os) const
     633{
     634if (dobj == NULL)   return;  // Attention - $CHECK$ Reza 26/04/99
     635//  On ecrit 3 uint_4
     636//  0 : Numero de version,  1 : Taille,  2  reserve a l
     637uint_8 itab[3];
     638itab[0] = 1;
     639itab[1] = dobj->Size();
     640itab[2] = 0;
     641os.Put(itab, 3);
     642//  On ecrit le tableau de nombres
     643PIOSWriteArray(os, dobj->Data(), dobj->Size());
    563644}
    564645
     
    577658#pragma define_template NDataBlock< complex<float> >
    578659#pragma define_template NDataBlock< complex<double> >
    579 #endif
    580 
    581 #ifdef __GNU_TEMPLATES__
     660
     661// Instances des delegues FileIO (PPersist)
     662#pragma define_template FIO_NDataBlock<uint_1>;
     663#pragma define_template FIO_NDataBlock<uint_2>;
     664#pragma define_template FIO_NDataBlock<int_2>;
     665#pragma define_template FIO_NDataBlock<int_4>;
     666#pragma define_template FIO_NDataBlock<int_8>;
     667#pragma define_template FIO_NDataBlock<uint_2>;
     668#pragma define_template FIO_NDataBlock<uint_4>;
     669#pragma define_template FIO_NDataBlock<uint_8>;
     670#pragma define_template FIO_NDataBlock<r_8>;
     671#pragma define_template FIO_NDataBlock<r_4>;
     672#pragma define_template FIO_NDataBlock< complex<float> >;
     673#pragma define_template FIO_NDataBlock< complex<double> >;
     674
     675#endif
     676
     677
     678#if defined(ANSI_TEMPLATES) || defined(GNU_TEMPLATES)
    582679template class NDataBlock<uint_1>;
    583680template class NDataBlock<uint_2>;
     
    592689template class NDataBlock< complex<float> >;
    593690template class NDataBlock< complex<double> >;
    594 #endif
    595 
    596 #if defined(__ANSI_TEMPLATES__)
    597 template class NDataBlock<uint_1>;
    598 template class NDataBlock<uint_2>;
    599 template class NDataBlock<int_2>;
    600 template class NDataBlock<int_4>;
    601 template class NDataBlock<int_8>;
    602 template class NDataBlock<uint_2>;
    603 template class NDataBlock<uint_4>;
    604 template class NDataBlock<uint_8>;
    605 template class NDataBlock<r_4>;
    606 template class NDataBlock<r_8>;
    607 template class NDataBlock< complex<float> >;
    608 template class NDataBlock< complex<double> >;
    609 #endif
     691
     692// Instances des delegues FileIO (PPersist)
     693template class FIO_NDataBlock<uint_1>;
     694template class FIO_NDataBlock<uint_2>;
     695template class FIO_NDataBlock<int_2>;
     696template class FIO_NDataBlock<int_4>;
     697template class FIO_NDataBlock<int_8>;
     698template class FIO_NDataBlock<uint_2>;
     699template class FIO_NDataBlock<uint_4>;
     700template class FIO_NDataBlock<uint_8>;
     701template class FIO_NDataBlock<r_8>;
     702template class FIO_NDataBlock<r_4>;
     703template class FIO_NDataBlock< complex<float> >;
     704template class FIO_NDataBlock< complex<double> >;
     705#endif
Note: See TracChangeset for help on using the changeset viewer.