00001 //************************************************************************************// 00002 // Module : glogger.hpp 00003 // Date : 12/11/04 (DLR) 00004 // Copyright : 2004-2006 Copyright University Corporation for Atmospheric 00005 // Research 00006 // Description : Encapsulates the methods and data associated with 00007 // a logging class as used in GASpAR 00008 // Derived From : none. 00009 // Modifications: 00010 //************************************************************************************// 00011 #if !defined(GLOGGER_HPP) 00012 #define GLOGGER_HPP 00013 00014 #include "gtlist.hpp" 00015 #include <iostream.h> 00016 #include <fstream.h> 00017 #include <cstdarg> 00018 00019 00020 class GLogger 00021 { 00022 public: 00023 GLogger(); 00024 ~GLogger(); 00025 GLogger(const GLogger &a); 00026 00027 GBOOL SetStaticParamDesc (char *format, ...); // set static param descriptors 00028 GBOOL SetDynamicParamDesc (char *format, ...); // set dynamic param descriptors 00029 GBOOL SetStaticData (GINT nflds, ...); // set static data fields 00030 GBOOL SetDynamicData (GINT nflds, ...); // set dynamic record fields 00031 GBOOL PutStaticData (char *filename); // write static data to file 00032 GBOOL PutStaticData (ostream &out); // write static data to stream 00033 GBOOL PutHeader (char *filename); // build and write dyn header to file 00034 GBOOL PutHeader (ostream &out); // build and write dyn header to stream 00035 GBOOL PutDynamicData (char *filename); // build and write dyn record to file 00036 GBOOL PutDynamicData (ostream &out); // build and write dyn record to stream 00037 00038 private: 00039 // Private methods: 00040 GBOOL SetParams(GStringList &flist, GStringList &dlist, char *format, va_list ap); 00041 GBOOL SetData(GINT nfields, GpCList &plist, va_list ap); 00042 00043 00044 00045 00046 // Private data: 00047 GStringList sstaticdesc_; // static descriptors 00048 GStringList sdynamicdesc_; // dynamic descriptors 00049 GStringList sstaticformat_; // static format specs 00050 GStringList sdynamicformat_; // dynamic format specs 00051 GpCList pstaticdata_; // static data pointer list 00052 GpCList pdynamicdata_; // dynamic data pointer list 00053 00054 }; 00055 #endif 00056