// This may look like C code, but it is really -*- C++ -*- // template array class for numerical types // R. Ansari, C.Magneville 03/2000 // Ajout gestionnaire PPF pour TriangularMatrix 02/2009 #ifndef FIOSpSqMtx_SEEN #define FIOSpSqMtx_SEEN #include "machdefs.h" #include #include "spesqmtx.h" #include "trngmtx.h" #include "diagmtx.h" #include "symmtx.h" #include "ppersist.h" namespace SOPHYA { //------------------------------------------------------------------------------------ ///////////////////////////////////////////////////////////////////////// // Gestionnaire PPF de SpecialSquareMatrix /*! \brief Manager class the PPF I/O (SOPHYA persistence) of TriangularMatrix objects. */ template class FIO_SpecialSquareMatrix : public PPersist { public: FIO_SpecialSquareMatrix(); FIO_SpecialSquareMatrix(string const & filename); FIO_SpecialSquareMatrix(const SpecialSquareMatrix & obj); FIO_SpecialSquareMatrix(SpecialSquareMatrix * obj); virtual ~FIO_SpecialSquareMatrix(); virtual AnyDataObj* DataObj(); virtual void SetDataObj(AnyDataObj & o); inline operator SpecialSquareMatrix() { return(*dobj); } protected : virtual void ReadSelf(PInPersist&); virtual void WriteSelf(POutPersist&) const; SpecialSquareMatrix * dobj; //!< Pointer to the connected SpecialSquareMatrix bool ownobj; //!< true if the connected object belong to the class }; /*! \ingroup TArray \fn operator<<(POutPersist&,SpecialSquareMatrix&) \brief Write SpecialSquareMatrix \b obj into POutPersist stream \b os */ template inline POutPersist& operator << (POutPersist& os, SpecialSquareMatrix & obj) { FIO_SpecialSquareMatrix fio(&obj); fio.Write(os); return(os); } /*! \ingroup TArray \fn operator>>(PInPersist&,SpecialSquareMatrix&) \brief Read SpecialSquareMatrix \b obj from PInPersist stream \b os */ template inline PInPersist& operator >> (PInPersist& is, SpecialSquareMatrix & obj) { FIO_SpecialSquareMatrix fio(&obj); is.SkipToNextObject(); fio.Read(is); return(is); } } // Fin du namespace #endif