Changeset 802 in Sophya for trunk/SophyaLib/BaseTools/ndatablock.cc
- Timestamp:
- Apr 3, 2000, 7:32:27 PM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaLib/BaseTools/ndatablock.cc
r773 r802 9 9 #include "pexceptions.h" 10 10 #include "ndatablock.h" 11 #include "objfio.h"12 11 13 12 // define DEBUG_NDATABLOCK … … 613 612 } 614 613 615 ////////////////////////////////////////////////////////////////616 // -------------------------------------------------------------------------617 // Les objets delegues pour la gestion de persistance618 // -------------------------------------------------------------------------619 620 /*621 template <class T>622 void ObjFileIO< NDataBlock<T> >::ReadSelf(PInPersist& is)623 template <class T>624 void ObjFileIO< NDataBlock<T> >::WriteSelf(POutPersist& os)625 */626 627 // Pour pouvoir ecrire des tableaux de complex, en attendant628 // PIn/POutPersist::Get/Put(complex<>)629 #include "piocmplx.h"630 631 template <class T>632 FIO_NDataBlock<T>::FIO_NDataBlock()633 {634 dobj=new NDataBlock<T>;635 ownobj=true;636 }637 638 template <class T>639 FIO_NDataBlock<T>::FIO_NDataBlock(string const & filename)640 {641 dobj=new NDataBlock<T>;642 ownobj=true;643 Read(filename);644 }645 646 template <class T>647 FIO_NDataBlock<T>::FIO_NDataBlock(const NDataBlock<T> & obj)648 {649 dobj = new NDataBlock<T>(obj);650 ownobj=true;651 }652 653 template <class T>654 FIO_NDataBlock<T>::FIO_NDataBlock(NDataBlock<T> * obj)655 {656 dobj = obj;657 ownobj=false;658 }659 660 template <class T>661 FIO_NDataBlock<T>::~FIO_NDataBlock()662 {663 if (ownobj && dobj) delete dobj;664 }665 666 template <class T>667 AnyDataObj* FIO_NDataBlock<T>::DataObj()668 {669 return(dobj);670 }671 672 template <class T>673 void FIO_NDataBlock<T>::SetDataObj(AnyDataObj & o)674 {675 NDataBlock<T> * po = dynamic_cast< NDataBlock<T> * >(&o);676 if (po == NULL) return;677 if (ownobj && dobj) delete dobj;678 dobj = po; ownobj = false;679 }680 681 template <class T>682 void FIO_NDataBlock<T>::ReadSelf(PInPersist& is)683 {684 // On lit les 3 premiers uint_8685 uint_8 itab[3];686 is.Get(itab, 3);687 if (dobj == NULL) dobj = new NDataBlock<T>(itab[1]);688 else if (itab[1] != dobj->Size()) dobj->ReSize(itab[1]);689 // On lit le tableau de nombres690 PIOSReadArray(is, dobj->Data(), dobj->Size());691 }692 693 694 template <class T>695 void FIO_NDataBlock<T>::WriteSelf(POutPersist& os) const696 {697 if (dobj == NULL) return; // Attention - $CHECK$ Reza 26/04/99698 // On ecrit 3 uint_8699 // 0 : Numero de version, 1 : Taille, 2 reserve a l700 uint_8 itab[3];701 itab[0] = 1;702 itab[1] = dobj->Size();703 itab[2] = 0;704 os.Put(itab, 3);705 // On ecrit le tableau de nombres706 PIOSWriteArray(os, dobj->Data(), dobj->Size());707 }708 614 709 615 /////////////////////////////////////////////////////////////// … … 718 624 #pragma define_template NDataBlock<r_4> 719 625 #pragma define_template NDataBlock<r_8> 720 #pragma define_template NDataBlock< complex<float> > 721 #pragma define_template NDataBlock< complex<double> > 722 // Instances des delegues FileIO (PPersist) 723 #pragma define_template FIO_NDataBlock<uint_1> 724 #pragma define_template FIO_NDataBlock<uint_2> 725 #pragma define_template FIO_NDataBlock<int_2> 726 #pragma define_template FIO_NDataBlock<int_4> 727 #pragma define_template FIO_NDataBlock<int_8> 728 #pragma define_template FIO_NDataBlock<uint_4> 729 #pragma define_template FIO_NDataBlock<uint_8> 730 #pragma define_template FIO_NDataBlock<r_8> 731 #pragma define_template FIO_NDataBlock<r_4> 732 #pragma define_template FIO_NDataBlock< complex<float> > 733 #pragma define_template FIO_NDataBlock< complex<double> > 626 #pragma define_template NDataBlock< complex<r_4> > 627 #pragma define_template NDataBlock< complex<r_8> > 734 628 #endif 735 629 … … 744 638 template class NDataBlock<r_4>; 745 639 template class NDataBlock<r_8>; 746 template class NDataBlock< complex<float> >; 747 template class NDataBlock< complex<double> >; 748 // Instances des delegues FileIO (PPersist) 749 template class FIO_NDataBlock<uint_1>; 750 template class FIO_NDataBlock<uint_2>; 751 template class FIO_NDataBlock<int_2>; 752 template class FIO_NDataBlock<int_4>; 753 template class FIO_NDataBlock<int_8>; 754 template class FIO_NDataBlock<uint_4>; 755 template class FIO_NDataBlock<uint_8>; 756 template class FIO_NDataBlock<r_8>; 757 template class FIO_NDataBlock<r_4>; 758 template class FIO_NDataBlock< complex<float> >; 759 template class FIO_NDataBlock< complex<double> >; 760 #endif 640 template class NDataBlock< complex<r_4> >; 641 template class NDataBlock< complex<r_8> >; 642 #endif
Note:
See TracChangeset
for help on using the changeset viewer.