Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

gbin_writer.hpp

Go to the documentation of this file.
00001 //************************************************************************************//
00002 // Module       : gbin_writer.hpp
00003 // Date         : 10/17/02 (DLR)
00004 // Copyright    : 2002-2006 Copyright University Corporation for Atmospheric
00005 //                Research
00006 // Description  : Encapsulates the methods and data associated with
00007 //                the object that writes a GASpAR binary data file
00008 // Derived From : GBinStream.
00009 // Modifications:
00010 //************************************************************************************//
00011 #if !defined(GBIN_WRITER_HPP)
00012 #define GBIN_WRITER_HPP 
00013 #include "gtypes.h"
00014 #include "gdd_file.h"
00015 #include "gbin_stream.hpp"
00016 #include "point.hpp"
00017 #include "gtbuffer.hpp"
00018 #include <iostream.h>
00019 #include <fstream.h>
00020 
00021 
00022 
00023 class GBinWriter: public GBinStream
00024 {
00025 public:
00026                           GBinWriter(GBOOL isCollective=FALSE, GBOOL isIndependent=TRUE, GSHORT  ioTaskID=0);
00027 //                        GBinWriter(const GBinWriter &);
00028                          ~GBinWriter();
00029          GBOOL            Open(const char *);
00030          GBOOL            Open(const char *, GIOS_MODE iomode, GBOOL bDelete=FALSE);
00031          void             Close();
00032          GBOOL            SetMeta(GINT  nmeta, GDOUBLE *meta_data, const char *descriptor);
00033          GBOOL            SetDims(GINT  rank, GINT  *dims);
00034          GBOOL            SetVertices(const GINT  num, Point *vertices, ELEMTYPE etype);
00035          GBOOL            SetCoord(GINT  idir, GINT  dim, GDOUBLE *coord, const char *descriptor);
00036          GBOOL            WriteData(GINT  rank, GINT  *dims, GDOUBLE *data  , GINT  ntags, GDOUBLE *ftags, 
00037                                     const char *descriptor, GFPOS *datablk);
00038          GFPOS            InitData(GINT  rank, GINT  *dims, GDOUBLE c, GINT  ntags, GDOUBLE *ftags, const char *descriptor);
00039          GBOOL            RewriteData(GFPOS data_start, GINT  n, GINT  *inewdata, GDOUBLE *newdata);
00040          GBOOL            UpdateMeta(GINT  nds, GINT  ids, GFPOS newoffset);
00041          GBOOL            UpdateMeta();
00042          GINT             GetTotalWritten();
00043          void             EndLoop(GINT);
00044 #if defined(DO_GBIN_TIMING)
00045          void              ResetTime();
00046          GDOUBLE             GetTime();
00047 private:
00048          GDOUBLE             time_result_;
00049 #endif
00050 private:
00051 //    methods:
00052          void             DeleteDynamic();
00053          GFPOS            WriteMeta();
00054          GFPOS            WriteCoordBlock();
00055          GFPOS            PutData(GDOUBLE *data,  GINT  ntags, GDOUBLE *ftags, const char *descriptor, 
00056                                   GFPOS coord_offset, GFPOS &datablk_off);
00057          GFPOS            MetaLen();
00058          GFPOS            CoordLen();
00059          GFPOS            DataLen();
00060    
00061 
00062 //    data:
00063          GINT           rank_;
00064          GINT           *idims_;
00065          GINT           nVert_;
00066          GINT           nVertMax_;
00067          GINT           nTags_;     
00068          GINT           NN;
00069          GINT           nTotalWritten_;
00070          GINT           ndsdelta_;
00071          GINT           gnds_;
00072          GINT4BYTE      nMeta_;
00073          GBOOL          bRankSet_;
00074          GBOOL          bIsNew_;
00075          GBOOL          bNewCoord_;
00076          ELEMTYPE       etype_;
00077          GFPOS          coordOffset_;
00078          GFPOS          datasegOffset_;
00079          GDOUBLE        *fMeta_;
00080          GDOUBLE        *Vert_;     
00081          GDOUBLE        **xCoord_;     
00082          GINT           *nCoord_;     
00083          char           *sMeta_;   
00084          char           **sCoord_;   
00085          char           *sData_;   
00086          GUCharBuffer    dput_;
00087          GUCharBuffer    hMeta_;
00088 
00089 };
00090 
00091 #endif

Generated on Wed Dec 21 16:00:48 2005 for Geophysics & Astrophysics Spectral Element Adaptive Refinement (GASpAR) 2D Code by  doxygen 1.4.4