Changeset 306 in Sophya for trunk/SophyaLib/NTools/tvector.cc


Ignore:
Timestamp:
May 19, 1999, 12:17:42 PM (26 years ago)
Author:
ansari
Message:

PPersisteries.... etc.... cmv 19/5/99

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaLib/NTools/tvector.cc

    r302 r306  
    1 // $Id: tvector.cc,v 1.3 1999-05-18 12:58:26 ansari Exp $
     1// $Id: tvector.cc,v 1.4 1999-05-19 10:17:42 ansari Exp $
    22//                         C.Magneville          04/99
    33#include "machdefs.h"
     
    9999}
    100100
     101///////////////////////////////////////////////////////////
     102// --------------------------------------------------------
     103//   Les objets delegues pour la gestion de persistance
     104// --------------------------------------------------------
     105///////////////////////////////////////////////////////////
     106
     107template <class T>
     108FIO_TVector<T>::FIO_TVector()
     109{
     110dobj=new TVector<T>;
     111ownobj=true;
     112}
     113
     114template <class T>
     115FIO_TVector<T>::FIO_TVector(string const & filename)
     116{
     117dobj=new TVector<T>;
     118ownobj=true;
     119Read(filename);
     120}
     121
     122template <class T>
     123FIO_TVector<T>::FIO_TVector(const TVector<T> & obj)
     124{
     125dobj = new TVector<T>(obj);
     126ownobj=true;
     127}
     128
     129template <class T>
     130FIO_TVector<T>::FIO_TVector(TVector<T> * obj)
     131{
     132dobj = obj;
     133ownobj=false;
     134}
     135
     136template <class T>
     137FIO_TVector<T>::~FIO_TVector()
     138{
     139if (ownobj && dobj) delete dobj;
     140}
     141
     142template <class T>
     143AnyDataObj* FIO_TVector<T>::DataObj()
     144{
     145return(dobj);
     146}
     147
     148template <class T>
     149void FIO_TVector<T>::ReadSelf(PInPersist& is)
     150{
     151// On lit les 3 premiers uint_4
     152//  0: Numero de version,  1 : NRows=NElts,  2 : NCol=1
     153uint_4 itab[3];
     154is.Get(itab,3);
     155if (dobj == NULL) dobj = new TVector<T>(itab[1]);
     156else dobj->ReSize(itab[1]);
     157// On lit le NDataBlock
     158FIO_NDataBlock<T> fio_nd(&dobj->DataBlock());
     159fio_nd.Read(is);
     160}
     161
     162template <class T>
     163void FIO_TVector<T>::WriteSelf(POutPersist& os) const
     164{
     165if (dobj == NULL)   return;
     166//  On ecrit 3 uint_4 ....
     167//  0: Numero de version,  1 : NRows=NElts,  2 : NCol=1
     168uint_4 itab[3];
     169 itab[0] = 1;  // Numero de version a 1
     170itab[1] = dobj->NElts();
     171itab[2] = 1;
     172os.Put(itab,3);
     173// On ecrit le NDataBlock
     174FIO_NDataBlock<T> fio_nd(&dobj->DataBlock());
     175fio_nd.Write(os);
     176}
     177
    101178///////////////////////////////////////////////////////////////
    102179#ifdef __CXX_PRAGMA_TEMPLATES__
     
    112189#pragma define_template TVector< complex<float> >
    113190#pragma define_template TVector< complex<double> >
     191// Instances des delegues FileIO (PPersist)
     192#pragma define_template FIO_TVector<uint_1>
     193#pragma define_template FIO_TVector<uint_2>
     194#pragma define_template FIO_TVector<int_2>
     195#pragma define_template FIO_TVector<int_4>
     196#pragma define_template FIO_TVector<int_8>
     197#pragma define_template FIO_TVector<uint_4>
     198#pragma define_template FIO_TVector<uint_8>
     199#pragma define_template FIO_TVector<r_8>
     200#pragma define_template FIO_TVector<r_4>
     201#pragma define_template FIO_TVector< complex<float> >
     202#pragma define_template FIO_TVector< complex<double> >
    114203#endif
    115204
     
    126215template class TVector< complex<float> >;
    127216template class TVector< complex<double> >;
     217// Instances des delegues FileIO (PPersist)
     218template class FIO_TVector<uint_1>;
     219template class FIO_TVector<uint_2>;
     220template class FIO_TVector<int_2>;
     221template class FIO_TVector<int_4>;
     222template class FIO_TVector<int_8>;
     223template class FIO_TVector<uint_4>;
     224template class FIO_TVector<uint_8>;
     225template class FIO_TVector<r_8>;
     226template class FIO_TVector<r_4>;
     227template class FIO_TVector< complex<float> >;
     228template class FIO_TVector< complex<double> >;
    128229#endif
Note: See TracChangeset for help on using the changeset viewer.