parmfile.h
上传用户:jtjnyq9001
上传日期:2014-11-21
资源大小:3974k
文件大小:4k
源码类别:

3G开发

开发平台:

Visual C++

  1. //
  2. //  File = parmfile.h
  3. //
  4. #ifndef _PARMFILE_H_
  5. #define _PARMFILE_H_
  6. #include "globals.h"
  7. #define OPEN_PARM_BLOCK {ParmInput->FindBlock(instance_name);
  8.                           BasicResults << instance_name << endl;}
  9. #define GET_INT_PARM(X) {X = ParmInput->GetIntParm(#X);
  10.                          BasicResults << "   " << #X##" = " << X << endl;}
  11. #define GET_INT_PARM_ARRAY(X,N) {X = ParmInput->GetIntParmArray(#X##"",X,N);
  12.                          BasicResults << "   " << #X##" = " << X[0] << endl;}
  13. #define GET_BOOL_PARM(X) {X = ParmInput->GetBoolParm(#X);
  14.                          BasicResults << "   " << #X##" = " << X << endl;}
  15. #define GET_LONG_PARM(X) {X = ParmInput->GetLongParm(#X);
  16.                          BasicResults << "   " << #X##" = " << X << endl;}
  17. #define GET_FLOAT_PARM(X) {X = ParmInput->GetFloatParm(#X);
  18.                          BasicResults << "   " << #X##" = " << X << endl;}
  19. #define GET_DOUBLE_PARM(X) {X = ParmInput->GetDoubleParm(#X);
  20.                          BasicResults << "   " << #X##" = " << X << endl;}
  21. //#define GET_DOUBLE_PARM_ARRAY(X,N) {X = ParmInput->GetDoubleParmArray(#X##"",X,N);
  22. //                         BasicResults << "   " << #X##" = " << X << endl;}
  23. #define GET_DOUBLE_PARM_ARRAY(X,N) {X = ParmInput->GetDoubleParmArray(#X##"",X,N);
  24.                          for(int __i=0; __i<N; __i++) {
  25.                          BasicResults << "   " << #X##"[" << __i << "] = " << *(((double*)X)+__i) << endl;}}
  26. #define GET_STRING_PARM(X) {X = ParmInput->GetStringParm(#X);
  27.                            BasicResults << "   " << #X##" = " << X << endl;}
  28. #define GET_INT_KRNL_PARM(X) {Kernel->X = ParmInput->GetIntParm(#X);
  29.                          BasicResults << "   " << #X##" = " << X << endl;}
  30. #define GET_BOOL_KRNL_PARM(X) {Kernel->X = ParmInput->GetBoolParm(#X);
  31.                          BasicResults << "   " << #X##" = " << X << endl;}
  32. #define GET_LONG_KRNL_PARM(X) {Kernel->X = ParmInput->GetLongParm(#X);
  33.                          BasicResults << "   " << #X##" = " << X << endl;}
  34. #define GET_FLOAT_KRNL_PARM(X) {Kernel->X = ParmInput->GetFloatParm(#X);
  35.                          BasicResults << "   " << #X##" = " << X << endl;}
  36. #define GET_DOUBLE_KRNL_PARM(X) {Kernel->X = ParmInput->GetDoubleParm(#X);
  37.                          BasicResults << "   " << #X##" = " << X << endl;}
  38. class ParmFile
  39. {
  40. public:
  41.   ParmFile( const char* input_file_name );
  42.   ~ParmFile(void);
  43.   void FindBlock(const char* block_nam);
  44.   void ParmFile::RestartBlock(void);
  45.   int GetParmStr(const char* parm_nam, char *ret_str);
  46.   int GetParmArrayStr(const char* parm_nam, char* ret_str);
  47.   char* GetStringParm(const char* parm_nam);
  48.   int GetIntParm(const char* parm_nam);
  49.   long GetLongParm(const char* parm_nam);
  50.   float GetFloatParm(const char* parm_nam);
  51.   double GetDoubleParm(const char* parm_nam);
  52.   bool GetBoolParm(const char* parm_nam);
  53.   int* GetIntParmArray(  const char* parm_nam, 
  54.                         int* array_ptr,
  55.                         const int array_len);
  56.   double* GetDoubleParmArray(  const char* parm_nam, 
  57.                         double* array_ptr,
  58.                         const int array_len);
  59.   void GetPlotSpec( char *sig_name,
  60.                     double *start_time,
  61.                     double *stop_time,
  62.                     int *plot_decim_rate,
  63.                     bool *count_vice_time,
  64.                     bool *file_header_req);
  65. private:
  66.   ifstream *Input_File;
  67.   char *Input_File_Name;
  68.   char *Block_Name;
  69.   
  70. };
  71. #endif