mummy
1.0.2
|
00001 //---------------------------------------------------------------------------- 00002 // MummyLog.h 00003 // 00004 // Author(s) : David Cole 00005 // 00006 // Copyright (C) 2006-2009 Kitware, Inc. 00007 //---------------------------------------------------------------------------- 00008 00009 #ifndef MummyLog_h 00010 #define MummyLog_h 00011 00012 #include "MummyUtilities.h" // first mummy include for root classes 00013 00014 #include "gxsys/ios/iostream" 00015 00020 #define LogFileLineLabelledMsg(os, file, line, label, n, m) \ 00021 if (ShouldLogMsg(n)) \ 00022 { \ 00023 LogMsg(file, line, label, n); \ 00024 os << file << "(" << line << "): " << label << ": m" << n << ": " m << gxsys_ios::endl; \ 00025 } 00026 00027 00028 #define LogFileLineErrorMsg(file, line, n, m) \ 00029 LogFileLineLabelledMsg(gxsys_ios::cerr, file, line, "error", n, m) 00030 00031 #define LogFileLineWarningMsg(file, line, n, m) \ 00032 LogFileLineLabelledMsg(gxsys_ios::cerr, file, line, "warning", n, m) 00033 00034 #define LogFileLineInfoMsg(file, line, n, m) \ 00035 LogFileLineLabelledMsg(gxsys_ios::cout, file, line, "info", n, m) 00036 00037 00038 // n == number 00039 // m == (C++ stream-able) message or string literal 00040 // 00041 #define LogError(n, m) \ 00042 LogFileLineErrorMsg("# ", 0, n, m) 00043 00044 #define LogWarning(n, m) \ 00045 LogFileLineWarningMsg("# ", 0, n, m) 00046 00047 #define LogInfo(n, m) \ 00048 LogFileLineInfoMsg("# ", 0, n, m) 00049 00050 00051 #define LogVerboseInfo(m) \ 00052 if (this->GetSettings()->GetVerbose()) \ 00053 { \ 00054 LogInfo(mi_VerboseInfo, m); \ 00055 } 00056 00057 00058 // Error (me_), warning (mw_) and info (mi_) values. 00059 // 00060 // Add new error values to the end of the me_ segment, new warnings to the 00061 // end of the mw_ segment and new info values to the end of the mi_ segment. 00062 // That way, new builds of mummy will always have the same error and warning 00063 // values as previous builds... 00064 // 00065 // DO NOT be tempted to alphabetize this list. Or, if you are tempted, resist 00066 // it with all that is in you... Keep this list ordered the same within each 00067 // segment - always! 00068 // 00069 enum MummyLogMsgValues 00070 { 00071 // Error values segment: 00072 me_ErrorValueBase = 5000, 00073 me_InternalError, 00074 me_CouldNotOpen, 00075 me_CouldNotParse, 00076 me_CouldNotValidate, 00077 me_CouldNotWrap, 00078 me_MissingRequiredCommandLineArg, 00079 me_UnexpectedGccxmlInput, 00080 me_InvalidArg, 00081 me_MoreThanOneBaseClass, 00082 me_UnknownFundamentalType, 00083 me_NoClassWrappingSettings, 00084 me_EventMethodIncorrectReturnType, 00085 me_NoVirtualMethodsAllowed, 00086 me_UnknownMapToType, 00087 me_PureVirtualMethodNotAllowed, 00088 00089 // Warning values segment: 00090 mw_WarningValueBase = 6000, 00091 mw_InternalWarning, 00092 mw_NoSuchLineNumber, 00093 mw_UndocumentedEntity, 00094 mw_DuplicateGeneratedName, 00095 mw_ReservedMethodName, 00096 mw_UnnamedEnum, 00097 mw_MultipleTargetInterfaces, 00098 mw_CouldNotWrap, 00099 mw_PropGetReturnsVoid, 00100 mw_PropGetNotConst, 00101 mw_PropSetReturnsNonVoid, 00102 mw_PropSetUnexpectedArgCount, 00103 mw_DefaultArgumentValuesIgnored, 00104 mw_WriteOnlyProperty, 00105 mw_MissingPropGetHint, 00106 mw_MissingPropSetHint, 00107 mw_PropGetHasArgs, 00108 mw_SeriousMissingPropGetHint, 00109 mw_SeriousMissingPropSetHint, 00110 mw_UnknownAttribute, 00111 mw_MultipleHints, 00112 mw_UnknownHintDataType, 00113 00114 // Info values segment: 00115 mi_InfoValueBase = 7000, 00116 mi_Info, 00117 mi_VerboseInfo, 00118 mi_InfoRefArgEncountered, 00119 00120 // Always keep this one last: 00121 // 00122 me_LastMummyLogMsgValue 00123 }; 00124 00125 #endif