Changeset 277 in Sophya for trunk/SophyaLib/BaseTools/objfio.h
- Timestamp:
- Apr 28, 1999, 3:36:07 PM (26 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
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
Note:
See TracChangeset
for help on using the changeset viewer.