Changeset 277 in Sophya for trunk/SophyaLib/BaseTools
- Timestamp:
- Apr 28, 1999, 3:36:07 PM (26 years ago)
- Location:
- trunk/SophyaLib/BaseTools
- Files:
-
- 1 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaLib/BaseTools/ndatablock.cc
r275 r277 608 608 */ 609 609 610 // Pour pouvoir ecrire des tableaux de complex, en attendant 611 // PIn/POutPersist::Get/Put(complex<>) 612 #include <piocmplx.h> 613 610 614 template <class T> 611 615 FIO_NDataBlock<T>::FIO_NDataBlock() 612 616 { 613 617 dobj=new NDataBlock<T>; 618 ownobj=true; 614 619 } 615 620 … … 617 622 FIO_NDataBlock<T>::FIO_NDataBlock(string const & filename) 618 623 { 619 dobj=new NDataBlock<T>; 624 dobj=new NDataBlock<T>; 625 ownobj=true; 620 626 Read(filename); 621 627 } … … 624 630 FIO_NDataBlock<T>::FIO_NDataBlock(const NDataBlock<T> & obj) 625 631 { 626 dobj = new NDataBlock<T>(obj); 627 } 628 629 template <class T> 630 FIO_NDataBlock<T>::FIO_NDataBlock(const NDataBlock<T> * obj) 632 dobj = new NDataBlock<T>(obj); 633 ownobj=true; 634 } 635 636 template <class T> 637 FIO_NDataBlock<T>::FIO_NDataBlock(NDataBlock<T> * obj) 631 638 { 632 dobj = new NDataBlock<T>(*obj); 639 dobj = obj; 640 ownobj=false; 633 641 } 634 642 … … 636 644 FIO_NDataBlock<T>::~FIO_NDataBlock() 637 645 { 638 if ( dobj) delete dobj;646 if (ownobj && dobj) delete dobj; 639 647 } 640 648 … … 653 661 is.Get(itab, 3); 654 662 if (dobj == NULL) dobj = new NDataBlock<T>(itab[1]); 655 else dobj->ReSize(itab[1] );663 else dobj->ReSize(itab[1], false); 656 664 // On lit le tableau de nombres 657 665 PIOSReadArray(is, dobj->Data(), dobj->Size()); … … 681 689 #pragma define_template NDataBlock<int_4> 682 690 #pragma define_template NDataBlock<int_8> 683 #pragma define_template NDataBlock<uint_2>684 691 #pragma define_template NDataBlock<uint_4> 685 692 #pragma define_template NDataBlock<uint_8> … … 694 701 #pragma define_template FIO_NDataBlock<int_4> 695 702 #pragma define_template FIO_NDataBlock<int_8> 696 #pragma define_template FIO_NDataBlock<uint_2>697 703 #pragma define_template FIO_NDataBlock<uint_4> 698 704 #pragma define_template FIO_NDataBlock<uint_8> … … 710 716 template class NDataBlock<int_4>; 711 717 template class NDataBlock<int_8>; 712 template class NDataBlock<uint_2>;713 718 template class NDataBlock<uint_4>; 714 719 template class NDataBlock<uint_8>; … … 723 728 template class FIO_NDataBlock<int_4>; 724 729 template class FIO_NDataBlock<int_8>; 725 template class FIO_NDataBlock<uint_2>;726 730 template class FIO_NDataBlock<uint_4>; 727 731 template class FIO_NDataBlock<uint_8>; -
trunk/SophyaLib/BaseTools/ndatablock.h
r275 r277 159 159 FIO_NDataBlock(string const & filename); 160 160 FIO_NDataBlock(const NDataBlock<T> & obj); 161 FIO_NDataBlock( constNDataBlock<T> * obj);161 FIO_NDataBlock(NDataBlock<T> * obj); 162 162 virtual ~FIO_NDataBlock(); 163 163 … … 169 169 virtual void WriteSelf(POutPersist&) const; 170 170 NDataBlock<T> * dobj; 171 171 bool ownobj; 172 172 }; 173 173 -
trunk/SophyaLib/BaseTools/objfio.h
r269 r277 13 13 namespace PlanckDPC { 14 14 15 /*16 // Pour gerer les Persist I/O de tableaux numerique templates17 template <class T>18 void PIOSReadArray(PInPersist & is, T* arr, size_t n);19 template <class T>20 void PIOSWriteArray(POutPersist & os, T const * arr, size_t n);21 */22 23 15 24 16 template <class T> … … 26 18 27 19 public : 28 ObjFileIO() { dobj=new T; } 29 ObjFileIO(string const & filename) { dobj=new T; Read(filename); } 30 ObjFileIO(const T & obj) { dobj = new T(obj); } 31 ObjFileIO(const T * obj) { dobj = new T(*obj); } 32 virtual ~ObjFileIO() { if (dobj) delete dobj; } 20 ObjFileIO() { dobj=new T; ownobj=true; } 21 ObjFileIO(string const & filename) 22 { dobj=new T; ownobj=true; Read(filename); } 23 ObjFileIO(const T & obj) { dobj = new T(obj); ownobj=true; } 24 ObjFileIO(T * obj) { dobj = obj; ownobj=false; } 25 virtual ~ObjFileIO() { if (ownobj && dobj) delete dobj; } 33 26 34 27 virtual AnyDataObj* DataObj() { return(dobj); } … … 40 33 41 34 T * dobj; 35 bool ownobj; // True si dobj obtenu par new 42 36 }; 43 37 44 // Fonctions d'ecriture de tableaux numeriques 45 inline 46 void PIOSReadArray(PInPersist & is, uint_1 * arr, size_t n) 47 { 48 is.GetBytes(arr, n); 49 } 38 /* 39 template <class T> 40 inline POutPersist& operator << (POutPersist& os, T const & obj) 41 { ObjFileIO<T> fio((const_cast)&obj); fio.Write(os); return(os); } 50 42 51 inline 52 void PIOSReadArray(PInPersist & is, uint_2 * arr, size_t n) 53 { 54 is.Get(arr, n); 55 } 43 template <class T> 44 inline PInPersist& operator >> (PInPersist& is, T & obj) 45 { ObjFileIO<T> fio(&obj); fio.Read(is); return(is); } 46 */ 56 47 57 inline58 void PIOSReadArray(PInPersist & is, int_2 * arr, size_t n)59 {60 is.Get(arr, n);61 }62 63 inline64 void PIOSReadArray(PInPersist & is, uint_4 * arr, size_t n)65 {66 is.Get(arr, n);67 }68 69 inline70 void PIOSReadArray(PInPersist & is, int_4 * arr, size_t n)71 {72 is.Get(arr, n);73 }74 75 inline76 void PIOSReadArray(PInPersist & is, uint_8 * arr, size_t n)77 {78 is.Get(arr, n);79 }80 81 inline82 void PIOSReadArray(PInPersist & is, int_8 * arr, size_t n)83 {84 is.Get(arr, n);85 }86 87 inline88 void PIOSReadArray(PInPersist & is, r_4 * arr, size_t n)89 {90 is.Get(arr, n);91 }92 93 inline94 void PIOSReadArray(PInPersist & is, r_8 * arr, size_t n)95 {96 is.Get(arr, n);97 }98 99 inline100 void PIOSReadArray(PInPersist & is, complex<float> * arr, size_t n)101 {102 r_4 * pr = (r_4 *)arr;103 is.Get(pr, n*2);104 }105 106 inline107 void PIOSReadArray(PInPersist & is, complex<double> * arr, size_t n)108 {109 r_8 * pr = (r_8 *)arr;110 is.Get(pr, n*2);111 }112 113 // Fonctions d ecriture de tableaux de nombre114 inline115 void PIOSWriteArray(POutPersist & os, uint_1 const * arr, size_t n)116 {117 os.PutBytes(arr, n);118 }119 120 inline121 void PIOSWriteArray(POutPersist & os, uint_2 const * arr, size_t n)122 {123 os.Put(arr, n);124 }125 126 inline127 void PIOSWriteArray(POutPersist & os, int_2 const * arr, size_t n)128 {129 os.Put(arr, n);130 }131 132 inline133 void PIOSWriteArray(POutPersist & os, uint_4 const * arr, size_t n)134 {135 os.Put(arr, n);136 }137 138 inline139 void PIOSWriteArray(POutPersist & os, int_4 const * arr, size_t n)140 {141 os.Put(arr, n);142 }143 144 inline145 void PIOSWriteArray(POutPersist & os, uint_8 const * arr, size_t n)146 {147 os.Put(arr, n);148 }149 150 inline151 void PIOSWriteArray(POutPersist & os, int_8 const * arr, size_t n)152 {153 os.Put(arr, n);154 }155 156 inline157 void PIOSWriteArray(POutPersist & os, r_4 const * arr, size_t n)158 {159 os.Put(arr, n);160 }161 162 inline163 void PIOSWriteArray(POutPersist & os, r_8 const * arr, size_t n)164 {165 os.Put(arr, n);166 }167 168 inline169 void PIOSWriteArray(POutPersist & os, complex<float> const * arr, size_t n)170 {171 r_4 const * pr = (r_4 const *)arr;172 os.Put(pr, n*2);173 }174 175 inline176 void PIOSWriteArray(POutPersist & os, complex<double> const * arr, size_t n)177 {178 r_8 const * pr = (r_8 const *)arr;179 os.Put(pr, n*2);180 }181 48 182 49 } // Fin namespace -
trunk/SophyaLib/BaseTools/peidainit.cc
r269 r277 5 5 #include "ppersist.h" 6 6 #include "peidainit.h" 7 #include "ndatablock.h" 8 #include "complex" 9 7 10 // --- Classe d'initialisation de PEIDA++, (PPersistMgr en particulier) 8 11 int PeidaInitiator::FgInit = 0; … … 24 27 25 28 PIOPersist::Initialize(); 29 PPRegister(FIO_NDataBlock<uint_1>); 30 PPRegister(FIO_NDataBlock<uint_2>); 31 PPRegister(FIO_NDataBlock<int_2>); 32 PPRegister(FIO_NDataBlock<int_4>); 33 PPRegister(FIO_NDataBlock<int_8>); 34 PPRegister(FIO_NDataBlock<uint_4>); 35 PPRegister(FIO_NDataBlock<uint_8>); 36 PPRegister(FIO_NDataBlock<r_4>); 37 PPRegister(FIO_NDataBlock<r_4>); 38 PPRegister(FIO_NDataBlock< complex<float> >); 39 PPRegister(FIO_NDataBlock< complex<double> >); 40 26 41 //DEL PPersistMgr::classList = new PPersistMgr::ClassList; 27 42 //DEL PShPersist::objList = new PShPersist::ObjList;
Note:
See TracChangeset
for help on using the changeset viewer.