source: Sophya/trunk/SophyaLib/BaseTools/fiondblock.h@ 2186

Last change on this file since 2186 was 802, checked in by ansari, 25 years ago

Mise au point du nouveau schema (Version=2) de PPersist - Mise en place

de tag complet pour toutes les donnees/objets ecrits - Gestion a peu
pres correct des objets references plusieurs fois, ecrit une seule fois.
Mecanisme d'enregistrement pour les DataObject associe et Methodes
(PutObject/GetObjet) facilitant l'ecriture/lecture de DataObject.
Separation du fichier de la classe FIO_NDataBlock<T>.

Reza03/04/2000

File size: 1.4 KB
Line 
1// This may look like C code, but it is really -*- C++ -*-
2// Classe pour la gestion de persistance pour NDataBlock<T>
3// C.Magneville 04/99-03/2000
4// LAL (Orsay) / IN2P3-CNRS DAPNIA/SPP (Saclay) / CEA
5
6#ifndef FIONDATABLOCK_H
7#define FIONDATABLOCK_H
8
9#include "machdefs.h"
10#include "ppersist.h"
11#include "ndatablock.h"
12#include <iostream.h>
13
14namespace SOPHYA {
15
16template <class T>
17class FIO_NDataBlock : public PPersist {
18public:
19 FIO_NDataBlock();
20 FIO_NDataBlock(string const & filename);
21 FIO_NDataBlock(const NDataBlock<T> & obj);
22 FIO_NDataBlock(NDataBlock<T> * obj);
23 virtual ~FIO_NDataBlock();
24 virtual AnyDataObj* DataObj();
25 virtual void SetDataObj(AnyDataObj & o);
26 inline operator NDataBlock<T>() { return(*dobj); }
27
28 virtual uint_8 getMemOId() const ;
29 virtual void ShareDataReference(PPersist &);
30 virtual PPersist* CloneSharedReference();
31
32protected :
33 virtual void ReadSelf(PInPersist&);
34 virtual void WriteSelf(POutPersist&) const;
35 NDataBlock<T> * dobj;
36 bool ownobj;
37};
38
39template <class T>
40inline POutPersist& operator << (POutPersist& os, NDataBlock<T> & obj)
41{ FIO_NDataBlock<T> fio(&obj); fio.Write(os); return(os); }
42template <class T>
43inline PInPersist& operator >> (PInPersist& is, NDataBlock<T> & obj)
44{ FIO_NDataBlock<T> fio(&obj); fio.Read(is); return(is); }
45
46} // Fin du namespace
47
48#endif
Note: See TracBrowser for help on using the repository browser.