Changeset 846 in Sophya


Ignore:
Timestamp:
Apr 10, 2000, 10:36:28 AM (25 years ago)
Author:
ansari
Message:

ajout SetVal pour I/O fichiers fits

Location:
trunk/SophyaLib/HiStats
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaLib/HiStats/ntuple.cc

    r809 r846  
    207207}
    208208
     209/* --Methode-- */
     210//++
     211void NTuple::SetVal(int n, int k, float value) 
     212//
     213//      initialise la valeur de la variable `k' de l'evenement `n'.
     214//--
     215{
     216if (n >= mNEnt)   return;
     217if ( (k < 0) || (k >= mNVar) )    return;
     218int numb = n/mBlk;
     219int offb = n-numb*mBlk;
     220*(mPtr[numb]+offb*mNVar+k) = value;
     221}
    209222
    210223/* --Methode-- */
     
    538551
    539552
    540 /* --Methode-- */
     553/* --Methode-- */ 
    541554//++
    542555void   ObjFileIO<NTuple>::WriteSelf(POutPersist& s)  const
     
    602615}
    603616
     617
    604618#ifdef __CXX_PRAGMA_TEMPLATES__
    605619#pragma define_template ObjFileIO<NTuple>
  • trunk/SophyaLib/HiStats/ntuple.h

    r763 r846  
    1616#include "ppersist.h"
    1717#include "dvlist.h"
     18#include "fitsfile.h"
    1819
    1920namespace SOPHYA {
    2021
    2122class NTuple : public AnyDataObj , public NTupleInterface {
     23
     24  friend class FITS_NTuple;
    2225public:
    2326//  enum {classId = ClassId_NTuple };
     
    7780private:
    7881  void  Clean();
     82  void SetVal(int n, int k, float value)   ;
    7983
    8084  int_4 mNVar, mNEnt, mBlk, mNBlk;
     
    100104// ObjFileIO<NTuple>
    101105
     106
     107
    102108#ifdef __MWERKS__
    103109__MSL_FIX_ITERATORS__(r_4*);
  • trunk/SophyaLib/HiStats/xntuple.cc

    r835 r846  
    927927  }
    928928}
     929////////////// methodes supplementaires pour leserveur de fichiers fits//////
     930//
     931// (protected)
     932//
     933void XNTuple::SetDVal(int i, int k, double v) 
     934{
     935    if( i<0 || i>=mNEnt || k<0 || k>=mD )
     936        THROW(rangeCheckErr) ;
     937   
     938    // Bloc ?
     939    int blk = (int)(i/mBlkSz) ;
     940    int off = i%mBlkSz ;
     941   
     942    // bloc swappe ?
     943    if( ptr[blk]->sw ) { get_blk(blk) ; swap() ; }
     944    ptr[blk]->ddata[off*mD+k]=v ;
     945}
     946void XNTuple::SetFVal(int i, int k, float v)
     947{
     948    if( i<0 || i>=mNEnt || k<mD || k>=(mD+mF) )
     949        THROW(rangeCheckErr) ;
     950    k -= mD ;
     951   
     952    // Bloc ?
     953    int blk = (int)(i/mBlkSz) ;
     954    int off = i%mBlkSz ;
     955   
     956    // bloc swappe ?
     957    if( ptr[blk]->sw ) { get_blk(blk) ; swap() ; }
     958    ptr[blk]->fdata[off*mF+k]=v ;
     959}
     960void  XNTuple::SetIVal(int i, int k, int v) 
     961{
     962    if( i<0 || i>=mNEnt || k<(mD+mF) || k>=(mD+mF+mI) )
     963        THROW(rangeCheckErr) ;
     964    k -= (mD+mF) ; 
     965
     966    // Bloc ?
     967    int blk = (int)(i/mBlkSz) ;
     968    int off = i%mBlkSz ;
     969   
     970    // bloc swappe ?
     971    if( ptr[blk]->sw ) { get_blk(blk) ; swap() ; }
     972
     973    ptr[blk]->idata[off*mI+k]=v ;
     974}
     975void  XNTuple::SetSVal(int i, int k, char* v) 
     976{
     977    if( i<0 || i>=mNEnt || k<(mD+mF+mI) || k>=(mD+mF+mI+mS) )
     978        THROW(rangeCheckErr) ;
     979    k -= (mD+mF+mI) ;
     980   
     981    // Bloc ?
     982    int blk = (int)(i/mBlkSz) ;
     983    int off = i%mBlkSz ;
     984   
     985    // bloc swappe ?
     986    if( ptr[blk]->sw ) { get_blk(blk) ; swap() ; }
     987   
     988    // copie de la chaine
     989        strncpy(ptr[blk]->sdata + (off*mS+k)*(mStrSz+1),v, mStrSz+1) ;   
     990}
     991
     992
     993
     994
     995
    929996
    930997#ifdef __CXX_PRAGMA_TEMPLATES__
  • trunk/SophyaLib/HiStats/xntuple.h

    r835 r846  
    2020#include "ppersist.h"
    2121#include "dvlist.h"
    22 
     22#include "fitsfile.h"
    2323
    2424
     
    105105//  Pour la gestion de persistance
    106106    friend class ObjFileIO<XNTuple> ;
    107    
     107    friend class FITS_XNTuple;
     108
     109
    108110private:
     111
     112  // pour la persistance sur fichiers fits
     113    void    SetDVal(int i, int k, double v); 
     114    void    SetFVal(int i, int k, float v);
     115    void    SetIVal(int i, int k, int v); 
     116    void    SetSVal(int i, int k, char* v); 
     117
     118
    109119    void    clean();    // remet tout a zero
    110120    void    swap() const ;    // swappe le + ancien blk en memoire
     
    160170// Classe pour la gestion de persistance
    161171// ObjFileIO<XNTuple>
    162        
    163172} // namespace SOPHYA
    164173
Note: See TracChangeset for help on using the changeset viewer.