source: Sophya/trunk/SophyaExt/FitsIOServer/fitsntuple.h@ 2013

Last change on this file since 2013 was 1231, checked in by ansari, 25 years ago

Modifs cosmetiques + introduction des operateurs << et >> sur

FitsOut/InFile - Reza 12/10/2000

File size: 2.0 KB
Line 
1// Guy Le Meur 03/2000
2
3
4#ifndef FITSNTuple_SEEN
5#define FITSNTuple_SEEN
6#include "machdefs.h"
7#include "ntuple.h"
8#include "anydataobj.h"
9#include "ppersist.h"
10#include "fitsfile.h"
11
12namespace SOPHYA {
13///////////////////////////////////////////////////////////////////
14// Classe pour la gestion de persistance sur fichiers fits
15// pout NTuple
16////////////////////////////////////////////////////////////////
17class FITS_NTuple : public FitsIOHandler
18{
19
20public:
21
22FITS_NTuple();
23FITS_NTuple(char inputfile[],int hdunum=0);
24FITS_NTuple(const NTuple & obj);
25 FITS_NTuple(NTuple* obj);
26virtual ~FITS_NTuple();
27
28virtual AnyDataObj* DataObj() { return(dobj_); }
29virtual void SetDataObj(AnyDataObj & o)
30 {
31 NTuple* po = dynamic_cast< NTuple* >(& o);
32 if (po == NULL) return;
33 if (ownobj_ && dobj_) delete dobj_;
34 dobj_ = po;
35 ownobj_ = false;
36 }
37
38
39/*!
40fill the XNTuple only with lines from firstLine-th to (firstLine+numberOfLines-1)-th of the FITS-file inputfile.
41\param <firstLine> first line to be read (the first line of the file is numbered 0)
42\param <numberOfLines> number of lines to be read
43*/
44 void ReadLines(char inputfile[],int firstLine, int numberOfLines,int hdunum=0);
45
46inline operator NTuple() { return(*dobj_); }
47inline NTuple * getObj() { return(dobj_); }
48
49protected:
50
51 // implementation de FitsFile
52virtual void ReadFromFits(FitsInFile& is);
53virtual void WriteToFits(FitsOutFile& os) ;
54
55 private :
56
57inline void InitNull() { fistLineToBeRead_= -1; numberOfLinesToBeRead_= -1;}
58
59
60 // attributs de classe
61 NTuple* dobj_;
62 bool ownobj_;
63 int fistLineToBeRead_;
64 int numberOfLinesToBeRead_;
65};
66//////////////////////////////////////////////////////////////////
67
68inline FitsOutFile& operator << (FitsOutFile& fios, NTuple & nt)
69 { FITS_NTuple fih(&nt); fih.Write(fios); return (fios); }
70
71inline FitsInFile& operator >> (FitsInFile& fiis, NTuple & nt)
72 { FITS_NTuple fih(&nt); fih.Read(fiis); return (fiis); }
73
74
75} // Fin du namespace
76
77#endif
Note: See TracBrowser for help on using the repository browser.