source: Sophya/trunk/SophyaLib/TArray/fioarr.h@ 4055

Last change on this file since 4055 was 3837, checked in by ansari, 15 years ago

MAJ commentaires pour doxygen, Reza 09/08/2010

File size: 1.7 KB
RevLine 
[772]1// This may look like C code, but it is really -*- C++ -*-
2// template array class for numerical types
3// R. Ansari, C.Magneville 03/2000
4
5#ifndef FIOTArray_SEEN
6#define FIOTArray_SEEN
7
8#include "machdefs.h"
[2322]9#include <iostream>
[772]10#include "tarray.h"
[804]11#include "tmatrix.h"
12#include "tvector.h"
[772]13#include "ppersist.h"
14
15namespace SOPHYA {
[3837]16/////////////////////////////////////////////////////////////////////////
17// Gestionnaire PPF de TArray<T>, ainsi que TMatrix<T>/TVector<T>
18/////////////////////////////////////////////////////////////////////////
[772]19template <class T>
20class FIO_TArray : public PPersist {
21public:
22 FIO_TArray();
23 FIO_TArray(string const & filename);
24 FIO_TArray(const TArray<T> & obj);
25 FIO_TArray(TArray<T> * obj);
26 virtual ~FIO_TArray();
27 virtual AnyDataObj* DataObj();
28 virtual void SetDataObj(AnyDataObj & o);
29 inline operator TArray<T>() { return(*dobj); }
30protected :
31 virtual void ReadSelf(PInPersist&);
32 virtual void WriteSelf(POutPersist&) const;
[894]33 TArray<T> * dobj; //!< Pointer to the connected TArray
34 bool ownobj; //!< true if the connected object belong to the class
[772]35};
36
[958]37/*! \ingroup TArray \fn operator<<(POutPersist&,TArray<T>&)
38 \brief Write TArray \b obj into POutPersist stream \b os */
[772]39template <class T>
40inline POutPersist& operator << (POutPersist& os, TArray<T> & obj)
41{ FIO_TArray<T> fio(&obj); fio.Write(os); return(os); }
[894]42
[958]43/*! \ingroup TArray \fn operator>>(PInPersist&,TArray<T>&)
44 \brief Read TArray \b obj from PInPersist stream \b os */
[772]45template <class T>
46inline PInPersist& operator >> (PInPersist& is, TArray<T> & obj)
[2478]47{ FIO_TArray<T> fio(&obj); is.SkipToNextObject(); fio.Read(is); return(is); }
[772]48
[804]49
[772]50} // Fin du namespace
51
52#endif
Note: See TracBrowser for help on using the repository browser.