00001 00013 #ifndef auto_wsv_groups_h 00014 #define auto_wsv_groups_h 00015 00016 #include "los.h" 00017 #include "absorption.h" 00018 00021 #define N_WSV_GROUPS 14 00022 00026 enum WsvGroup{ 00027 Index_, 00028 Numeric_, 00029 String_, 00030 Vector_, 00031 Matrix_, 00032 ArrayOfIndex_, 00033 ArrayOfString_, 00034 ArrayOfVector_, 00035 ArrayOfMatrix_, 00036 ArrayOfLineRecord_, 00037 ArrayOfArrayOfLineRecord_, 00038 ArrayOfLineshapeSpec_, 00039 TagGroups_, 00040 Los_, 00041 }; 00042 00048 class WsvP { 00049 public: 00050 virtual operator Index*(){safety();return NULL;}; 00051 virtual operator Numeric*(){safety();return NULL;}; 00052 virtual operator String*(){safety();return NULL;}; 00053 virtual operator Vector*(){safety();return NULL;}; 00054 virtual operator Matrix*(){safety();return NULL;}; 00055 virtual operator ArrayOfIndex*(){safety();return NULL;}; 00056 virtual operator ArrayOfString*(){safety();return NULL;}; 00057 virtual operator ArrayOfVector*(){safety();return NULL;}; 00058 virtual operator ArrayOfMatrix*(){safety();return NULL;}; 00059 virtual operator ArrayOfLineRecord*(){safety();return NULL;}; 00060 virtual operator ArrayOfArrayOfLineRecord*(){safety();return NULL;}; 00061 virtual operator ArrayOfLineshapeSpec*(){safety();return NULL;}; 00062 virtual operator TagGroups*(){safety();return NULL;}; 00063 virtual operator Los*(){safety();return NULL;}; 00064 00065 virtual ~WsvP(){}; 00066 00067 private: 00073 void safety() { 00074 cerr << "Internal error: Tried to convert a WsvP " 00075 << "pointer to the wrong type.\n"; 00076 exit(1); 00077 }; 00078 }; 00079 00080 #endif // auto_wsv_groups_h